JRuby 10: Ruby를 위한 최적화와 새로운 가능성

[EN] Optimizing JRuby 10 / Charles Nutter @headius

작성자
RubyKaigi
발행일
2025년 05월 27일

핵심 요약

  • 1 JRuby 10은 Ruby 3.4 호환성을 달성하며, Java 21+의 최신 JVM 기능을 활용하여 시작 시간, 객체 할당, 동시성 등 전반적인 성능을 대폭 향상시켰습니다.
  • 2 JVM의 AppCDS, Project Leyden, Project CRaC 등의 기술을 통해 JRuby의 고질적인 약점이었던 시작 및 워밍업 시간이 획기적으로 개선되었습니다.
  • 3 JRuby는 C 확장 대신 JVM의 최적화 능력을 활용하여 순수 Ruby 코드 및 Java로 포팅된 C 코드를 C Ruby보다 빠르게 실행하며, 스레드를 통한 효율적인 멀티코어 활용으로 Rails 애플리케이션의 리소스 효율성을 높입니다.

도입

발표자는 JRuby 10의 출시를 알리며, 20년간 JRuby 개발을 통해 자바 플랫폼의 장점을 루비 세계에 접목해 온 경험을 공유합니다. 현재 레드햇의 후원 없이 루비 커뮤니티의 지원으로 프로젝트를 이어가고 있으며, JRuby 10은 루비 3.4 호환성을 확보하고 자바 21 이상을 요구하는 등 여러 면에서 중대한 도약을 이루었습니다. 이번 발표는 JRuby가 루비 개발자에게 더 나은 경험을 제공하고 루비의 활용 범위를 확장하기 위한 다양한 최적화 방안에 초점을 맞춥니다.

JRuby 10은 Ruby 3.4 호환성을 달성하고 최신 JVM 기능을 활용하여 성능과 활용성을 대폭 향상시켰습니다.

1. 주요 성능 개선

  • 시작 및 워밍업 시간: JVM의 AppCDS 도입으로 JRuby 10의 시작 속도가 크게 개선되었습니다. 향후 Project Leyden (AOT 캐시) 및 Project CRaC (프로세스 상태 복원)을 통해 거의 즉각적인 시작이 가능해질 전망입니다.
  • 코드 실행 효율성: JRuby는 발전된 JVM의 JIT 컴파일러를 통해 Ruby 코드를 고성능으로 실행합니다. 순수 Ruby 코드, Java로 포팅된 C 확장, 그리고 객체 할당 및 Data 객체 생성 모두에서 C Ruby 대비 우월한 성능을 보이며, Graal JIT는 불필요한 할당을 제거하여 효율성을 극대화합니다.
  • 동시성 강화: Project Loom의 가상 스레드(Virtual Threads) 도입으로 JRuby 파이버 성능이 획기적으로 향상되어 C Ruby보다 빠른 동시성 처리를 가능하게 합니다.

2. 멀티코어 활용 및 Rails 효율성

  • JRuby는 스레드 안전한 코드를 통해 시스템의 모든 코어를 즉시 활용하여 뛰어난 동시성 성능을 제공합니다. Rails 애플리케이션의 경우, 단일 JRuby 프로세스로 전체 사이트를 운영하여 C Ruby의 다중 프로세스 방식보다 메모리 사용량을 줄이고 리소스 대비 초당 요청 수를 크게 개선합니다.

3. 루비 활용 기회 확장

  • JRuby는 Ruby 애플리케이션을 Java 기반 기업 환경에 쉽게 배포하거나 단일 바이너리로 패키징하여 상업용 소프트웨어로 제공할 수 있습니다. Java Swing GUI, Android 애플리케이션(Ruboto), Minecraft 플러그인 등 다양한 Java 생태계에서 Ruby를 활용할 수 있는 새로운 기회를 제공합니다.

결론

JRuby 10은 최신 Ruby 3.4 호환성 확보와 Java 21+의 강력한 JVM 기능을 통해 시작 시간, 객체 할당, 동시성 등 핵심 성능 지표에서 C Ruby를 능가하는 놀라운 발전을 이루었습니다. 특히 JVM의 최적화 기술을 활용하여 Ruby의 활용 범위를 자바 생태계 전반으로 확장하며, Rails 애플리케이션의 리소스 효율성을 극대화하는 등 Ruby 개발자들에게 새로운 가능성을 제시합니다. JRuby 프로젝트는 지속적인 발전을 위해 커뮤니티의 관심과 지원을 필요로 하며, 이는 Ruby 생태계의 장기적인 성장과 확장에 필수적입니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!