Quarkus
Quarkus (쿼커스)란 Java 가상머신 및 네이티브 컴파일을 위해 만들어진 “쿠버네티스 네이티브 프레임워크” 입니다.
Quarkus는 다음과 같은 특징을 가집니다. (source : https//quarkus.io/about/)
컨테이너 우선
Quarkus는 GraalVM 및 HotSpot에 맞게 애플리케이션을 조정합니다. 놀랍도록 빠른 부팅 시간, 매우 낮은 RSS 메모리(힙 크기뿐만 아니라!)는 Kubernetes와 같은 컨테이너 오케스트레이션 플랫폼에서 거의 즉각적인 확장 및 고밀도 메모리 활용을 제공합니다. 우리는 컴파일 타임 부팅이라고 하는 기술을 사용합니다.
Kubernetes-native
Quarkus는 처음부터 Kubernetes용으로 구축되어 플랫폼의 모든 복잡성을 이해하지 않고도 애플리케이션을 쉽게 배포할 수 있습니다. Quarkus를 사용하면 개발자가 YAML 파일을 수동으로 생성할 필요 없이 컨테이너 이미지 빌드 및 배포를 포함하여 Kubernetes 리소스를 자동으로 생성할 수 있습니다.
커뮤니티 및 표준
Quarkus는 여러분이 사랑하고 사용하는 50개 이상의 동급 최고의 라이브러리 목록을 활용하여 응집력 있고 사용하기 재미있는 풀 스택 프레임워크를 제공합니다. 모두 표준 백본에 연결됩니다.
즉, Kubernetes용으로 컨테이너 우선으로 구성된 표준 애플리케이션 개발 프레임워크이다. 가장 큰 특징으로는 빨리 로딩되고 메모리가 적게 차지한다는 것입니다. 일반적으로 기존 애플리케이션은 Java로 많이 이루어져 있고 이전의 서버 프로그래밍에서는 비즈니스 로직을 위해서 Java로 이루어진 Spring Framework를 많이 사용하는데, 문제점이 로딩시간이 길고 메모리를 많이 차지한다는 것입니다. Java는 여전히 대다수 개발자들의 선택하는 프로그래밍 언어이지만, 쿠버네티스 및 서버리스와 같은 Cloud Native 기술의 발전을 따라가면 상대적으로 Java가 가지는 “무겁다 / 메모리를 많이 필요로 한다 / 장황하다”라는 Java를 사용할 때 언급되는 문제를 해결해야 합니다. Java 개발자가 Kubernetes-Native인 Knative 및 Serverless 작업을 하기 위해서는 Java의 초기 구동시간과 메모리 사용량을 줄여야 합니다.
이를 지원하는 것이 Quarkus 입니다.

GraalVM
Quarkus는 GraalVM 바탕으로 동작을 합니다. GraalVM을 사용하기 때문에 초기 boot time 도 짧고 메모리 사용량도 적습니다. 자세한 내용은 여기를 참조하시기 바랍니다.
{수정중입니다!}
Reference
- https://developers.redhat.com/blog/2019/09/05/why-java-is-so-hot-right-now?extIdCarryOver=true&intcmp=7013a0000025xO9AAI&sc_cid=701f2000001Css5AAC#
- https://quarkus.io