본문 바로가기
📚 개발 공부

[SpringBoot 3.x] GraalVM 테스트

by cheonvi 2023. 12. 4.

SpringBoot 3.x  버전에서 개발된 자바 소스를 GraalVM Native 컴파일을 할 수 있도록 제공해 줍니다.

 

GraalVM  이란?

GraalVM은 Java 코드를 작성하고 실행할 수 있는 도구이다. Oracle에서 만든 JVM(Java Virtual Machine) 및 JDK(Java Development Kit)이고 애플리케이션의 성능과 효율성을 개선하는 목적으로 나온 고성능 런타임이다.

 

■ 준비사항

 

1. Jdk 17

 ☞ https://download.java.net/java/GA/jdk17.0.2/
   dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_windows-x64_bin.zip

2. Graalvm-jdk-17

 ☞ https://download.oracle.com/graalvm/17/latest/graalvm-jdk-17_windows-x64_bin.zip

3. Visual Studio 2022용 빌드 도구

  ☞ https://aka.ms/vs/17/release/vs_BuildTools.exe

4. SpringBoot 3.x 프로젝트 생성 시 Dependencies 추가

 ☞ Spring Web

 ☞ GraalVM Native Support

 

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.1.3'
	id 'io.spring.dependency-management' version '1.1.3'
	id 'org.graalvm.buildtools.native' version '0.9.24'
}

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

java {
	sourceCompatibility = '17'
	targetCompatibility = '17'
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
	useJUnitPlatform()
}


graalvmNative {
    binaries {
        main {
            // Advanced options
            buildArgs.add('-H:-CheckToolchain')
         }
     }
}

bootBuildImage {
	imageName = "eu.gcr.io/company/imagename"
	
}

 

 

■ 샘플 소스

개발된 샘플 소스는 아래  GitHub  참고하세요.

 

GitHub - cheonvi1004/demo-graalVM: GraalVM-Test

GraalVM-Test. Contribute to cheonvi1004/demo-graalVM development by creating an account on GitHub.

github.com

 

■ 실행 비교

  컴파일을 jar vs GraalVM Native 방식으로 컴파일 후 실행 결과 GraalVM Native 방식으로 컴파일 된것이 빠르게 구동이 된것을 확인 하였다. 

 

기본  jar으로 컴파일하여 실행

 

 

GraalVM  Native 방식으로 컴파일 후 실행