본문으로 건너뛰기

개발 환경 설정

ElastiCORE Spring Boot 개발을 효율적으로 수행하기 위한 IDE 및 개발 도구 구성 가이드입니다.

IDE 설정

IntelliJ IDEA (권장)

필수 플러그인

  1. Lombok - 보일러플레이트 코드 자동 생성
  2. YAML/Ansible support - YAML 구문 강조 및 자동 완성
  3. Database Navigator - 데이터베이스 관리 및 쿼리 실행
  4. 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

문제 해결

1. 코드 생성이 작동하지 않는 경우

# 해결 방법:
# 1. Application 클래스에 @EnableElastiCore 어노테이션이 있는지 확인
# 2. 블루프린트 디렉토리 경로 확인 (src/main/resources/blueprint)
# 3. 클린 후 재생성: ./gradlew clean elcore

2. 핫 리로드가 작동하지 않는 경우

# 해결 방법:
# 1. spring-boot-devtools 의존성 확인
# 2. IDE에서 자동 빌드 활성화 (IntelliJ: Build project automatically)
# 3. application-dev.yml의 devtools 설정 확인

다음 단계

개발 환경이 준비되었으면:


개발 팁
  1. IDE 단축키: 블루프린트 파일과 생성된 코드 간 빠른 이동
  2. 자동화 스크립트: 반복적인 개발 작업 자동화
  3. Git hooks: 커밋 전 코드 생성 상태 검증
  4. 팀 설정: .editorconfig 및 IDE 설정을 저장소에 포함
주의 사항
  • 생성된 코드를 직접 수정하지 마세요: 다음 빌드 시 덮어쓰여집니다. 대신 확장 패턴을 사용하세요.
  • 블루프린트 파일을 백업하세요: 중요한 모델 정의는 Git 버전 관리로 관리하세요.
  • 환경 설정을 분리하세요: 개발/테스트/운영 환경 설정을 명확히 분리하세요.