지난 글들

398개의 글이 있습니다

  • 루비는 임베디드 시스템, 프로그래밍 언어 처리, 게임 개발 등 광범위한 분야에서 혁신적으로 활용됩니다.
  • 루비 생태계는 디버깅, 파서 시각화, 보안 강화 등 새로운 도구와 기술적 개선을 통해 지속적으로 발전하고 있습니다.
  • 루비 커뮤니티는 활발한 참여와 기술 공유를 통해 루비의 역량을 확장하고 발전을 촉진합니다.
RubyKaigi 2025년 05월 27일

JRuby 10 및 최적화: Ruby를 위한 Java 플랫폼의 힘

[EN] Optimizing JRuby 10 / Charles Nutter @headius

  • JRuby 10은 Ruby 3.4 호환성 및 Java 21 이상을 지원하며, 시작 시간, 성능, 동시성 등 여러 측면에서 상당한 최적화를 이루었습니다.
  • JVM의 강력한 기능과 최적화 기술을 활용하여 순수 Ruby 코드 및 C 확장에서도 C Ruby 대비 우수한 성능을 제공합니다.
  • JRuby는 Ruby 애플리케이션을 Java 생태계로 확장하고 다양한 환경에서 활용할 기회를 제공하며, 프로젝트의 지속적인 발전을 위한 커뮤니티의 지원을 강조합니다.
RubyKaigi 2025년 05월 27일

Ruby 호출의 분류

[EN] A taxonomy of Ruby calls / Alan Wu @alanwusx

  • 본 강연은 루비 호출 시 인자 전달 방식에 따른 다양한 유형을 분류하고 그 복잡성을 분석합니다.
  • 호출의 의미론적 특성, 숨겨진 데이터 처리, 그리고 메모리 할당 방식을 깊이 있게 탐구하여 루비 VM의 동작 원리를 조명합니다.
  • 이러한 분류 작업은 언어 변경 이해, 최적화 기회 발견, 그리고 실제 버그 발견에 기여합니다.
RubyKaigi 2025년 05월 27일

HTMLware ERB 툴링: Ruby on Rails 개발자 경험 개선을 위한 Herp 소개

[EN] Empowering Developers with HTML-Aware ERB Tooling / Marco Roth @marcoroth

  • Ruby on Rails 환경에서 HTML 및 ERB 뷰 파일 작업의 생산성을 높이기 위한 고급 개발 도구의 필요성이 대두되었습니다.
  • Marco는 이러한 문제를 해결하고자 HTML 인지 ERB 파서인 'Herp'를 개발하여, ERB 파일의 구문 분석 및 이해를 혁신했습니다.
  • Herp는 포매터, 린터, 그리고 향후 더 스마트한 ERB 렌더링 엔진 개발을 위한 기반을 제공하며, Ruby 생태계의 뷰 레이어 도구 발전에 기여할 것입니다.
RubyKaigi 2025년 05월 27일
  • 이 발표는 Ruby WebAssembly(Wasm)를 활용하여 Ruby의 분산 객체 기술인 DRb를 웹 브라우저에서 구현하고 그 가능성을 탐구합니다.
  • 발표자들은 DRb를 브라우저 환경에서 실행하기 위한 각각의 접근 방식(drb-websockets, wasm-drb 및 wanz 라이브러리)과 그 기술적 과제를 소개합니다.
  • Ruby Wasm 환경에서의 비동기 처리 문제와 JavaScript 세계와의 상호작용 방식이 주요 논점으로 다뤄지며, 브라우저 내 소켓 프로그래밍의 새로운 개념을 제시합니다.
RubyKaigi 2025년 05월 27일

C 확장 기반 Ruby Gem에서 순수 C 라이브러리로의 RBS 마이그레이션

[EN] From C extension to pure C: Migrating RBS / Alexander Momchilov @amomchilov

  • RBS(Ruby Signature)는 Ruby 코드의 타입을 기술하는 표준 표기법으로, Shopify에서는 Sorbet 타입 체커와 함께 활용됩니다.
  • 기존 C 확장 기반의 RBS Gem을 순수 C 라이브러리로 전환하여 병렬 처리, 이식성, 성능 등의 핵심 이점을 확보했습니다.
  • 이 과정에서 C 언어의 에러 처리(예외 부재)와 메모리 관리(수동 할당/해제) 등 주요 기술적 도전 과제를 아레나 할당과 같은 방식으로 해결했습니다.
RubyKaigi 2025년 05월 27일

Ruby Ractor 로컬 가비지 컬렉션 최적화

[EN] Toward Ractor local GC / Koichi Sasada @ko1

  • Ruby Ractor의 병렬 컴퓨팅 성능 향상을 위해 Ractor별 독립적인 로컬 가비지 컬렉션(GC) 도입이 제안되었습니다.
  • 핵심 과제는 Ractor 간 공유되는 '공유 가능 객체'의 참조를 안전하게 관리하는 것이며, 기존 방식은 전체 Ractor 정지로 병렬성을 저해합니다.
  • 제안된 보수적인 접근 방식은 공유 가능 객체를 항상 살아있는 것으로 간주하고 로컬 GC를 병렬로 실행하며, 마이크로벤치마크에서 상당한 성능 향상을 보였습니다.
RubyKaigi 2025년 05월 27일

Ruby의 지속성 연산자: callcc와 shift/reset

[JA] Continuation is to be continued / Masayuki Mizuno @fetburner

  • Ruby의 `callcc`는 비결정 계산 DSL 구현에 유용하지만, 전체 컨텍스트를 캡처하고 성능이 저하되는 문제가 있습니다.
  • `shift/reset`은 필요한 범위만 캡처하는 제한된 지속성 연산자로, `callcc`의 문제를 해결하고 DSL 구현을 간소화합니다.
  • `shift/reset`은 `callcc`를 통해 구현하더라도 성능 개선을 보이며, 향후 C 확장으로 구현 시 더 큰 최적화 가능성이 있습니다.
RubyKaigi 2025년 05월 27일

Ruby 3.4의 모듈형 가비지 컬렉터

[EN] Modular Garbage Collectors in Ruby / Peter Zhu @peterzhu2118

  • Ruby 3.4에 실험적으로 도입된 모듈형 가비지 컬렉터는 기존 GC의 한계를 극복하고 다양한 알고리즘 통합을 목표로 합니다.
  • GC 구현과 Ruby VM 간의 통신을 위한 API를 정의하며, MMTK(Memory Management Toolkit)를 첫 번째 외부 구현체로 통합합니다.
  • 이 기능은 향후 Ruby 애플리케이션의 성능 및 메모리 효율성을 크게 향상시킬 잠재력을 가집니다.
RubyKaigi 2025년 05월 27일

Ruby용 Bazel

[EN] Bazel for Ruby / Alex Rodionov @p0deje

  • Bazel은 Google에서 개발된 다국어 지원 빌드 및 테스트 도구로, 특히 모노레포에 최적화되어 있습니다.
  • rules_ruby는 Bazel 생태계 내에서 Ruby 언어 지원을 제공하며, 빌드, 테스트, 의존성 관리를 효율적으로 처리합니다.
  • Bazel은 빌드 그래프를 통해 변경 사항을 추적하고 캐싱, 병렬 실행, 원격 빌드 실행 등의 기능을 제공하여 대규모 Ruby 프로젝트 관리에 유리합니다.
RubyKaigi 2025년 05월 27일

ZJIT: 차세대 Ruby JIT 컴파일러

[EN] ZJIT: Building a Next Generation Ruby JIT / Maxime Chevalier-Boisvert @maximecb

  • ZJIT는 Shopify에서 개발 중인 차세대 Ruby JIT 컴파일러로, 기존 YJIT의 한계를 극복하고 성능 향상을 목표로 합니다.
  • 이 프로젝트는 표준적인 메서드 기반 JIT 아키텍처와 SSA 기반 IR을 채택하여 유지보수성과 확장성을 높였습니다.
  • ZJIT는 빠른 JIT-to-JIT 호출 및 컴파일된 코드의 직렬화/재사용 기능을 통해 Ruby 3.5에서 더욱 향상된 성능을 제공할 예정입니다.
RubyKaigi 2025년 05월 27일

MicroRuby: 마이크로컨트롤러에서 Ruby의 가능성을 열다

[JA] MicroRuby: True Microcontroller Ruby / Hitoshi HASUMI @hasumikin

  • MicroRuby는 마이크로컨트롤러 환경에서 효율적인 Ruby 실행을 목표로 개발되었습니다.
  • mruby의 메모리 사용 최적화 기술과 선점형 태스크 스케줄러 구현을 통해 대규모 애플리케이션 구동 가능성을 입증했습니다.
  • R2P2와 같은 실제 애플리케이션 구동을 통해 MicroRuby의 실용성을 확인하고, 향후 발전 가능성을 제시합니다.
RubyKaigi 2025년 05월 27일

Ruby 3.4의 불필요한 암묵적 할당 제거 및 최적화

[EN] Eliminating Unnecessary Implicit Allocations / Jeremy Evans @jeremyevans0

  • Ruby 3.4는 불필요한 암묵적 객체 할당을 제거하기 위한 광범위한 최적화를 단행했습니다.
  • 특히, 세 가지 할당 회귀 버그를 수정하고, 향후 회귀 방지를 위해 `Allocation Test Suite`를 도입했습니다.
  • 리터럴 배열 및 호출자 측 스플랫 할당 문제를 해결하여 Ruby의 성능을 향상시켰습니다.
RubyKaigi 2025년 05월 27일

Ruby로 만드는 그루브박스: 신디사이저와 시퀀서 구현

[JA] How to make the Groovebox / Yuya Fujiwara @asonas

  • 본 발표는 Ruby 프로그래밍 언어를 사용하여 전자 음악 악기인 '그루브박스'를 구현하는 과정을 상세히 설명합니다.
  • 그루브박스는 오실레이터, 필터, 엔벨로프 제너레이터, 앰프를 포함한 신디사이저와 노트 및 리듬 정보를 관리하는 시퀀서로 구성됩니다.
  • 특히 DRb를 활용한 모듈 간 연동과 정교한 타이밍 제어의 중요성을 강조하며, Ruby로도 복잡한 오디오 애플리케이션 개발이 가능함을 보여줍니다.
RubyKaigi 2025년 05월 27일

AI 시대의 프로그래밍 언어와 Ruby의 미래

[JA][Keynote] Matz Keynote / Yukihiro "Matz" Matsumoto @yukihiro_matz

  • AI 시대에 프로그래머는 AI에 굴복하지 않고 주도권을 가져야 하며, 이를 위해 프로그래밍 언어는 간결성, 표현력, 확장성을 갖춰야 합니다.
  • Ruby는 이러한 특성을 이미 갖추고 있어 AI 시대에도 유망하며, 더 나은 미래를 위해 데이터, 도구, 성능 개선이 중요합니다.
  • Ruby 4.0 출시 가능성과 함께 네임스페이스, YJIT 개선 등 새로운 기능이 도입될 예정이며, 커뮤니티의 지속적인 기여가 Ruby의 성장을 이끌 것입니다.
RubyKaigi 2025년 05월 27일