프로젝트 구조
Overview
ElastiCORE는 env.yml의 namespace 설정을 기반으로 코드를 생성합니다. 각 계층은 독립적인 패키지에 배치됩니다.
Generated Source Structure
기본 생성 위치는 env.yml의 namespace 기준으로 결정됩니다:
src/main/java/
└── io/domain/
├── entity/ # JPA 엔티티
├── dto/ # DTO 클래스
├── repository/ # Spring Data JPA 리포지토리
├── service/ # 서비스 레이어
├── control/ # REST 컨트롤러
├── port/ # Port 인터페이스
└── q/ # Q 클래스 (Specification)
Package Roles
| 패키지 | Namespace 키 | 역할 |
|---|---|---|
entity | entity | JPA 엔티티 클래스 |
dto | dto | 데이터 전송 객체, SearchDTO |
enums | enumeration | 열거형 클래스 |
repository | repository | JPA 리포지토리 인터페이스 |
service | service | 비즈니스 로직 서비스 |
control | control | REST API 컨트롤러 |
port | port | 외부 시스템 통신 포트 |
q | q | Specification Q 클래스 |
proto | proto | Protocol Buffer 관련 |
env.yml 네임스페이스 설정
namespace:
entity: io.company.domain.entity
dto: io.company.domain.dto
enumeration: io.company.domain.enums
repository: io.company.domain.repository
service: io.company.domain.service
control: io.company.domain.controller
port: io.company.domain.port
proto: io.company.proto
Blueprint Directory Structure
DSL 정의 파일의 위치:
src/main/resources/
└── blueprint/
└── {domainName}/
├── env.yml # 환경 설정 (필수)
├── entity.yml # 엔티티 정의
├── dto.yml # DTO Definition
├── enumeration.yml # 열거형 정의
├── repository.yml # 리포지토리 정의
└── port/
├── http.yml # HTTP Port 정의
├── dbms.yml # DBMS Port 정의
└── grpc.yml # gRPC Port 정의
팁
파일명은 자유롭게 지정할 수 있으며, .yml 확장자를 가진 모든 파일이 처리됩니다. 되도록 모델 타입별로 파일을 분리하는 것을 권장합니다.
Next Steps
- env.yml 환경설정 - 상세 설정 방법
- 코드 생성 원리 - 코드 생성 프로세스