Jump to section

Quarkus란?

URL 복사

Quarkus는 Java 가상 머신(JVM) 및 네이티브 컴파일을 위해 만들어진 풀스택, 쿠버네티스 네이티브 Java 프레임워크로, 특히 컨테이너에 Java를 최적화하여 이를 서버리스(serverless), 클라우드쿠버네티스 환경을 지원하는 효과적인 플랫폼이 되도록 합니다.

Quarkus는 Eclipse MicroProfile, Spring, Apache Kafka, RESTEasy(JAX-RS), Hibernate ORM(JPA), Spring, Infinispan, Camel 등과 같이 널리 사용되는 Java 표준, 프레임워크 및 라이브러리와 연동되도록 설계되었습니다.

Quarkus의 종속성 주입은 CDI(Contexts and Dependency Injection)를 기반으로 하며, 기능을 확장 프레임워크를 애플리케이션으로 설정, 부팅 및 통합하기 위한 확장 프레임워크를 포함합니다. 확장 기능을 추가하는 것은 종속성을 추가하는 것만큼 간단하며, Quarkus 툴링을 사용할 수도 있습니다.

또한 GraalVM(Java 및 JavaScript를 포함한 여러 언어로 작성한 애플리케이션을 실행하기 위한 범용 가상 머신)에 정확한 정보를 제공하여 애플리케이션의 네이티브 컴파일을 지원합니다.

 

Quarkus를 사용해야 하는 4가지 이유

Java™는 여전히 대다수의 개발자들이 선택하는 프로그래밍 언어지만, 쿠버네티스 및 서버리스와 같은 클라우드 네이티브 기술의 발전으로 새로운 도전을 맞게 되었습니다. Java 프레임워크 개발자가 Knative 및 서버리스 작업에 Quarkus를 필요로 하는 이유를 알아보세요.

Quarkus는 처음부터 바로 쉽게 사용할 수 있도록 설계되어, 특별한 구성 없이도 기능이 올바로 작동합니다.

개발자는 애플리케이션에 사용할 Java 프레임워크를 선택할 수 있으며, 이러한 애플리케이션은 JVM 모드에서 실행되거나 기본 모드에서 컴파일 및 실행될 수 있습니다.

개발자가 즐겁게 개발할 수 있도록 만들어진 Quarkus는 다음과 같은 기능도 포함합니다.

  • 개발자가 즉시 코드 변경 효과를 확인하고 신속하게 문제를 해결할 수 있는 라이브 코딩
  • 임베딩된 관리형 이벤트 버스를 사용한 통합 명령형 및 반응형 프로그래밍 모델
  • 통합 구성
  • 손쉬운 기본 실행 파일 생성

애플리케이션이 퍼블릭 클라우드 또는 내부에서 호스팅된 쿠버네티스 클러스터에 호스팅되는 경우, 빠른 시작과 적은 메모리 사용량과 같은 특성은 전반적인 호스트 비용을 낮추는 데 중요합니다.

Quarkus는 컨테이너 우선 전략을 중심으로 구축되었는데, 이는 다음 방식으로 적은 메모리 사용량과 빠른 시작 시간을 위해 최적화되었다는 의미입니다.

  • Graal/SubstrateVM에 대한 최고 수준의 지원
  • 빌드 타임 메타데이터 처리
  • 리플렉션 사용 감소
  • 기본 이미지 사전 부팅

Quarkus가 구축한 애플리케이션은 기존 Java에 비해 메모리 사용량이 1/10인데다가 시작 시간이 더 빨라서(최대 300배 빠름) 클라우드 리소스 비용이 대폭 줄어듭니다.

Quarkus는 애플리케이션 개발 시 기존의 명령형 스타일 코드와 논블로킹(non-blocking), 반응형 스타일을 원활하게 결합하도록 설계되었습니다.

이는 명령형 모델 작업에 익숙해 변화를 원치 않는 Java 개발자와 클라우드 네이티브/반응형 방식으로 작업하는 개발자 모두에게 유용합니다.

Quarkus 개발 모델은 개발 중인 애플리케이션에 맞춰 조정할 수 있습니다.

Quarkus는 이처럼 새로운 서버리스 아키텍처, 마이크로서비스, 컨테이너, 쿠버네티스, 서비스로서의 기능(FaaS) 및 클라우드 환경에서 Java를 실행하기 위한 효과적인 솔루션입니다. 이 모든 요소를 고려해 개발되었기 때문입니다.

추가 자료

문서

스테이트풀과 스테이트리스 비교

스테이트풀과 스테이트리스는 상호 작용 상태가 얼마나 오래 기록되는지, 해당 정보가 어떤 식으로 저장되는지를 기준으로 구별할 수 있습니다.

문서

Quarkus란?

Quarkus는 Java 가상 머신(Java Virtual Machine, JVM)과 네이티브 컴파일을 위해 만들어진 쿠버네티스 네이티브 Java 스택으로, 특히 컨테이너에 Java를 최적화합니다.

문서

서버리스란?

서버리스(serverless)란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델입니다.

클라우드 네이티브 애플리케이션에 대한 자세한 내용

제품

선택한 인프라에서 애플리케이션 출시 테스트를 완료한 통합 서비스 세트를 포함하는 엔터프라이즈 애플리케이션 플랫폼입니다.

리소스

E-book

클라우드 네이티브와 하이브리드 클라우드의 융합: 전략 가이드

팟캐스트

Command Line Heroes 시즌 9, 에피소드 8:
"All together now"

E-book

클라우드 네이티브 애플리케이션 구현을 위한 과정

교육

무료 교육 과정

Developing Cloud-Native Applications with Microservices Architectures