지난 글들
1164개의 글이 있습니다
루비 개발자가 만든 다양한 라이브러리 소개와 개발 경험에서 얻은 교훈
[27S06] My many failed products / jugyo (Everyleaf Corporation)
- 발표자는 G, Growl Logger, GrollSQL, Termtter, Git Wiki, Term Color, Sinatra Command 등 자신이 개발한 다양한 루비 라이브러리를 소개했습니다.
- 각 라이브러리의 개발 과정에서 겪었던 문제점, 아이디어의 한계, 그리고 이를 통해 얻은 실질적인 교훈들을 솔직하게 공유했습니다.
- 특히 터미널에서 HTML 태그와 유사한 방식으로 색상을 제어하는 Term Color Gem의 구현 방식과 유용성을 상세히 설명하며 큰 호응을 얻었습니다.
RubyKaigi
2025년 10월 05일
Babushka: 테스트 주도 시스템 관리
[28M07-8] babushka - test-driven sysadmin for rubyists (en) / Ben Hoskings (babushka)
- Babushka는 테스트 주도 개발(TDD) 원칙을 시스템 관리(Sysadmin)에 적용하여 시스템 설정 및 배포를 자동화하는 도구입니다.
- 시스템 작업을 의존성(Dep)으로 분할하고, 각 Dep는 상태 확인(테스트)과 작업 수행(태스크)으로 구성되어 중첩된 구조를 가집니다.
- GitHub를 통해 의존성(Dep)을 공유하고 재사용함으로써 협업을 증진하고 시스템 관리의 효율성을 높일 수 있습니다.
RubyKaigi
2025년 10월 05일
프로그래밍의 즐거움과 즐거움을 위한 프로그래밍
[27S07] Coding for fun, and having fun coding / tenderlove (AT&T Interactive)
- 프로그래밍의 즐거움을 되찾기 위한 언어, 환경, 프로젝트의 중요성을 강조하며, 이는 어린 시절의 창작 활동과 유사합니다.
- 다양한 프로그래밍 언어와 인간 언어를 통해 사고방식을 확장하고 문제 해결 능력을 향상시키는 방법을 제시합니다.
- Psych, SQLite Ruby, Pooby 프로젝트를 통해 Ruby의 유연성과 확장성을 보여주며, 커뮤니티 활동의 중요성을 역설합니다.
RubyKaigi
2025년 10월 05일
RubyKaigi 2010 개회 연설: 충돌과 해결
[27M01] opening / Masayoshi Takahashi
- RubyKaigi 2010이 '충돌과 해결'을 주제로 츠쿠바에서 3일간 개최되며, 다양성 속 갈등 해소의 중요성을 강조합니다.
- 최근 Ruby 1.9.2 정식 릴리스와 Rails 3.0 출시 임박 소식을 전하며, 컨퍼런스가 시기적으로 매우 적절함을 밝힙니다.
- 다수의 기업 후원과 커미터들의 노력에 감사를 표하며, 참가자들이 유익한 시간을 보내기를 기원하며 개회를 선언합니다.
RubyKaigi
2025년 10월 05일
Ruby 기반의 시대를 초월하는 기술 문서 협업 및 출판 시스템 제안
[28M07-10] The Timeless Way of E-Publishing with Ruby (ja)
- 루비 기술 서적의 짧은 수명 문제를 해결하기 위해 저자 의존성을 넘어선 지속 가능한 문서 업데이트 및 협업 시스템 구축을 제안합니다.
- Re:VIEW 마크업 언어와 Redmine, Git을 통합한 Redmine DocPub 플러그인을 활용하여 문서의 공동 편집 및 출판을 지원하는 시스템을 개발 중입니다.
- 궁극적으로 GitHub와 유사한 '문서용 Git'을 구현하여 사용자가 문서를 포크하고 편집하며 출판, 판매까지 가능한 새로운 형태의 전자출판 생태계를 목표합니다.
RubyKaigi
2025년 10월 05일
루비 커미터의 일상과 기여 활동
[28M04] Daily Ruby (ja) / Kazuhiro NISHIYAMA (Good-Day, Inc.)
- 루비 커미터 니시야마 카즈히로가 버그 발견부터 패치 생성, 커밋까지의 상세 과정과 커밋 이후의 활동을 공유했습니다.
- 다양한 OS 및 환경에서의 테스트, IRC 및 메일링 리스트를 통한 커뮤니티 협업의 중요성을 강조했습니다.
- CHKBuild와 같은 자동화 도구 활용, NEWS 파일 업데이트, 루비 매거진 기고 등 다채로운 기여 방식을 소개했습니다.
RubyKaigi
2025년 10월 05일
Ruby 레퍼런스 매뉴얼 프로젝트(Rurema) 현황 및 향후 계획
[28M05] Ruby Reference Manual Renewal Project 2010 Summer (ja)
- Ruby 레퍼런스 매뉴얼 프로젝트(Rurema)는 내장 라이브러리 문서화의 상당한 진전을 보였으며, 제3단계 완료를 목표로 표준 라이브러리 작업에 박차를 가하고 있습니다.
- 프로젝트는 레포지토리 이전, Redmine Wiki 통합, 새 문서 사이트(doc.ruby.or.jp) 공개 등 인프라를 개선했으나, 커미터 감소와 참여 환경 개선의 필요성을 인지하고 있습니다.
- 참여자 확대를 위해 VM 이미지 배포 및 자동화된 빌드 환경 구축을 추진하며, 특히 Windows 관련 라이브러리, Ruby 1.9.2 지원, 그리고 `Complex`, `Encoding` 라이브러리 문서화에 대한 기여를 요청하고 있습니다.
RubyKaigi
2025년 10월 05일
그라나밍
[28M03] Esoteric Obfuscated Ruby Programming / Yusuke Endoh (independent)
- 루비의 문자 사용 제약 및 배치 제약을 활용한 에소테릭 프로그래밍 기법과 다양한 콰인(Quine) 구현 사례를 소개합니다.
- 괴델 수, method_missing, at_exit 등 루비의 다양한 기능을 활용하여 숫자로만, 밑줄로만, 알파벳으로만 프로그램을 작성하는 방법을 시연합니다.
- 루비가 에소테릭 프로그래밍에 매우 강력하며, 1.8과 1.9 버전 간의 높은 호환성 및 JRuby의 성능 이슈를 언급합니다.
RubyKaigi
2025년 10월 05일
Lightning Ruby VM을 향한 성능 최적화: VM 설계 및 병렬 처리 도입
[28M07-4] Toward Lightning RubyVM (en) / Koichi Sasada (The University of Tokyo)
- Ruby VM 성능 향상을 위해 복잡한 프레임 구조를 단순화하고, 변수 및 명령어 구조를 재설계하여 마이크로벤치마크의 호출 시간을 단축합니다.
- 매크로벤치마크의 비-VM 실행 시간 및 가비지 컬렉션 문제를 해결하기 위해 CRuby에 병렬 처리 도입을 모색합니다.
- 세분화된 병렬 처리는 C 레벨에서, 거친 병렬 처리는 다중 VM 사용을 통해 지원하며, 병렬 가비지 컬렉션도 고려 중입니다.
RubyKaigi
2025년 10월 05일
Ruby 1.9 인코딩 심층 분석: 라이브러리 개발자를 위한 문자열 인코딩의 이해와 활용
[27S05] Truth and Consequences: Handling Ruby 1.9 Encodings in Rails / Yehuda Katz (Engine Yard)
- Ruby 1.9는 문자열을 바이트 배열과 인코딩 정보로 관리하여, 이전 버전이나 다른 언어의 문제점(예: 인코딩 충돌로 인한 데이터 손상)을 명시적인 오류로 방지하고 라이브러리 개발자가 올바르게 처리하도록 유도합니다.
- 인코딩은 디스크 상의 바이트 표현 방식이며, 코드 포인트는 문자 집합 내의 추상적인 숫자 값으로, 이 둘의 개념을 명확히 이해하는 것이 다양한 언어 환경에서 문자열 문제를 해결하는 데 중요합니다.
- `force_encoding`은 바이너리 데이터의 인코딩을 Ruby에 알려줄 때만 사용해야 하며, 이미 인코딩된 문자열을 잘못 변환하면 데이터 손상을 초래하므로, `encode` 또는 `encode!`를 활용하여 인코딩을 변환하는 것이 올바른 방법입니다.
RubyKaigi
2025년 10월 05일
Ruby로 만드는 DSL의 기초
[27M07] The basis of making DSL with Ruby (ja) / Yasuko Ohba (Everyleaf Corporation)
- Ruby는 DSL 구현에 매우 적합하며, 이는 특별한 기술이 아닌 코드 가독성과 유지보수성을 향상시키는 일상적인 코딩 기법입니다.
- DSL스러운 코드를 작성하는 핵심적인 세 가지 방법은 선언적 기술, 블록의 적극적인 활용, 그리고 특정 개념을 명확히 나타내는 메서드 생성입니다.
- 선언적 기술은 '무엇을 할지'보다 '무엇이다'라는 상태나 성질을 기술하며, 모듈 인클루드와 클래스 메서드를 활용하여 구현할 수 있습니다.
RubyKaigi
2025년 10월 05일
메시지팩 프로젝트: 크로스 랭귀지 RPC & 객체 직렬화
[28M07-5] MessagePack, a cross-language communication system (ja) / Sadayuki Furuhashi
- 메시지팩은 JSON보다 10배 빠르고 데이터 크기가 작은 효율적인 크로스 플랫폼 객체 직렬화 라이브러리입니다.
- 메시지팩 RPC는 Ruby, C++, Python 등 다양한 언어 간의 프로세스 통신을 지원하며, 비동기 호출 및 병렬 파이프라이닝 기능을 제공합니다.
- 연결 풀링, 이벤트 기반 아키텍처 지원 등 견고한 기능을 갖추고 있으며, Ameba Now, Ceryu 등 실제 서비스에서 데이터 효율화 및 실시간 검색에 활용되고 있습니다.
RubyKaigi
2025년 10월 05일
루비 서머 오브 코드 2010: 학생 개발자 지원 프로그램과 Decimal Gem 개발 경험 공유
[28M07-11] My Report of "Ruby Summer of Code 2010" - Road to be a stdlib - (ja)
- 루비 서머 오브 코드 2010은 학생들이 프리 소프트웨어 프로젝트를 개발하도록 지원하는 프로그램으로, 스폰서의 자금 지원과 멘토의 지도를 통해 진행됩니다.
- 발표자는 일본에서 유일하게 루비 서머 오브 코드에 선정되어, 루비 1.9.2에 통합되는 'Decimal' Gem을 개발하며 다양한 수학 함수를 구현했습니다.
- 이 프로그램은 학생들에게 개발 경험과 재정적 지원을 제공하며, 루비 커뮤니티의 성장에 기여하므로 미래의 루비스트들에게 참여를 독려합니다.
RubyKaigi
2025년 10월 05일
경험 주도 디자인: 오픈 소스 개발 여정과 라이브러리 설계 원칙
[27S02] User Experience for Library Designers / geemus (Wesley Beary)(Engine Yard)
- 연사는 오픈 소스 개발자로서 초보에서 전문가로 성장한 개인적인 여정을 공유하며, 호기심과 기여를 통해 경험 주도 디자인이라는 철학을 확립했습니다.
- 오픈 소스 라이브러리 설계 시 진입 장벽 낮추기, 잦은 릴리스, 충실한 문서화, 기여자 독려, 일관성 유지, 기능 집중, 그리고 우아한 실패를 핵심 원칙으로 제시합니다.
- GitHub 트렌딩과 오픈 소스 프로젝트 전담 업무라는 개인적인 성공 사례를 통해 이러한 개발 원칙의 실질적인 가치와 성과를 강조합니다.
RubyKaigi
2025년 10월 05일
CRuby GC 성능 개선: 지연 스윕(Lazy Sweep) 구현 및 미래 방향
[27M06] We can make the GC X times slower than the original (ja)
- CRuby GC에 지연 스윕(Lazy Sweep) 알고리즘을 구현하여 GC의 최대 정지 시간을 약 42% 개선하였으며, 이는 Ruby 1.9.3부터 사용 가능할 예정입니다.
- 기존 Mark & Sweep GC의 'Stop The World' 문제 해결을 위해 스윕 작업을 객체 할당 시점으로 지연시켜 GC 부하를 분산하고 애플리케이션의 반응성을 높였습니다.
- 보수적 GC의 장점을 유지하면서도 성능을 최적화하고, 향후 병렬 마킹, 특수 힙 도입 및 라이트 배리어와 같은 비정지형 GC로의 이행을 목표로 CRuby GC의 지속적인 발전을 모색하고 있습니다.
RubyKaigi
2025년 10월 05일