본문으로 건너뛰기

프로젝트 구조

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 키역할
entityentityJPA 엔티티 클래스
dtodto데이터 전송 객체, SearchDTO
enumsenumeration열거형 클래스
repositoryrepositoryJPA 리포지토리 인터페이스
serviceservice비즈니스 로직 서비스
controlcontrolREST API 컨트롤러
portport외부 시스템 통신 포트
qqSpecification Q 클래스
protoprotoProtocol 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