개발 환경 설정
ElastiCORE Spring Boot 개발을 효율적으로 수행하기 위한 IDE 및 개발 도구 구성 가이드입니다.
IDE 설정
IntelliJ IDEA (권장)
필수 플러그인
- Lombok - 보일러플레이트 코드 자동 생성
- YAML/Ansible support - YAML 구문 강조 및 자동 완성
- Database Navigator - 데이터베이스 관리 및 쿼리 실행
- Spring Boot - Spring Boot 프로젝트 지원
File → Settings → Plugins → Marketplace → 검색 후 설치
어노테이션 프로세싱 활성화
ElastiCORE 코드 생성을 위해 어노테이션 프로세싱을 반드시 활성화해야 합니다:
File → Settings → Build, Execution, Deployment → Compiler → Annotation Processors
✓ Enable annotation processing
✓ Obtain processors from project classpath
VS Code
필수 확장 프로그램
.vscode/extensions.json
{
"recommendations": [
"vscjava.vscode-java-pack",
"redhat.vscode-yaml",
"pivotal.vscode-spring-boot",
"gabrielbb.vscode-lombok"
]
}
권장 프로젝트 구조
my-elasticore-project/
├── src/
│ ├── main/
│ │ ├── java/com/example/myproject/
│ │ │ ├── Application.java # @EnableElastiCore 필수
│ │ │ ├── config/ # Spring 설정 클래스
│ │ │ ├── domain/ # 생성된 도메인 코드
│ │ │ │ ├── entity/
│ │ │ │ ├── dto/
│ │ │ │ ├── repository/
│ │ │ │ └── service/
│ │ │ └── custom/ # 커스텀 비즈니스 로직
│ │ └── resources/
│ │ ├── blueprint/ # ElastiCORE DSL 정의
│ │ │ ├── env.yml
│ │ │ └── models.yml
│ │ ├── application.yml
│ │ └── application-dev.yml
│ └── test/java/ # 단위 테스트
├── docs/ # 프로젝트 문서
└── build.gradle
Spring Boot 설정
개발 환경
application-dev.yml
spring:
datasource:
url: jdbc:h2:mem:devdb;DB_CLOSE_DELAY=-1
driver-class-name: org.h2.Driver
username: sa
password:
h2:
console:
enabled: true
path: /h2-console
jpa:
hibernate:
ddl-auto: update
show-sql: false
properties:
hibernate:
format_sql: true
default_batch_fetch_size: 100
devtools:
restart:
enabled: true
additional-paths: src/main/resources/blueprint
logging:
level:
io.elasticore: DEBUG
org.springframework.web: INFO
management:
endpoints:
web:
exposure:
include: health,info,metrics
운영 환경
application-prod.yml
spring:
datasource:
url: ${DB_URL:jdbc:postgresql://localhost:5432/myproject}
username: ${DB_USERNAME:myproject}
password: ${DB_PASSWORD}
driver-class-name: org.postgresql.Driver
hikari:
maximum-pool-size: 20
jpa:
hibernate:
ddl-auto: none # 운영 환경에서는 스키마를 수동으로 관리
show-sql: false
logging:
level:
root: INFO
io.elasticore: INFO
개발 워크플로우
표준 개발 프로세스
# 1. ElastiCORE 코드 생성
./gradlew elcore
# 2. 애플리케이션 실행 (개발 모드)
./gradlew bootRun
# 3. 블루프린트 파일 변경 시 재생성:
./gradlew elcore
./gradlew compileJava