Spring

SpringBoot 3.0의 AOT (Ahead of Time Compilation)

zamezzz 2023. 4. 12. 15:34


Spring Boot 3.0이 정식 출시됨에 따라 GraalVM 기반의 Spring Native image를 통한 AOT를 공식 지원하게 되었습니다.


- AOT란?

Java의 컴파일 방법 중 하나로 프로그램이 실행되기 전에, 코드를 기계어로 컴파일하는 방식입니다.
즉 런타임 전에 컴파일을 진행하므로, 빠른 실행이 가능하다는 장점이 있습니다.

(참고 :  https://spring.io/blog/2021/12/09/new-aot-engine-brings-spring-native-to-the-next-level )


장점은 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와 메모리를 사용하여, 최적의 리소스를 활용한다는 의미로 해석될 수 있습니다.

 

(참고 :  https://www.graalvm.org/ )




앞으로 공식 지원하는 만큼 향후 더욱 발전되지 않을까하는 생각이 있습니다.

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