로그인 / 등록 Account

Java 개발 커뮤니티에서 Quarkus라는 재미있는 단어를 종종 보셨을 겁니다. 또한 최신 Red Hat 뉴스에서 Red Hat Runtime에 Quarkus를 공식적으로 맞이하게 되었다는 소식 역시 접하셨을 거라 생각합니다.

하지만 이것이 무슨 의미이며 Quarkus가 흥미로운 이유는 무엇일까요? 이 글에서는 오늘날의 현대적이고 분산된 쿠버네티스 중심 클라우드 네이티브 애플리케이션 개발의 세계에 Java를 도입하는 것이 의미하는 바가 무엇인지와 그 중요성에 대해 살펴봅니다.

우선, Quarkus란 무엇인가요?

Quarkus는 최적의 Java 라이브러리 및 표준을 사용해 GraalVM 및 HotSpot용으로 제작된 쿠버네티스 네이티브 Java 프레임워크입니다. Quarkus의 목적은 Java를 쿠버네티스 및 서버리스(serverless) 환경에서 선도적인 플랫폼으로 만드는 동시에, 개발자에게 보다 광범위한 분산 애플리케이션 아키텍처를 처리할 프레임워크를 제공하는 것입니다.

Quarkus는 빠른 시작 시간, 필요와 사용에 따른 마이크로서비스의 자동 확장 및 축소, 애플리케이션 및 컨테이너 이미지 공간을 크게 줄여 더 높은 밀도를 제공함으로써 비용 절감을 돕습니다.

Quarkus는 개발자의 생산성 증가, 비용 절감, 시장 출시 기간 단축, 신뢰성 향상을 위한 기능을 제공합니다. Quarkus 설계 시 중점을 둔 또 다른 목표는 기본적으로 즐겁게 사용할 수 있도록 하는 것이었습니다. 즐거운 개발 환경을 좋아하지 않을 사람은 없을 테니까요.

멋지지 않습니까? 하지만 Quarkus와 쿠버네티스 네이티브 Java가 그렇게 중요한 이유는 무엇일까요?

25년 전에 도입된 Java는 오늘날까지도 가장 널리 사용되는 프로그래밍 언어입니다. SlashData에 따르면 2019년 5월 기준으로 전 세계에 760만 명이 넘는 Java 개발자가 있다고 합니다.

Java는 원래 클라우드 네이티브가 아닌 모놀리식 애플리케이션 스택용으로 설계되었으며 Java 애플리케이션은 시작 시 속도가 느리고 새로운 경량 프레임워크에서 작동하기에는 너무 많은 메모리를 보유하고 있습니다. Quarkus는 이러한 Java를 미래에도 활용할 수 있도록 하는 것을 목표로 합니다.

Quarkus는 개발자들이 자신의 Java 기술과 보다 광범위한 Java 에코시스템을 활용하여 새로운 배포 환경 및 애플리케이션 아키텍처를 처리할 수 있는 기능을 제공하기 위해 개발되었습니다. 쿠버네티스는 점차 비즈니스 크리티컬 애플리케이션용으로 광범위하게 사용되는 추세이므로, Java 역시 새로운 쿠버네티스 애플리케이션 환경에 맞게 확장할 수 있어야 합니다.

쿠버네티스는 시작 시간이 빠르고 메모리 공간이 작은 초경량의 동적 환경으로 리소스가 제한되어 있습니다. 이는 Java의 운영 방식과 직접적인 대조를 이루는 부분입니다. Java는 여전히 엔터프라이즈 프로그래밍에서 대표적으로 사용되는 언어이지만, 컨테이너를 빠르게 확장 및 축소할 수 있으며 상대적으로 수명이 짧은 쿠버네티스 환경에서 불필요한 오버헤드를 초래할 수 있습니다.

특히 오늘날과 같이 인력이 분산된 환경에서는 최소 리소스와 대역폭을 사용하여 애플리케이션을 가동하는 것이 중요합니다. Quarkus는 라이브러리 프레임워크 최적화, 종속성 최소화, 사용되지 않는 코드 제거 등 대부분의 프로세싱을 빌드 단계로 이동하여 시작 시간을 크게 단축하고 애플리케이션에 필요한 메모리를 줄여줍니다. 즉, 수백만 명의 Java 개발자가 원하는 컨테이너와 함께 Java를 사용할 수 있기 때문에, 컨테이너를 사용하기 위해 새로운 프로그래밍 언어를 배울 필요가 없습니다.

Java를 대체할 새로운 프로그래밍 언어는 없을까요? Java를 미래에도 활용하는 것이 그렇게 중요한 이유는 무엇인가요?

아주 흥미로운 질문입니다. 실제로 지난 몇 년간 Ruby, Go, Rust와 같은 새로운 언어가 주류에 유입되는 모습을 보았습니다. 그러나 이렇게 눈에 띄는 신규 언어들은 사실 애플리케이션 개발자가 사용하는 언어가 아니라, 시스템 개발 언어이기 때문에 비즈니스 고객을 위한 기능은 갖추고 있지 않습니다.

예를 들어, 항공편 예약 시스템을 개발하려는 경우, Java에서 제공하는 엄격한 유형 안정성과 컴파일 시간 덕분에 다른 언어보다 Java를 선택하게 됩니다. 사실 프로그래밍 언어 세계는 꽤 느리게 움직이는 편입니다. 스택의 기반이 될 수 있는 강력하고 최적화된 언어로 인정받으려면 10년 이상의 시간이 걸린다는 것을 C와 C++를 보면 알 수 있습니다. 개발자는 필요가 없는 이상 굳이 리스크를 감수하고 새로운 언어를 사용하려 하지 않습니다. 개발된 지 10년도 되지 않은 언어라면 특히 그렇습니다. 이러한 기준으로 봤을 때 25년 된 Java는 꽤 최신 언어라고 볼 수 있으며, 새로운 환경에 맞게 진화하기도 쉽습니다.

전 세계 Java 개발자의 수와 Java를 기반으로 제작된 비즈니스 크리티컬 애플리케이션의 수만 보더라도, Java가 쿠버네티스 네이티브 애플리케이션에 호환되어야 한다는 것은 자명한 일입니다. 쿠버네티스는 컨테이너화된 애플리케이션을 배포하고 확장하고 관리하는 데 있어 특히 성공적인 시스템이라는 것이 입증되었지만, 장기적 활용성을 위해서는 Java를 지원해야만 합니다.

Quarkus의 기본 원칙 중 하나는 엔터프라이즈 Java 개발자가 즐겁게 작업할 수 있도록 하는 것입니다. Quarkus는 Java 개발자가 기존 전문 지식을 활용해 클라우드 네이티브 마이크로서비스와 이벤트 중심 애플리케이션을 제작할 수 있도록 지원하기 때문입니다. 개발자는 새로운 언어를 학습하는 데 시간을 들이지 않아도 되고, 기업에선 기존의 인재를 유지하는 동시에 클라우드 네이티브 마이크로서비스를 위한 단일 언어를 표준화할 수 있기 때문에 기업에서도 이를 중요하게 생각합니다.

Red Hat이 Java의 미래를 위해 노력하는 이유는 무엇인가요?

Red Hat은 오랜 기간 Java 커뮤니티를 선도하며 함께해왔습니다. Red Hat은 2007년부터 프로젝트의 가장 큰 기여자인 OpenJDK 커뮤니티의 일원이기도 합니다.

Red Hat은 오픈 커뮤니티 프로세스를 준수하며 계속하여 Java의 미래를 선도하는 것을 목표로 합니다. 또한 Java의 커뮤니티 지향적인 특성을 최대한 유지하면서 오픈소스의 뿌리와 정신을 이어가고자 합니다.

고객들은 자체적인 독점 Java 제품을 제공하는 다양한 벤더로 인한 Java 에코시스템의 파편화에 대한 질문을 종종 합니다. 또한 Red Hat은 많이 사용되는 클라우드 네이티브 Java 오픈소스 프로젝트의 전문가인 동시에 Quarkus 커뮤니티의 후원자이기도 합니다.

우리는 개방적인 환경과 협업의 힘을 믿으며, 여러분과 협력하여 쿠버네티스 네이티브의 미래에 Java를 도입할 수 있기를 바랍니다.


About the author

Rich is the Senior Director of the Application Services Business Group at Red Hat. He has spent the last thirty years evangelizing, using and designing enterprise middleware and cloud services. He previously worked for Forte Software and Sun Microsystems and as an independent software developer and consultant building large distributed software systems for the space, transport, telecom and energy sectors.

관심 주제

관심있는 소식을 찾아 보세요