개발 가이드 설정 (Setup) Gradle 빌드 설정
최종 수정:

Gradle 빌드 설정

Gradle 빌드 구성 및 의존성 관리 규칙

Gradle 빌드 설정

프로젝트 기본 정보

plugins {
    id 'java'
    id 'org.springframework.boot' version '4.0.5'
    id 'io.spring.dependency-management' version '1.1.7'
}

group = 'com.scraping'
version = '0.0.1-SNAPSHOT'

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

핵심 의존성

의존성역할
spring-boot-starter-webmvcSpring MVC (컨트롤러, REST API)
spring-boot-starter-thymeleaf서버사이드 템플릿 엔진
thymeleaf-layout-dialect:4.0.1Thymeleaf 레이아웃 방언 (Groovy 5 호환)
spring-boot-starter-data-jpaJPA/Hibernate ORM
mybatis-spring-boot-starterMyBatis SQL 매퍼
spring-boot-starter-batch배치/스케줄러
spring-boot-starter-mail이메일 발송
spring-ai-starter-model-anthropicClaude AI API (Spring AI)
jsoupHTML 파싱
flexmark-all:0.64.8Markdown → HTML 변환

의존성 추가 규칙

Spring Boot BOM 관리 범위 내 라이브러리

// 버전 명시 불필요 (BOM이 관리)
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-webmvc'

BOM 외부 라이브러리

// 버전 명시 필수
implementation 'org.jsoup:jsoup:1.17.2'
implementation 'com.vladsch.flexmark:flexmark-all:0.64.8'
implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:4.0.1'

Spring AI BOM

ext {
    set('springAiVersion', "2.0.0-M4")
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.ai:spring-ai-bom:${springAiVersion}"
    }
}

// Spring AI 의존성 — 버전 BOM에서 관리
implementation 'org.springframework.ai:spring-ai-starter-model-anthropic'

주요 빌드 명령

# 컴파일만 (에러 확인)
./gradlew compileJava

# 테스트 실행
./gradlew test

# 실행 가능한 JAR 생성 (배포용)
./gradlew bootJar

# 테스트 제외 전체 빌드
./gradlew build -x test

# 로컬 실행
./gradlew bootRun

# 특정 프로파일로 로컬 실행
./gradlew bootRun --args='--spring.profiles.active=local'

# 의존성 트리 확인
./gradlew dependencies

# 특정 설정 의존성 확인
./gradlew dependencies --configuration runtimeClasspath

# 빌드 캐시 초기화
./gradlew clean

새 의존성 추가 체크리스트

  • [ ] Maven Central 또는 mvnrepository.com에서 최신 안정 버전 확인
  • [ ] 알려진 CVE 취약점 버전 사용 금지 (ossindex.sonatype.org 확인)
  • [ ] Spring Boot BOM 관리 범위 내인지 확인 (버전 명시 여부 결정)
  • [ ] ./gradlew compileJava 로 컴파일 확인

로컬 개발 환경

Java 17 설치 확인

java -version
# openjdk version "17.x.x" 이상이어야 함

Gradle Wrapper 사용

# ./gradlew 사용 (로컬 Gradle 설치 불필요)
./gradlew --version

IntelliJ IDEA 설정

  1. Build, Execution, Deployment > Build Tools > Gradle
    • Build and run using: Gradle
    • Run tests using: Gradle
    • Gradle JVM: Project SDK (17)
  2. File > Sync Project with Gradle Files

H2 인메모리 DB (개발용)

# application-local.yml — 로컬 개발 시 H2 사용 (MySQL 없이 실행)
spring:
  datasource:
    url: jdbc:h2:mem:testdb;MODE=MySQL
    driver-class-name: org.h2.Driver
    username: sa
    password:
  jpa:
    hibernate:
      ddl-auto: create-drop
    show-sql: true
  h2:
    console:
      enabled: true   # http://localhost:8080/h2-console

Thymeleaf Layout Dialect 주의사항

이 프로젝트는 thymeleaf-layout-dialect:4.0.1 (Groovy 5 호환)을 사용한다.

<!-- 4.0.x 기준 — <title> 태그 안에 layout:title-pattern 사용 -->
<title layout:title-pattern="$CONTENT_TITLE — jihwan.dev">jihwan.dev</title>

이전 버전(3.x)의 <head> 속성 방식과 다르므로 주의한다.

AI 문서 검색

현재 페이지 내용을 기반으로 질문하세요.