GraalVM Native Images
빠른 시작, 네이티브 컴파일, AOT, reflection hints, 제한을 위한 GraalVM 네이티브 이미지
1GraalVM Native Image란 무엇입니까?
GraalVM Native Image란 무엇입니까?
답변
GraalVM Native Image는 AOT(Ahead-of-Time) 컴파일을 통해 Java 애플리케이션을 독립 실행형 네이티브 실행 파일로 컴파일하는 기술입니다. 런타임에 JIT(Just-In-Time) 컴파일을 사용하는 기존 JVM과 달리, Native Image는 모든 코드를 사전에 분석하고 컴파일합니다. 이를 통해 거의 즉각적인 시작(밀리초), 메모리 사용량 감소, 실행을 위한 JVM 의존성 제거가 가능합니다.
2AOT 컴파일과 JIT 컴파일의 주요 차이점은 무엇입니까?
AOT 컴파일과 JIT 컴파일의 주요 차이점은 무엇입니까?
답변
AOT(Ahead-of-Time) 컴파일은 실행 전에 모든 코드를 분석하고 컴파일하여 최적화된 네이티브 실행 파일을 생성합니다. JIT(Just-In-Time) 컴파일은 실행 중에 Java bytecode를 점진적으로 기계어로 컴파일합니다. AOT는 즉각적인 시작을 제공하지만 build 시간이 더 오래 걸리며, JIT는 시작은 느리지만 실제 사용 패턴을 기반으로 시간이 지나면서 코드를 최적화합니다.
3Spring Boot native image를 빌드하려면 어떤 Maven plugin을 사용해야 합니까?
Spring Boot native image를 빌드하려면 어떤 Maven plugin을 사용해야 합니까?
답변
org.graalvm.buildtools 그룹의 native-maven-plugin은 Maven으로 native image를 빌드하기 위한 공식 plugin입니다. Spring Boot starter parent는 'native' profile에서 이를 자동으로 활성화합니다. plugins 섹션에 plugin을 선언하고 원하는 모드에 따라 mvn -Pnative spring-boot:build-image 또는 mvn -Pnative package를 실행하기만 하면 됩니다.
Spring Boot 네이티브 컴파일을 위한 Maven profile은 어떻게 활성화합니까?
GraalVM Native Image에서 'closed-world assumption' 원칙이란 무엇입니까?
+17 면접 질문