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

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

E-book

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

교육

무료 교육 과정

Developing Cloud-Native Applications with Microservices Architectures