본문으로 건너뛰기
ElastiCORE 3.0 은 릴리스 후보(RC)입니다: Maven Central 의 3.0.261022-rc1. 2.2 라인 프로젝트는 2.2 문서를 보세요.
버전: 3.0

이미 있는 프로젝트의 변경 요청

순서​

  1. 생성기 확인. 이미 있는 프로젝트에서 스킬의 첫 단계입니다: build.gradle 에 architecture = 'hexagonal' 이나 'ddd' 인 elasticore { } 블록이 있는가? 2.x 경로면 에이전트는 @access, states:, @compute ... 를 쓰지 않고 무엇이 필요한지 알려 줍니다 - 규칙 엔진으로 옮기는 것은 사용자의 결정입니다.

  2. 업무의 말로 변경을 요청하거나 modeler 에게 넘깁니다:

    elasticore:modeler 에이전트로: 회원이 품목에 리뷰를 한 번 쓸 수 있다 - 별점 1~5, 내용 1000자까지, 작성 시각은 서버가 정함. 수정은 쓴 사람만.

    modeler 는 모델과 생성기를 찾고, 쓸 구문을 프로젝트의 가이드에서 찾고, 가장 작은 DSL 변경을 하고, 경고와 오류가 없을 때까지 생성·컴파일한 뒤 변경 보고서를 돌려줍니다.

  3. 생성하고 출력 읽기: /elasticore:generate 는 compileJava 를 돌리고(-Pforce 는 쓰지 않음) 요약 줄, 모든 DSL 경고와 그 YAML 수정, 손댄 생성 파일과 그 수정이 갈 곳을 설명합니다.

  4. 보고: /elasticore:change-report(기본: 아직 커밋하지 않은 것, 또는 git 범위)는 DSL diff 를 읽고 업무에 무엇이 바뀌었는지 - 저장하는 데이터, 누가 무엇을 하는지, 생명주기, 파생 값, API - 와 결정이 필요한 것을 씁니다.

  5. 리뷰: /elasticore:review 는 reviewer 에이전트에 넘깁니다 - 생성 파일의 손 수정, 가이드나 생성기가 모르는 DSL, DSL 과 어긋난 생성 코드, 권한을 얻거나 잃는 역할. 읽기만 하고, /elasticore:review full 은 빌드도 합니다.

그동안 훅이 선을 지킵니다: 생성 파일 수정 금지, 허락 없는 -Pforce 금지, 성공한 빌드가 DSL 변경을 생성·컴파일하기 전에는 끝내지 않기.

변경 보고서​

## What changes for the business

**Review (new)**
- Stores: rating 1-5, text up to 1000 characters, written at (set by the server)
- Who may: members write; only the writer changes it
- API: /api/shop/review - create, read, search, update, delete

## Needs a decision

- ...

## Checked

- Generator: 3.0 rule engine, architecture hexagonal
- Generation: N written / N unchanged / N skipped / 0 failed, DSL validation warnings: none
- Compile and tests: ./gradlew build - passed
- Hand-written code: ...

키트의 템플릿(references/change-report.md) 모양이고, 줄 내용은 예시입니다. 보고서는 사용자의 언어로 씁니다. 결정이 필요한 것에 들어가는 것:

DSL 변경이유
넓어진 @access(...), 지운 @owner더 많은 사람이 데이터를 보거나 바꿈
지우거나 이름을 바꾼 필드그 컬럼과 API 필드가 사라짐, 저장된 값을 잃을 수 있음
좁아진 타입 (string(n), money(p.s))이미 있는 값이 맞지 않을 수 있음
states: 에서 지운 상태나 이동그 상태의 기록이 갇힐 수 있음
지우거나 줄인 @exposeAPI 를 부르는 클라이언트가 깨짐
바뀐 @id, @genid키와 그것을 가리키는 모든 참조가 바뀜
바뀐 @password, @login모든 사용자의 로그인이 바뀜

실제 변경 요청에서 드러난 것​

키트의 Pet Store 벤치마크는 완성된 쇼핑몰 셋(Java 헥사고날, Java DDD, Kotlin 헥사고날)에 Claude Code 와 키트로 변경 요청 - 재고, 리뷰, 택배사 API, BI 지표, 한국어 오류 메시지 - 을 주었습니다. 13~14분에 20 중 20, 19.5, 20 이었고, 바뀐 프로젝트를 다시 생성하면 아무것도 쓰지 않았고 손댄 생성 파일도 없었습니다. 에이전트가 아직 손으로 쓰거나 찾아본 것은 ElastiCORE 수정과 빠른 참조 항목이 되었습니다: update() 를 거치는 PUT /batch, 참조의 @updatable(false), 한 응답 한 언어, PortCallException(502), typescriptClient = true, 대소문자를 무시하는 like. 전체 이야기: 생성된 프로젝트 키워 가기.

팁​

  • Windows 에서는 Git Bash 에서도 ./gradlew.bat 으로 빌드합니다 - Unix 스크립트는 Gradle 데몬을 시작하면 도구에 돌아오지 않습니다.
  • 서버는 한 도구 호출에서 띄우고 다음 호출에서 부릅니다.
  • TypeScript 클라이언트가 있는 프로젝트: typescriptClient = true, 아니면 바꿀 때마다 ./gradlew elcore3ts.
  • DSL 을 바꿀 때마다 * LOAD ERROR: 를 찾으세요 - -- 설명 안의 : 가 파일을 깨뜨립니다.