Spring Boot 3.0이 정식 출시됨에 따라 GraalVM 기반의 Spring Native image를 통한 AOT를 공식 지원하게 되었습니다.
- AOT란?
Java의 컴파일 방법 중 하나로 프로그램이 실행되기 전에, 코드를 기계어로 컴파일하는 방식입니다.
즉 런타임 전에 컴파일을 진행하므로, 빠른 실행이 가능하다는 장점이 있습니다.
장점은 3가지 정도 언급을 하고 있습니다.
- Less Spring infrastructure to execute at runtime
- Fewer conditions to evaluate at runtime
- Less reflection, since programmatic bean registration is used
요약하자면 적은 리소스로 빠르게 실행이 가능하다고 하는 것 같습니다.
- GraalVM 이란?
GraalVM은 Java로 작성된 애플리케이션의 실행을 가속화하는 동시에 JavaScript, Python등 기타 언어에 대한 런타임을 제공하도록 설계된 고성능 JDK입니다.
GraalVM은 최신 JAVA 애플리케이션에 높은 성능과 확장성을 제공하는 목적이 있습니다.
이는 더 적은 오버헤드로 더 빠르게 실행한다는 의미이므로, 더 적은 CPU와 메모리를 사용하여, 최적의 리소스를 활용한다는 의미로 해석될 수 있습니다.
앞으로 공식 지원하는 만큼 향후 더욱 발전되지 않을까하는 생각이 있습니다.
Spring Boot 3.0으로 마이그레이션 하기 위해서 몇 가지 단계가 필요하지만, 시간을 갖고 테스트를 해봐야 할 것 같습니다.
예제코드와 설명은 아래 공식 문서에 가장 잘 정리되어 있습니다.
https://docs.spring.io/spring-boot/docs/current/reference/html/native-image.html
'Spring' 카테고리의 다른 글
[R2DBC] R2DBC란 무엇인가? (0) | 2022.07.22 |
---|---|
STOMP에 대한 이해 (0) | 2022.03.14 |
[스프링 #7] Test (0) | 2019.03.30 |
[스프링 #6] Custom Annotation (0) | 2018.05.30 |
[스프링 #5] DispatcherServlet (0) | 2018.05.05 |