지난 글들

1164개의 글이 있습니다

병렬 세계의 루비 처리 시스템

[16S06] Ruby Interpreters in the Parallel Worlds (ja)

  • Ruby는 지난 15년간 다양한 처리 시스템(JRuby, Rubinius 등)과 표준화 노력을 통해 발전했으며, 과거의 꿈들이 현실이 된 성숙한 생태계를 구축했습니다.
  • Ruby VM의 속도, 가비지 컬렉션, 메모리 및 전력 소비 등 성능 개선을 위한 이스케이프 분석, 자동 C 변환, MVM 등 다양한 연구 및 구현 노력이 진행 중입니다.
  • 스레드 병렬화의 문제점을 극복하고 효율적인 병렬 실행을 위해 MVM(Multi-VM) 아키텍처를 활용한 인프로세스 객체 통신 방식이 연구되고 있으며, 이는 기존 방식보다 우수한 성능을 보입니다.
RubyKaigi 2025년 10월 05일

친근한 Ruby 라이브러리를 작성하는 방법

[17S03] Writing Friendly Libraries (en)

  • Ruby 라이브러리는 표준 컨벤션을 따르고, 사용자 친화적인 API를 제공하며, 예상 가능한 동작을 통해 사용 편의성을 높여야 합니다.
  • 라이브러리의 유지보수성을 위해 단일 책임 원칙, 상세한 릴리스 노트, 철저한 테스트, 그리고 C 확장 시 Ruby 중심의 구현을 지향해야 합니다.
  • 확장 가능한 라이브러리 설계를 위해 훅(hook)과 플러그인 메커니즘을 활용하고, 자동화된 릴리스 프로세스로 안정적인 배포를 보장해야 합니다.
RubyKaigi 2025년 10월 05일

Hashrocket의 통합 테스트 전략: Capybara와 RSpec을 활용한 효과적인 접근

[28S05] Seamless Integration Testing / paulelliott (Hashrocket)

  • Hashrocket은 컨트롤러 및 뷰 테스트를 생략하고 Capybara와 RSpec 기반의 통합 테스트에 집중하여 기능 구현의 책임감과 시스템 유지보수성을 극대화합니다.
  • Capybara는 유연한 DSL과 Rack Test, Selenium 등 교체 가능한 드라이버를 제공하여 브라우저 기반 테스트를 쉽게 구현하며, Fabrication으로 효율적인 테스트 데이터 생성을 지원합니다.
  • 외부 서비스 연동(Ephemeral Response), JavaScript 상호작용, 동적 요소 처리, 날짜 의존성(Timecop) 등 통합 테스트의 복잡한 과제들을 실제 시나리오 기반의 구체적인 기법으로 해결합니다.
RubyKaigi 2025년 10월 05일

Rails Best Practice Gem: 효율적인 Ruby on Rails 코드 품질 관리 및 자동화된 코드 리뷰

[17S04] Use rails_best_practices to refactor your rails codes (en)

  • rails_best_practice Gem은 Ruby on Rails 프로젝트를 위한 코드 분석 도구로, Wen Chong의 베스트 프랙티스 프레젠테이션에서 영감을 받아 코드 스멜을 자동으로 감지하고 개선을 제안합니다.
  • 이 Gem은 설치 및 사용이 간편하며, 터미널 출력 외에도 HTML 시각화 페이지를 제공하여 코드 스멜 위치를 명확히 보여주고 TextMate/Vim 연동 및 웹사이트를 통한 리팩토링 가이드를 제공합니다.
  • 개발자는 기본 28가지 코드 체커를 활용하거나, 설정 파일을 통해 특정 체커를 비활성화하고, 플러그인 방식으로 팀의 고유한 코드 검사 규칙을 직접 작성하여 확장할 수 있어 유연한 코드 컨벤션 적용이 가능합니다.
RubyKaigi 2025년 10월 05일
  • Rackspace는 Ruby를 활용하여 IP 자동화, DNS 관리, 네트워크 장치 관리(NDM) 등 핵심 엔터프라이즈 애플리케이션을 성공적으로 구축하고 운영했습니다.
  • 모놀리식 아키텍처를 REST 기반의 소규모 서비스로 전환하고, DSL 기반 워크플로우 엔진 'Route'를 도입하여 서버 프로비저닝 시간을 4.5일에서 18분으로 단축하는 등 혁신적인 성과를 달성했습니다.
  • Ruby의 빠른 개발 속도, 활발한 커뮤니티, 뛰어난 가독성 및 유연성은 엔터프라이즈 요구사항을 충족하고 지속적인 아키텍처 개선을 가능하게 한 핵심 성공 요인으로 작용했습니다.
RubyKaigi 2025년 10월 05일

Ruby 기반 Wiki 시스템 R(Arubeki)의 10년 운영 경험과 교훈

[29M03] The last decade of RWiki and lazy me (ja)

  • Ruby 기반의 독자적인 Wiki 시스템 'R(Arubeki)'은 DLB와 ERB를 활용하여 모든 데이터를 메모리 내 객체로 관리하며, 10년 가까이 대규모 비공개 환경에서 성공적으로 운영되었습니다.
  • 'R'은 단순한 기능과 메모리 중심 아키텍처를 통해 3만 페이지 이상의 대규모 데이터를 처리하며, 느린 시작 시간, 메모리 누수, IRB 성능 저하 등 다양한 운영 문제를 겪었으나 상황에 맞는 최적화로 극복했습니다.
  • 대규모 시스템 구축 시 초기부터 모든 확장을 대비하기보다는, 문제가 발생했을 때 유연하게 대응하고 불필요한 객체 생성을 최소화하는 것이 효과적이라는 운영 철학을 제시합니다.
RubyKaigi 2025년 10월 05일
  • Nifty Corporation은 다수의 내부 서비스에 Ruby on Rails를 활용하며, 클라우드 인프라 관리 자동화를 위해 Ruby 기반 도구 및 SDK 개발에 집중하고 있습니다.
  • 클라우드 컴퓨팅(IaaS)은 '프로그래밍 가능한 데이터 센터' 개념을 통해 서버 조달부터 미들웨어 설정까지 인프라 작업을 자동화하여 개발자의 애플리케이션 개발 집중을 돕습니다.
  • Wakame-hueman과 같은 Ruby 기반 클라우드 컨트롤러는 스케일 아웃/인 등 복잡한 클라우드 운영 절차를 자동화하여 효율적인 시스템 관리를 가능하게 합니다.
RubyKaigi 2025년 10월 05일

Ruby 개발 문화의 변화: Before Rails에서 Post Rails 시대로

[29S08] How to survive in a post-Rails world (ja)

  • 발표자는 'Before Rails' 시대와 'Post Rails' 시대의 Ruby 개발 문화 및 프로그래밍 방식의 차이를 비교하며, Git/GitHub 중심의 현대 Ruby 생태계를 조명합니다.
  • 개인의 성취감('나 정말 대단해' 감각)이 GitHub를 통한 오픈소스 기여로 확장되어 공동체적 기쁨으로 연결되는 과정을 설명하며, 새로운 개발 패러다임 적응의 중요성을 강조합니다.
  • 현대 Ruby 개발자는 Git/GitHub 기반의 협업과 최신 Ruby 이디엄 학습을 통해 활발한 생태계에 참여해야 하며, 이는 즐거운 프로그래밍 경험을 위한 필수 요소임을 역설합니다.
RubyKaigi 2025년 10월 05일

루비를 활용한 비주얼 글리치 아트: 이론과 실제

[18S02] Visual Glitch, using Ruby (ja) / ucnv

  • 글리치 아트는 파일 손상을 통해 플레이어 애플리케이션이 오류를 무시하며 렌더링을 계속할 때 발생하는 시각적 효과를 활용합니다.
  • 이미지 글리치 기법으로는 텍스트/바이너리 에디터 직접 수정, `cat`/`sed` 명령어, 그리고 루비 코드를 통한 체계적인 파일 손상(헤더/지그재그 순서 변경 등)이 소개되었습니다.
  • 비디오 글리치는 키프레임과 차이 프레임 구조를 이해하고, 특히 '데이터 모싱' 기법을 통해 키프레임을 제거하여 시각적 오류를 유발하며, 이를 `avi_glitch` 루비 Gem으로 구현할 수 있습니다.
RubyKaigi 2025년 10월 05일

IronRuby를 활용한 Microsoft 기술 통합: .NET과 Ruby의 교량

[29M05] IronRuby - What's in it for Rubyists?

  • IronRuby는 .NET 프레임워크 기반의 Ruby 구현체로, Ruby 코드에서 .NET 객체를 호출하고 .NET 환경에서 Ruby 라이브러리를 활용할 수 있도록 양 생태계 간의 원활한 통합을 제공합니다.
  • 발표자는 IronRuby를 통해 Windows Forms, WPF, Silverlight, Windows Phone 7 등 다양한 Microsoft 기술을 Ruby 코드로 활용하여 풍부한 데스크톱 및 웹 애플리케이션을 개발하는 방법을 시연했습니다.
  • IronRuby는 Rails 애플리케이션을 IIS에서 효율적으로 실행할 수 있게 하며, JavaScript를 Ruby로 대체하는 Gestalt 프로젝트와 같은 혁신적인 웹 개발 가능성을 제시합니다.
RubyKaigi 2025년 10월 05일

일본 루비카이 2011 개회 및 후원사 감사

[16MOP1] Opening (ja) / Masayoshi Takahashi

  • 루비카이 2011은 '마지막 루비카이'라는 주제 아래 지난 5년간의 집대성이자 새로운 전환점을 기념하며, 참가자들이 즐거운 경험을 하도록 독려합니다.
  • 행사 개최를 위해 주식회사 네트워크응용통신연구소, 일본 마이크로소프트 등 루비, 플래티넘, 골드 및 개인 스폰서들의 광범위한 지원에 깊은 감사를 표했습니다.
  • 3일간의 루비카이 2011이 공식적으로 시작되었으며, 주최측은 이 행사가 최고의 루비카이로 기억되기를 바라는 진심 어린 소망을 전했습니다.
RubyKaigi 2025년 10월 05일

모던 ORM의 역할과 쿼리 오브젝트를 통한 추상화

[18S08] Underlaying Technologies and Techniques behind O/R Mapper (ja)

  • SQL은 분해, 조합, 추상화 기능이 부족하며, ORM은 이러한 SQL의 한계를 극복하고 고차원적인 추상화 기능을 제공해야 합니다.
  • 쿼리 오브젝트는 모던 ORM의 핵심 기술로, SQL을 직접 작성하는 대신 객체에 대한 연산을 통해 조건을 축적하고 지연 로딩을 가능하게 합니다.
  • 쿼리 오브젝트는 네임드 스코프와 같은 기능을 자연스럽게 구현하며, N+1 문제 해결 및 뷰 계층 캐싱 문제에 대한 효과적인 솔루션을 제공합니다.
RubyKaigi 2025년 10월 05일
  • 경제산업성 지원 하에 경량 루비(Lightweight Ruby)를 개발하여 임베디드 시스템의 생산성과 유지보수성 향상을 목표로 합니다.
  • 실행 크기와 메모리 사용량을 최적화한 경량 루비는 C99 기반의 높은 이식성을 가지며, 소프트 실시간 처리를 위한 증분 GC 및 FPGA 하드웨어 가속을 연구 중입니다.
  • 컴파일러, 가상 머신, 라이브러리 등 모듈화된 컴포넌트 기반으로 설계되어 다양한 임베디드 환경 및 애플리케이션에 유연하게 적용 가능합니다.
RubyKaigi 2025년 10월 05일

Ruby 메타 프로그래밍: Rails 코드의 마법을 해독하다

[28S06] A Metaprogramming Spell Book / Paolo "Nusco" Perrotta

  • Ruby 메타 프로그래밍은 Rails의 복잡한 내부 코드를 이해하는 핵심적인 열쇠입니다.
  • Ruby 객체 모델(객체, 클래스, 모듈, 특이 클래스)에 대한 깊은 이해는 강력한 메타 프로그래밍 기법의 기반이 됩니다.
  • Rails의 독특하고 방대한 클래스 설계는 Ruby 언어의 유연한 모듈 시스템과 메타 프로그래밍을 적극 활용한 결과입니다.
RubyKaigi 2025년 10월 05일
  • Ruby 스크립트를 C 언어로 미리 컴파일하는 AOT 컴파일러를 개발 중이며, Ruby 1.9 런타임과 협력하여 동작합니다.
  • 개발된 컴파일러는 Ruby 1.9 테스트의 대부분을 통과하여 높은 호환성과 이식성을 보였으나, 매크로 벤치마크에서는 성능 저하가 발생했습니다.
  • 주요 과제는 과도하게 커지는 생성 코드 크기를 줄여 캐시 미스 문제를 해결하고 컴파일 시간을 단축하는 것입니다.
RubyKaigi 2025년 10월 05일