Community
QUARKUS
QUARKUS란?
QUARKUS는 클라우드 네이티브 Java 프레임워크로, 기존 Java 애플리케이션의 무거움과 느린 시작 시간을 해결하며, 경량화와 고성능을 제공하는 혁신적인 솔루션입니다. 마이크로서비스와 서버리스 환경에서 Java 개발자들이 효율적으로 애플리케이션을 개발하고 운영할 수 있도록 지원합니다.
Quarkus는 Apache License 2.0에 따라 배포되는 오픈소스 Java 프레임워크입니다.

QUARKUS 구성 요소
QUARKUS Core
- QUARKUS의 핵심 프레임워크로, 경량화와 빠른 실행 속도를 보장하며 핵심기능을 제공합니다.
Extensions (확장 모듈)
- RESTEasy, Hibernate ORM, MicroProfile, Kafka 등 기능 확장 모듈을 통해 다양한 기술과 통합됩니다.
Live Coding
- 코드 변경 사항을 실시간으로 반영하는 기능으로, 개발자의 생산성을 극대화합니다.
GraalVM 네이티브 이미지
- Java 애플리케이션을네이티브 바이너리로 빌드해 메모리 사용량을 줄이고 실행 시간을 크게 단축합니다.
MicroProfile Support
- Ecclipse MicroProfile를 지원하여 마이크로서비스 개발에 필요한 기능(구성, 보안, 메트릭 등)을 제공합니다.
Dev Services
- 개발 중 데이터베이스, 메시지 큐와 같은 리소스를 자동으로 설정해주는 기능으로 개발 편의성을 높입니다.
QUARKUS 블로그
더보기 »
QUARKUS 리소스
더보기 »
QUARKUS 쉽게 이해하기
QUARKUS는 클라우드 네이티브 Java 프레임워크로, 기존 Java 애플리케이션의 느림과 무거움을 해결해 주는 경량화된 도구입니다.
- 빠른 시작 시간으로 컨테이너와 서버리스 환경에 최적화되어 있습니다.
- 메모리를 적게 사용하기 때문에 클라우드 리소스를 더 효율적으로 활용할 수 있습니다.
- GraalVM을 통해 애플리케이션을 네이티브 실행 파일로 빌드해 성능을 극대화합니다.
QUARKUS 시작과 배경
QUARKUS는 Red Hat에 의해 클라우드와 컨테이너 환경에서 Java를 더 잘 활용하기 위해 만들어졌습니다.
그 목적은 Java를 빠르고 가볍게 만들어 클라우드 네이티브 애플리케이션과 마이크로서비스 환경에서 효율적이고 생산적인 솔루션을 제공하는 것이었습니다.
QUARKUS 시작
QUARKUS 배경
QUARKUS 주요 특징
QUARKUS는 경량화, 빠른 실행, 낮은 메모리 사용량을 중심으로 설계된 클라우드 네이티브 Java 프레임워크입니다. 특히 GraalVM, Kubernetes 통합, 개발자 친화적 기능을 통해 클라우드와 마이크로서비스 환경에서 Java의 성능을 극대화합니다
특징 | 설명 | 이점 |
---|---|---|
클라우드 네이티브 최적화 | QUARKUS는 Kubernetes 및 컨테이너 환경에서 동작하도록 설계되었습니다. | 클라우드 및 컨테이너 환경에서 최적의 성능과 확장성을 제공합니다. |
빠른 시작 시간 | 애플리케이션이 밀리초 단위로 빠르게 시작됩니다. | 서버리스 및 마이크로서비스 환경에서 매우 유리하며, 리소스 낭비를 줄입니다. |
낮은 메모리 사용량 | 기존 Java 프레임워크보다 훨씬 적은 메모리를 사용합니다. | 클라우드 비용 절감과 리소스 최적화가 가능합니다. |
GraalVM 네이티브 이미지 | GraalVM을 사용하여 네이티브 실행 파일로 빌드할 수 있습니다. | 실행 속도가 더 빨라지고 메모리 사용량이 크게 줄어듭니다. |
개발자 친화적 기능 | Live Coding(실시간 코드 리로드) 기능과 빠른 피드백 루프를 제공합니다. | 코드 수정 시 즉시 반영되어 개발 속도가 크게 향상됩니다. |
확장 모듈(Extensions) | RESTEasy, Hibernate ORM, Kafka 등 다양한 확장 모듈을 제공하여 필요한 기능을 추가합니다. | 기존 Java 생태계와 호환되어 개발자가 익숙한 도구를 그대로 사용할 수 있습니다. |
MicroProfile 지원 | Eclipse MicroProfile 표준을 기반으로 마이크로서비스 개발에 필요한 기능을 제공합니다. | 구성 관리, 보안, 메트릭 등 마이크로서비스 운영에 필요한 기능을 표준화된 방식으로 제공합니다. |
컨테이너 최적화 | Container First 설계로 컨테이너와 Kubernetes 환경에 맞춰 최적화되었습니다. | Kubernetes 및 Docker 환경에서 빠르고 안정적으로 동작합니다. |
유연하고 확장 가능한 아키텍처 | 필요한 기능만 모듈화하여 사용하고 불필요한 요소를 제거할 수 있습니다. | 경량화된 애플리케이션을 만들어 성능을 극대화할 수 있습니다. |
강력한 생산성 | QUARKUS는 Spring 및 기존 Java 개발자의 경험을 유지하며 사용이 간편합니다. | 기존 Java 개발자들도 쉽게 학습하고 빠르게 적응할 수 있습니다. |
QUARKUS 경쟁 제품
QUARKUS는 경량화, 빠른 실행, 낮은 메모리 사용량으로 클라우드 네이티브 환경에 최적화된 Java 프레임워크입니다. 경쟁 제품인 Spring Boot는 넓은 생태계와 강력한 지원이 있지만 무겁고 느린 시작 시간이 단점입니다. Micronaut와 Helidon은 경량성과 빠른 실행에 집중했으며, Vert.x는 비동기 처리 성능이 뛰어납니다. 따라서, 선택할 때는 시스템의 특성과 성능 요구사항을 고려해 가장 효과적인 프레임워크를 도입하는 것이 중요합니다.
제품명 | 주요 기능 | 장점 | 단점 | 주요 사용 사례 |
---|---|---|---|---|
Spring Boot | Java 기반의 마이크로서비스 프레임워크, 다양한 확장 기능 제공 | 풍부한 생태계와 널리 알려진 기술, 강력한 개발자 지원 | 메모리 사용량이 많고 시작 시간이 느림 | 기존 Java 애플리케이션의 클라우드 마이그레이션 |
Micronaut | 경량화와 빠른 시작 시간에 초점 맞춘 JVM 기반 프레임워크 | 빠른 시작 시간과 낮은 메모리 사용, GraalVM 네이티브 지원 | 상대적으로 작은 커뮤니티와 확장성 부족 | 서버리스와 마이크로서비스 애플리케이션 개발 |
Helidon | 클라우드 네이티브 마이크로서비스를 위한 Java 프레임워크, MicroProfile 지원 | 경량 아키텍처, Oracle 기술과의 높은 호환성 | 생태계와 문서가 부족하고 상대적으로 덜 알려짐 | 클라우드 네이티브 애플리케이션, Oracle 클라우드 |
Vert.x | 이벤트 기반의 경량 프레임워크, 비동기 프로그래밍과 높은 성능 제공 | 이벤트 드리븐 방식으로 고성능, 경량화된 실행 | 코드 구조가 복잡하고 학습 곡선이 높음 | 실시간 애플리케이션, 비동기 이벤트 처리 |
GraalVM Native Image | 네이티브 실행 파일로 Java 애플리케이션을 빌드해 빠른 시작과 낮은 메모리 제공 | 뛰어난 성능 최적화, 빠른 시작 시간 | 복잡한 설정과 빌드 시간, 일부 기존 Java 코드와 호환성 부족 | 서버리스, 컨테이너 기반 애플리케이션 |
Ktor | Kotlin 기반의 비동기 웹 애플리케이션 프레임워크 | Kotlin 지원 및 경량화, 비동기 네트워크 처리 | Kotlin 전용으로 Java 개발자에게는 생소함 | 경량 웹 애플리케이션과 마이크로서비스 개발 |
Dropwizard | RESTful 웹 서비스와 마이크로서비스를 빠르게 개발하기 위한 프레임워크 | 단순하고 빠른 구현, 성능이 안정적 | 확장성과 커뮤니티 지원이 부족함 | 소규모 프로젝트와 RESTful 서비스 개발 |
QUARKUS 레퍼런스
Amadeus