지난 글들

747개의 글이 있습니다

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

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

  • Ruby 3.4에 도입된 실험적 기능인 모듈형 가비지 컬렉터(Modular GC)는 사용자가 요구사항에 맞춰 다양한 GC 구현체를 선택할 수 있도록 하여 성능 및 메모리 효율성을 향상시키는 것을 목표로 합니다.
  • 기존 Ruby의 Mark-Sweep-Compact GC는 단순하고 안정적이지만, 참조 카운팅, 세미-스페이스 복사, 병렬 처리, 동적 슬롯 크기 등 고급 GC 알고리즘의 유연성이 부족합니다.
  • MMTK(Memory Management Toolkit)는 모듈형 GC API를 활용하여 Ruby에 통합된 최초의 외부 GC 구현체로, 다양한 GC 알고리즘과 병렬 처리 기능을 제공하여 Ruby의 GC 성능 개선을 위한 로드맵을 제시합니다.
RubyKaigi 2025년 05월 27일

AI 시대의 프로그래밍 언어와 Ruby 4.0 발표

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

  • AI 시대에 필요한 프로그래밍 언어의 특성으로 간결성, 표현력, 확장성을 제시하며 Ruby가 이에 부합함을 강조했습니다.
  • AI가 인간의 '하인'이 아닌 '주인'이 되는 '역알파 증후군'을 경고하며, 프로그래밍의 즐거움을 잃지 않도록 인간이 주도권을 유지할 필요성을 역설했습니다.
  • Ruby 30주년을 기념하여 Ruby 4.0 출시를 깜짝 발표하고, 실험적인 네임스페이스와 개선된 YJIT을 주요 기능으로 소개했습니다.
RubyKaigi 2025년 05월 27일

M Rubyc와 데이터 흐름 프로그래밍 환경 통합

[EN] mruby/c and data-flow programming for small devices / Kazuaki Tanaka @kaz0505

  • M Rubyc는 제한된 메모리와 처리 능력을 가진 소형 마이크로컨트롤러를 위해 루비 언어를 최적화한 경량화된 버전으로, IoT 장치에 적합합니다.
  • 데이터 흐름 프로그래밍은 노드와 와이어를 사용하여 데이터의 흐름을 시각적으로 표현하는 방식으로, IoT 장치의 센싱-처리-액추에이션 로직 구현에 효과적입니다.
  • 발표자는 데이터 흐름 설계를 M Rubyc 코드로 변환하고, 이를 마이크로컨트롤러에서 실행하여 비동기적 동작과 저전력 소비를 동시에 달성하는 통합 환경을 시연했습니다.
RubyKaigi 2025년 05월 27일

오토마톤 학습을 활용한 Ruby 파서 호환성 문제 해결

[JA] Make Parsers Compatible Using Automata Learning / Hiroya Fujinami @makenowjust

  • Ruby의 두 파서(parse.y, Prism) 간 호환성 문제를 오토마톤 이론 및 오토마톤 학습을 통해 체계적으로 발견하는 방법을 제시합니다.
  • Angluin의 L* 알고리즘과 Visible Pushdown Automata(VPA)를 활용하여 블랙박스 시스템인 파서의 동작을 오토마톤으로 추론하고, 그 차이를 분석하여 버그를 식별했습니다.
  • 발표자가 개발한 Ruby 라이브러리 'Lernnen'을 사용하여 실제 Prism 파서에서 특정 구문(`(:A)`) 파싱 오류를 발견하고 수정하는 과정을 시연했습니다.
RubyKaigi 2025년 05월 27일

CRuby 빌드 시스템의 현재와 미래

[EN] The Evolution of the CRuby Build System / Yuta Saito @kateinoigakukun

  • CRuby 빌드 시스템은 오랜 역사와 다양한 환경 지원으로 복잡성이 증가했으며, 특히 `configure` 시간과 `make` 병렬 처리 효율성 저하 문제가 심화되고 있습니다.
  • 현재 빌드 시스템은 `autoconf` 기반의 `configure` 스크립트, 다단계 `make` 구현, Base Ruby 및 Mini Ruby를 활용한 코드 생성 등 여러 복잡한 요소를 포함하고 있습니다.
  • 발표자는 Ruby 기반의 새로운 빌드 시스템을 제안하며, 빌드 로직의 명확화, 성능 최적화(병렬 처리), 그리고 최종 사용자를 위한 기존 `configure && make` 경험 유지를 목표로 합니다.
RubyKaigi 2025년 05월 27일

Ruby가 알려준 문자 코드의 심오한 세계

[JA][Keynote] Ruby Taught Me About Encoding Under the Hood / Mari Imaizumi @ima1zumi

  • 루비 커미터로서 유니코드 15.1.0 업데이트를 주도하며 문자 코드의 복잡한 역사와 구현의 어려움을 해결했습니다.
  • EBCDIC 및 복합 이모지 사례를 통해 문자 코드가 시각적 표현과 내부 코드 포인트 간의 불일치를 어떻게 다루는지 설명하며, 특히 초기소 클러스터의 중요성을 강조했습니다.
  • 루비의 유니코드 지원을 최신 버전으로 유지하는 과정에서 발생하는 파싱 오류, 그래핌 분할 규칙 적용 등 실제 기술적 난관과 그 해결 과정을 공유했습니다.
RubyKaigi 2025년 05월 27일

YJIT, 느려짐을 통해 Ruby를 가속화하는 방법

[EN] Deoptimization: How YJIT Speeds Up Ruby by Slowing Down / Takashi Kokubun @k0kubun

  • YJIT은 '역최적화(deoptimization)' 기법을 활용하여 Ruby의 동적 특성에도 불구하고 과감한 추측성 최적화를 수행하며, 필요시 최적화된 코드를 폐기하여 정확성을 보장합니다.
  • Ruby 3.4에 도입된 새로운 역최적화 기법들은 지역 변수 레지스터 할당, 싱글턴 클래스 무효화, 지연 프레임 푸시 등을 통해 YJIT의 성능과 정확성을 더욱 향상시켰습니다.
  • YJIT은 현재 Shopify의 대규모 프로덕션 환경에서 평균 18%, 특정 지역에서 최대 33%의 성능 향상을 보이며, Rails 7.2 및 Ruby 3.3 이상에서는 기본으로 활성화됩니다.
RubyKaigi 2025년 05월 27일

터보 프레임 모달 활용법

Turbo Frame Modals. The Definitive Guide | by Andy Cohen | Medium

  • 터보 프레임 모달 구현을 위해 링크는 'modal' 터보 프레임을, 컨트롤러 액션은 'modal' 레이아웃을 지정해야 합니다.
  • 폼 제출 성공 시 `turbo:frame-missing` 이벤트를 활용하여 터보 프레임에서 벗어나 성공 페이지로 리다이렉트합니다.
  • 폼 제출 실패 시에는 에러를 'modal' 레이아웃 내에서 다시 렌더링하여 모달 창을 유지할 수 있습니다.
jeff 2025년 05월 26일

Friendly RB 컨퍼런스: 나만의 커피 코너 운영 발표

Brew your own coffee corner at Friendly.rb 2025

  • Friendly RB 컨퍼런스에서 참가자들이 직접 커피를 추출할 수 있는 '나만의 커피 코너'가 운영됩니다.
  • 신선하게 로스팅된 다양한 원두와 뜨거운 물이 제공되며, 참가자는 개인 추출 도구를 지참하여 이용할 수 있습니다.
  • 루비 개발자이자 커피 애호가들이 모여 커피 레시피를 공유하고 교류하는 특별한 기회를 제공합니다.
Friendly rb 2025년 05월 23일

이번 주 Rails 소식: Rails World 2025, 새로운 기능 및 업데이트

Rails World 2025 speaker lineup, deprecations, doc updates and more!

  • Rails World 2025 연사 라인업이 발표되었으며, Rails 프레임워크의 최신 업데이트 소식이 전해졌습니다.
  • Active Record의 `polymorphic` 연관 관계 문서가 명확해지고, 불필요한 `:class_name` 옵션 사용이 더 이상 권장되지 않습니다.
  • `db:migrate:reset` 명령어의 네임스페이스 버전 추가와 `SCHEMA_FORMAT` 환경 변수 동작 수정 등 개발 편의성이 향상되었습니다.
This Week in Rails 2025년 05월 23일
  • Rails 애플리케이션에서 SQL 쿼리 작성 시 데이터베이스 간 BOOLEAN 타입 처리 방식의 차이를 이해하는 것이 중요합니다.
  • MySQL과 SQLite는 BOOLEAN을 내부적으로 정수로 처리하는 반면, Postgres는 실제 BOOLEAN 타입을 사용합니다.
  • 데이터베이스 호환성과 가독성을 위해 BOOLEAN 컬럼 비교 시 항상 TRUE 및 FALSE 리터럴을 사용하는 것이 권장됩니다.
Rails at Scale 2025년 05월 21일

Ruby 3.5의 빠른 할당

Fast Allocations in Ruby 3.5

  • Ruby 3.5에서는 객체 할당 속도가 최대 6배까지 빨라졌으며, 특히 키워드 파라미터에서 두드러진 성능 향상을 보입니다.
  • 이러한 속도 향상은 `Class#new` 메서드의 내부 구현을 YARV 명령어 레벨에서 인라인(inlining)하여 달성되었습니다.
  • 인라인 기법은 파라미터 복사 제거, 스택 프레임 오버헤드 감소, 그리고 인라인 캐시 적중률 개선을 통해 성능을 최적화합니다.
Rails at Scale 2025년 05월 21일

Rails를 활용한 지능형 애플리케이션 구축

Building intelligent applications with Rails | SINAPTIA

  • Ruby on Rails는 빠른 개발 속도와 기존 AI 모델의 전략적 통합을 통해 AI 기반 애플리케이션 개발에 효과적인 플랫폼입니다.
  • Rails의 'Convention Over Configuration' 철학, 풍부한 RubyGems 생태계, 그리고 강력한 내장 도구는 AI 통합을 간소화하고 개발 생산성을 높입니다.
  • 개발자들은 Rails를 통해 깊은 머신러닝 전문 지식 없이도 OpenAI, Google 등 주요 AI 서비스의 API를 활용하여 사용자 친화적인 AI 애플리케이션을 구축할 수 있습니다.
Ruby Weekly 2025년 05월 20일

Ruby에서 더 스마트하게 출력하기 — 각 메서드를 언제, 어떻게 사용할 것인가

Print Smarter in Ruby — Know When and How to Use Each Method | by Rob Race | Medium

  • Ruby의 다양한 출력 메서드(puts, print, p, pp, y)의 용도와 차이점.
  • 디버깅 및 복잡한 데이터 시각화를 위한 p, pp, y 메서드의 활용법.
  • awesome_print Gem을 활용한 콘솔 출력 가독성 및 스타일 향상.
jeff 2025년 05월 20일

이번 주 Rails 코드베이스 주요 변경 사항 요약

RFC-9111 style Cache-Control directives hit or miss

  • 이번 주 Rails 코드베이스의 주요 변경 사항들이 소개되었습니다.
  • ActiveRecord의 쿼리 결과 행 수 확인 및 RFC 9111 스타일 캐시 제어 지시문 관련 업데이트가 포함됩니다.
  • Rails World 세션의 온라인 공개 예정과 다른 Ruby 컨퍼런스 정보도 공유되었습니다.
This Week in Rails 2025년 05월 17일