Skip to content

백앤드 개발 환경 설정

dictionary-api 프로젝트(Java 26 toolchain + Spring Boot 4.1 + Gradle) 기준으로 정리한다.

  1. Gradle 툴체인이 지정한 버전을 자동으로 내려받아 쓰므로 시스템 JDK를 직접 맞출 필요는 없다.
    build.gradle
    java {
    toolchain {
    languageVersion = JavaLanguageVersion.of(26)
    }
    }
  2. 현재 사용 중인 툴체인 확인
    Terminal window
    ./gradlew -q javaToolchains
  1. 프로젝트를 열면 build.gradle을 감지해 Gradle 프로젝트로 임포트한다 — Gradle JDK가 툴체인 버전(26)과 다르면 IntelliJ가 자동으로 내려받아 맞춘다(Settings → Build Tools → Gradle에서 직접 확인 가능).
  2. Lombok 플러그인 설치 및 애노테이션 처리 활성화
    Settings → Plugins → Lombok 설치
    Settings → Build, Execution, Deployment → Compiler → Annotation Processors
    → Enable annotation processing 체크
  3. 실행/디버그 설정에 필요한 환경변수(JASYPT_ENCRYPTOR_PASSWORD)를 매번 반복 입력하지 않으려면 템플릿에 등록해 이후 만들어지는 실행 설정 전체에 상속시킨다.
    Run/Debug Configurations → Edit configuration templates...
    → Spring Boot(또는 Application)/JUnit 템플릿의 Environment variables에 추가
  1. Lombok 설치 — lombok.jar를 받아 실행한 뒤 설치 마법사에서 STS/Eclipse 설치 경로를 선택하고 재시작한다.
    https://projectlombok.org/download
  2. File → Import → Gradle → Existing Gradle Project로 임포트한다.
  3. Preferences → Java → Compiler에서 컴플라이언스 레벨이 Gradle 툴체인 버전(26)과 맞는지 확인한다.
  1. 확장 설치
    Extension Pack for Java (Microsoft)
    Lombok Annotations Support for VS Code
    Gradle for Java
  2. settings.json에 Gradle JDK 경로가 필요하면 지정한다.
    .vscode/settings.json
    {
    "java.configuration.runtimes": [
    { "name": "JavaSE-26", "path": "/path/to/jdk-26" }
    ]
    }
  1. 로컬 터미널(./gradlew build/test/bootRun)
    ~/.bashrc 또는 ~/.zshrc
    export JASYPT_ENCRYPTOR_PASSWORD=...
  2. IDE 실행/디버그 — 셸 프로파일과 무관한 별도 프로세스라 위 1번과 별개로 설정해야 한다. 위 IntelliJ 항목의 실행 설정 템플릿에 등록한다.
  3. docker-compose(docker 프로파일) — 호스트 환경변수를 그대로 전달만 하므로 1번이 되어 있으면 별도 작업이 없다.
    Terminal window
    docker compose up -d --build
  1. active profile 지정
    Terminal window
    ./gradlew bootRun --args='--spring.profiles.active=local'
  2. jar로 직접 실행
    Terminal window
    java -jar build/libs/dictionary-api-0.0.1-SNAPSHOT.jar --spring.profiles.active=local
  3. local은 로컬 MySQL, test/prod는 인메모리 H2를 사용한다 — 프로파일별 설정은 src/main/resources/config/<profile>/application-<profile>.yaml.