ElastiCORE 3.0
오래 운영할 업무 시스템을 위해: 업무 규칙은 YAML 몇 줄로, Spring Boot 코드는 거기서 생성 - 매번 똑같이.
ElastiCORE 는 도메인 모델과 업무 규칙(누가 무엇을 하는지, 주문이 어떻게 진행되는지, 값이 어떻게 정해지는지)을
짧은 DSL 로 받아 Spring Boot 애플리케이션을 생성합니다 - JPA 엔티티, DTO, 서비스, REST API, 권한 검사, 상태 전이,
그리고 화면용 TypeScript 클라이언트까지. 업무 규칙은 개발자나 AI 도구가 고치고 리뷰어가 읽는 한 곳에 남고, 빌드가
그 규칙을 서버의 모든 계층에, ./gradlew elcore3ts 가 TypeScript 클라이언트에 반영합니다.
blueprint/shop/model/*.yml ──► Java · Kotlin · TypeScript
(업무 규칙) 레이어드 · DDD · 헥사고날
Spring Boot 3 · Spring Boot 4
+ 우리 팀 규칙 (ruleset)
이런 시스템을 위해 만들었습니다. 주문, 정산, 계약, 백오피스처럼 여러 사람의 손을 거치며 몇 년씩 운영되는 업무 시스템 - 권한과 생명주기가 모든 진입점에서 지켜져야 하는 곳입니다. 화면이 대부분인 애플리케이션, 영속이 관계형이나 JPA 가 아닌 시스템, 선언형 모델로 나타내기 어려운 로직에는 맞지 않습니다.
3.0 은 무엇인가
| 규칙 엔진 | 3.0 의 생성은 규칙(ruleset) 으로 조립됩니다. 같은 모델을 레이어드·DDD·헥사고날 코드로, Java 나 Kotlin 으로, Spring Boot 3 이나 4 용으로 읽고, 팀의 규칙을 끼워 넣을 수 있습니다. 규칙 엔진 참고. |
| 번들 | 번들은 규칙 묶음에 이름을 붙인 것입니다: jpa-springboot(2.x 출력), jpa-springboot-v3, ddd-springboot, hexagonal-springboot, 그 Kotlin 판, ts-model. build.gradle 의 두 단어(architecture, language)가 하나를 고릅니다. |
| 옵트인 | 새 동작은 DSL 이나 설정으로 켤 때만 켜집니다. 아무것도 선언하지 않은 프로젝트는 예전과 같은 결과를 얻습니다. |
| 2.x 호환 | elasticore { } 블록에 architecture |