HTMLware ERB 툴링: Herp, Ruby on Rails 개발자 도구의 새로운 지평

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

  • Herp는 Ruby on Rails의 HTML 및 ERB 템플릿 파일 작업을 위한 새로운 파서, 포매터, 린터 도구입니다.
  • 기존 LSP의 ERB 지원 부족 문제를 해결하여, HTML과 ERB 코드를 통합적으로 분석하고 정확한 문맥 정보를 제공합니다.
  • 향후 스마트한 ERB 렌더링 엔진과 다양한 템플릿 언어 통합을 통해 Ruby 개발 경험을 혁신할 잠재력을 지닙니다.
Unknown 2025년 05월 27일
  • GoGem Wrapper는 Go 언어로 Ruby 네이티브 확장을 쉽게 개발할 수 있도록 돕는 라이브러리입니다.
  • 이 라이브러리는 Go의 강력한 동시성 모델인 고루틴을 활용하여 루비의 병렬 처리 성능을 획기적으로 개선합니다.
  • Go-Ruby 간의 복잡한 바인딩 및 빌드 과정을 자동화하여 개발 편의성을 크게 향상시켰습니다.
Unknown 2025년 05월 27일

Re: 브라우저에서 DRb 실행하기

[JA] dRuby on Browser Again! / @youchan @ledsun

  • Ruby Wasm 기술을 활용하여 분산 루비(DRb)를 웹 브라우저 환경에서 구동하는 방법을 소개합니다.
  • DRb WebSocket, Wasm DRb 젬과 소켓 통신 추상화 라이브러리 Wands 등 관련 도구 개발 및 구현 과정을 공유합니다.
  • 클라이언트-서버 통신 간소화, 브라우저 간 객체 공유 가능성 제시 및 구현 상의 도전 과제를 논의합니다.
Unknown 2025년 05월 27일

Ruby C 확장 기반 RBS 파서에서 순수 C 라이브러리로의 전환: Shopify의 Sorbet 통합 사례

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

  • Shopify는 Sorbet과 RBS를 통합하기 위해 RBS 파서를 Ruby C 확장 기반에서 순수 C 라이브러리로 전환했습니다.
  • 이 전환은 GVL 회피를 통한 병렬 처리 개선, 메모리 효율성 증대, 그리고 다른 Ruby 런타임과의 호환성 강화를 목표로 합니다.
  • 순수 C로의 마이그레이션은 예외 처리 및 메모리 관리와 같은 도전 과제를 수반하며, Arena Allocation과 같은 전략으로 해결되었습니다.
Unknown 2025년 05월 27일

Bazel for Ruby

[EN] Bazel for Ruby / Alex Rodionov @p0deje

  • Bazel은 Google에서 개발된 모노레포지토리 환경에 최적화된 고효율 빌드 및 테스트 도구입니다.
  • Ruby 프로젝트에서는 `rules_ruby` 확장을 통해 루비 인터프리터, 의존성, 빌드 및 테스트를 효율적으로 관리할 수 있습니다.
  • 이를 통해 병렬 테스트 실행, 지능형 캐싱, 분산 빌드 및 테스트 기능을 활용하여 개발 생산성과 CI/CD 효율성을 극대화할 수 있습니다.
Unknown 2025년 05월 27일

Ruby의 연속(Continuation) 연산자: `callcc`와 `shift/reset`

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

  • `callcc`는 Ruby에서 강력한 연속 연산자로, DSL 구현에 활용될 수 있으나, 전역적인 연속 캡처와 성능 문제로 인해 실용성이 저하됩니다.
  • `shift/reset`은 `callcc`의 단점을 보완하는 제한된 연속 연산자로, 필요한 범위의 연속만을 캡처하여 DSL 구현을 단순화하고 성능을 개선합니다.
  • 향후 `shift/reset`을 C 확장 라이브러리로 구현함으로써 Ruby에서 연속 연산자의 효율성과 활용 가능성을 극대화할 수 있습니다.
Unknown 2025년 05월 27일

Ruby 3.4 REXML XML 파싱 성능 개선 및 StringScanner 활용

[JA] Improvement of REXML and speed up using StringScanner / NAITOH Jun @naitoh

  • Ruby 3.4의 REXML 라이브러리에서 StringScanner를 활용하여 XML 파싱 성능을 최대 60%까지 개선했습니다.
  • 이는 보안 취약점 패치로 인한 성능 저하를 극복하고, StringScanner의 효율적인 문자열 처리 기능을 적극 활용한 결과입니다.
  • 불필요한 객체 생성을 피하고 문자열 매칭 최적화를 통해 다양한 XML 파서의 속도를 향상시켰습니다.
Unknown 2025년 05월 27일
  • Ruby 3.0에 도입된 Ractor의 병렬 컴퓨팅 이점을 극대화하기 위해 Ractor-local GC 도입이 제안되었습니다.
  • 공유 객체(sharable objects) 처리의 복잡성으로 인해 Ractor-local GC 구현에 어려움이 있었으나, 모든 공유 객체를 항상 살아있는 것으로 간주하는 보수적 접근법이 제시되었습니다.
  • 이 보수적 접근법은 마이크로벤치마크에서 상당한 성능 향상을 보였으며, 향후 Ruby 3.5에 도입될 예정입니다.
Unknown 2025년 05월 27일

차세대 Ruby JIT 컴파일러, ZJIT 소개

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

  • ZJIT는 YJIT의 한계를 극복하고 Ruby 성능을 혁신하기 위해 Shopify에서 개발 중인 차세대 JIT 컴파일러입니다.
  • 표준화된 아키텍처와 SSA 기반 중간 표현(IR)을 도입하여 유지보수성과 확장성을 높이고, 빠른 JIT-to-JIT 호출과 컴파일 작업 재사용 기능을 포함합니다.
  • Ruby 3.5에 YJIT와 함께 제공될 예정이며, Ruby의 장기적인 경쟁력 확보와 성능 향상에 크게 기여할 것으로 기대됩니다.
Unknown 2025년 05월 27일

루비 문법과 구문 구조 해부: parse.y의 복잡성과 Ryoma의 추상화

[JA] Dissecting and Reconstructing Ruby Syntactic Structures / Yudai Takada @ydah_

  • 루비의 유연한 문법은 구문 분석기(`parse.y`)의 복잡성을 야기합니다.
  • `parse.y`는 루비의 구문 규칙을 정의하며, `Ryoma`는 이를 기반으로 파서를 생성합니다.
  • `Ryoma`의 매개변수화된 규칙은 `parse.y`의 복잡성을 관리하고 유지보수성을 향상시킵니다.
Unknown 2025년 05월 27일

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

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

  • Ruby 3.4는 이전 버전에서 발생했던 불필요한 객체 할당(allocation regressions)을 제거하고, 향후 회귀 방지를 위한 할당 테스트 스위트를 도입했습니다.
  • 대규모 리터럴 배열 및 스플랫(splat)을 포함한 리터럴 배열의 할당을 단일 배열로 최적화하여 메모리 효율성을 크게 향상시켰습니다.
  • 호출자 측 위치 스플랫 할당을 컴파일러 수준에서 최적화하고 평가 순서 문제를 해결함으로써 전반적인 Ruby 성능을 개선했습니다.
Unknown 2025년 05월 27일
  • 본 발표는 Ruby를 활용하여 전자 악기인 그루브박스(Groovebox)를 직접 구현한 프로젝트에 대한 내용입니다.
  • 복잡한 하드웨어 악기의 한계를 극복하고자 소프트웨어 엔지니어의 관점에서 신디사이저와 시퀀서를 개발하는 과정을 상세히 다룹니다.
  • 특히 분산 루비(DRb)를 통해 모듈 간의 유연한 연동을 구현하고, 음악 제작의 새로운 가능성을 제시합니다.
Unknown 2025년 05월 27일
  • 본 발표는 마이크로컨트롤러 환경에서 Ruby를 구동하는 MicroRuby와 PicoRuby의 메모리 효율성을 심층 분석합니다.
  • `presym`과 Object Space 활용을 통해 mruby가 대규모 애플리케이션에서 mrb/c보다 효율적일 수 있다는 '乾杯 예측'을 제시하고, 실제 IoT 애플리케이션(R2P2) 포팅으로 이를 검증했습니다.
  • 맞춤형 메모리 할당자 개발과 태스크 스케줄링 구현으로 MicroRuby의 실용성을 입증하며, 마이크로컨트롤러에서 풀스펙 Ruby 활용 가능성을 열었습니다.
Unknown 2025년 05월 27일

Ruby 3.4의 모듈형 가비지 컬렉터(Modular GC) 및 MMTK 통합

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

  • Ruby 3.4에 실험적인 모듈형 가비지 컬렉터(Modular GC) 기능이 도입되어, 사용자가 필요에 따라 다양한 GC 구현을 선택할 수 있게 되었습니다.
  • 이 기능은 기존 Ruby GC의 한계를 극복하고, MMTK(Memory Management Toolkit)와 같은 외부 GC 프레임워크를 통합하여 성능 향상을 목표로 합니다.
  • MMTK는 다양한 GC 알고리즘과 병렬 처리를 지원하며, 현재 Ruby와의 통합은 초기 단계로 향후 성능 개선이 기대됩니다.
Unknown 2025년 05월 27일

AI 시대의 프로그래밍 언어: 루비의 미래 (RubyKaigi 2024 키노트 요약)

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

  • 본 키노트는 AI 시대에 프로그래머가 AI에 종속되지 않고 주도권을 유지하는 '리버스 알파 신드롬'에 대한 경고와 함께, 미래 프로그래밍 언어의 이상적인 특성으로 간결성, 표현력, 확장성을 제시합니다.
  • 연사는 루비(Ruby)가 이러한 특성을 이미 갖추고 있음을 강조하며, 데이터, 도구, 성능 개선을 통해 루비가 AI 시대에도 주요 언어로 살아남을 수 있음을 역설합니다.
  • 특히, 루비 4.0의 실험적인 기능(네임스페이스, YJIT 개선) 발표를 통해 루비 커뮤니티의 지속적인 발전과 프로그래밍의 즐거움을 지켜나갈 것을 제안합니다.
Unknown 2025년 05월 27일