bootRun 블록 설명

superwalk·2025년 2월 7일

Gradle에서 bootRun은
Spring Boot 애플리케이션을 실행하는 작업(task)이야.
이 설정을 통해 JVM 옵션을 조정하거나, 실행 경로를 지정할 수 있음

bootRun {
    jvmArgs = ["-Xmx512m", "-Dspring.output.ansi.enabled=ALWAYS"]
    classpath = files(sourceSets.main.runtimeClasspath)
}
  1. jvmArgs = ["-Xmx512m", "-Dspring.output.ansi.enabled=ALWAYS"]
    이 옵션들은 JVM(Java Virtual Machine) 실행 옵션을 설정하는 부분이야.

1️⃣ -Xmx512m

JVM의 최대 힙(heap) 메모리 크기를 512MB로 제한.
메모리 사용량을 조절해서 너무 많은 리소스를 소비하지 않도록 제한할 때 사용.
기본값보다 작게 설정하면, 메모리 부족 문제를 방지할 수 있음.
예) -Xmx1g → 최대 1GB 메모리 사용
2️⃣ -Dspring.output.ansi.enabled=ALWAYS

Spring Boot의 콘솔 로그 색상을 항상 활성화(ANSI 컬러 코드 사용).
ALWAYS 옵션을 설정하면 터미널에서 로그 출력 시 색상이 적용됨.
Spring Boot는 기본적으로 터미널 환경을 감지하여 색상을 자동 적용하지만, 강제 설정이 필요할 때 사용 가능.

  1. classpath = files(sourceSets.main.runtimeClasspath)
    애플리케이션 실행 시 클래스 경로(classpath)를 설정하는 부분.
    sourceSets.main.runtimeClasspath는 프로젝트의 메인 소스코드 및 종속 라이브러리를 포함하는 런타임 클래스 경로를 의미함.
    기본적으로 Spring Boot 애플리케이션을 실행할 때, 이 설정이 필요 없지만 명시적으로 지정 가능

sourceSets.main.runtimeClasspath가 의미하는 것
sourceSets.main.runtimeClasspath는 Gradle이 애플리케이션을 실행할 때 포함해야 할 클래스 파일 및 라이브러리 경로를 의미해.
즉, Spring Boot 애플리케이션을 실행할 때 필요한 파일들이 들어 있는 경로를 Gradle이 설정하는 것이야.

🔍 클래스 경로(Classpath)란?
클래스 경로(Classpath)는 JVM이 실행할 때 .class 파일(바이트 코드)과 라이브러리(JAR)를 찾는 경로를 말해.
Java 프로그램을 실행할 때 어떤 폴더/파일을 참조해야 하는지를 JVM이 알아야 하기 때문에, Gradle이 이 경로를 설정해 주는 거야.

✅ sourceSets.main.runtimeClasspath가 포함하는 경로
Gradle에서 sourceSets.main.runtimeClasspath는 다음과 같은 파일들이 있는 경로들을 포함해.

컴파일된 .class 파일

src/main/java에 있는 Java 파일이 컴파일되면 build/classes/java/main/ 폴더에 .class 파일이 생김.
즉, 애플리케이션의 실행 파일(.class)이 포함된 경로가 됨.
컴파일된 Kotlin 파일 (Kotlin 프로젝트일 경우)

src/main/kotlin 파일들이 컴파일되면, build/classes/kotlin/main/에 저장됨.
리소스 파일 (application.yml, application.properties 등)

src/main/resources/에 있는 설정 파일들이 build/resources/main/ 폴더에 복사됨.
프로젝트의 의존성 라이브러리(JAR)

implementation 'org.springframework.boot:spring-boot-starter-web' 같은 라이브러리들이 build/libs/ 또는 build/dependency-cache/에 저장됨.
즉, Spring Boot가 실행되려면 반드시 필요한 JAR 파일들이 포함됨.

profile
걷기 좋아하는

0개의 댓글