Skip to content

GraalVM

샘플 프로젝트: graalvm

Ktor 서버 애플리케이션은 다양한 플랫폼을 위한 네이티브 이미지를 만들기 위해 GraalVM을 활용할 수 있으며, 물론 GraalVM이 제공하는 더 빠른 시작 시간과 기타 이점을 활용할 수 있습니다.

현재 GraalVM을 활용하려는 Ktor 서버 애플리케이션은 애플리케이션 엔진으로 CIO를 사용해야 합니다.

GraalVM 준비

GraalVM을 설치하고 설치 디렉터리를 시스템 경로에 추가하는 것 외에도, 모든 의존성이 번들되도록 애플리케이션을 준비해야 합니다. 즉, 팻 JAR를 생성해야 합니다.

리플렉션 구성

GraalVM은 리플렉션을 사용하는 애플리케이션과 관련하여 일부 요구 사항을 가집니다. 이는 Ktor의 경우에도 마찬가지입니다. 특정 타입 정보를 포함하는 JSON 파일을 제공해야 합니다. 이 구성 파일은 그 후 native-image 도구에 인수로 전달됩니다.

native-image 도구 실행

팻 JAR가 준비되면, 유일하게 필요한 단계는 native-image CLI 도구를 사용하여 네이티브 이미지를 생성하는 것입니다. 이는 Gradle 플러그인을 통해서도 수행될 수 있습니다. build.gradle.kts 파일의 예시는 여기에서 볼 수 있습니다. 하지만 사용되는 의존성, 프로젝트의 패키지 이름 등에 따라 일부 옵션이 다를 수 있음에 유의하십시오.

결과 바이너리 실행

셸 스크립트가 오류 없이 실행되면 네이티브 애플리케이션을 얻게 되는데, 샘플의 경우 graal-server라고 불립니다. 이를 실행하면 Ktor 서버가 시작되고 https://0.0.0.0:8080에서 응답합니다.

//: # (

Code example: deployment-ktor-plugin

)