지난 글들
1260개의 글이 있습니다
Active Job 및 Turbo Broadcast Later를 위한 ViewComponent 직렬화
Serializing ViewComponent for Active Job and Turbo broadcast later | Island94.org
- ViewComponent를 Active Job 및 Turbo Broadcast Later와 연동하여 Hotwire 컴포넌트의 백그라운드 업데이트를 구현하는 방법을 제시합니다.
 - ViewComponent 인스턴스를 Active Job에서 직렬화하기 위해 `serializable` 클래스 메서드와 `ViewComponent::Serializable` 모듈을 개발하여 초기화 인수를 저장합니다.
 - Active Job 커스텀 Serializer를 통해 ViewComponent 객체를 직렬화하고, 백그라운드 작업에서 재구성하여 렌더링할 수 있도록 지원합니다.
 
        
          
                   Hotwire Weekly
        
        
          
          2025년 09월 14일
        
      
    Active Job 및 Turbo Broadcast Later를 위한 ViewComponent 직렬화
Serializing ViewComponent for Active Job and Turbo Broadcast Later
- ViewComponent를 Active Job의 `broadcast_action_later_to`와 연동하기 위한 직렬화 방안이 제시되었습니다.
 - ViewComponent의 `initialize` 메서드 제약으로 인해 `serializable` 클래스 메서드와 커스텀 `ViewComponentSerializer`를 활용한 해결책이 제안되었습니다.
 - Hotwire 컴포넌트의 비동기적 백그라운드 갱신을 가능하게 하여 DOM ID 및 스트림 타겟 관리의 복잡성을 줄이는 것이 핵심 목표입니다.
 
        
          
                  Island94.org
        
        
          
          2025년 09월 14일
        
      
    Ruby 3.5의 Ractor와 ZJIT: 병렬 처리 및 성능 최적화를 위한 새로운 지평
Aaron Patterson - Rails World 2025 Closing Keynote
- Ruby 3.5에서는 Ractor를 통해 CPU 바운드 작업을 위한 진정한 병렬 처리를 제공하며, 이는 기존 C 확장과 유사하게 GVL을 해제하는 'No GVL 블록'처럼 활용될 수 있습니다.
 - 새로운 JIT 컴파일러인 ZJIT은 메서드 기반 접근 방식을 통해 단일 코어 성능을 향상시키며, JIT 친화적인 코드를 작성하기 위해 호출 사이트 단형화(monomorphization)와 일관된 인스턴스 변수 설정이 중요합니다.
 - Ractor 내부의 전역 해시 테이블 잠금 경합 문제 해결 및 객체 할당 속도 70% 개선 등, Ruby 3.5는 상당한 성능 향상을 제공하여 즉각적인 업그레이드가 권장됩니다.
 
        
          
                  HackerNews
        
        
          
          2025년 09월 13일
        
      
    Ruby on Rails에서 n+1 쿼리 문제 이해하기
Understanding n+1 query problems in Ruby on Rails
- n+1 쿼리는 웹 애플리케이션에서 흔히 발생하는 성능 저하 요인으로, 데이터베이스 자원 소모 및 응답 시간 증가를 유발합니다.
 - n+1 쿼리 문제는 코드의 특정 패턴(반복문, 계층 분리, 메타 프로그래밍, Law of Demeter 위반, Delegate 패턴)으로 인해 발생하며, 코드만으로는 식별하기 어렵습니다.
 - n+1 쿼리 최적화는 애플리케이션 로그 분석과 SLO, 캐싱 전략, 실제 성능 벤치마킹을 고려하여 신중하게 결정해야 합니다.
 
        
          
                  HackerNews
        
        
          
          2025년 09월 12일
        
      
    Rails Event Store에서 기록을 손상시키지 않고 이벤트 이름과 페이로드 진화시키기
Evolving event names and payloads in Rails Event Store without breaking history
- 이벤트 소싱 시스템에서 이벤트 이름 및 페이로드 변경 시 불변성 원칙을 유지하며 하위 호환성을 확보하는 방법을 제시합니다.
 - Rails Event Store의 커스텀 매퍼를 활용하여 이벤트 타입 리네임과 페이로드 키 변환을 로드 시점에 효율적으로 처리하는 해결책을 설명합니다.
 - 기존 Transformation::Upcast 매퍼와 비교하여, 복잡한 변환 시 커스텀 매퍼가 코드 조직화, 유지보수성 및 디버깅 측면에서 더 우수함을 강조합니다.
 
        
          
                  Arkency
        
        
          
          2025년 09월 12일
        
      
    Opal Stimulus 데모: 루비로 StimulusJS 컨트롤러 개발하기
opal stimulus
- Opal Stimulus는 Ruby 코드를 JavaScript로 컴파일하여 StimulusJS 컨트롤러를 작성할 수 있게 해주는 Ruby 젬입니다.
 - 기존 StimulusJS 환경과 공존하며, 설치부터 컨트롤러 생성, 기본 기능 구현 및 데이터 페칭까지의 개발 과정을 시연합니다.
 - Ruby의 객체 지향 패러다임과 강력한 디버깅 도구(binding)를 활용하여 프런트엔드 로직을 효율적으로 개발하는 방법을 제시합니다.
 
        
          
                   Hotwire Weekly
        
        
          
          2025년 09월 12일
        
      
    레일웨이 지향 프로그래밍: 코드를 제자리로 돌려놓는 방법
Railway Oriented Programming, Getting Us Back On Track - Ryan Bigg
- 레일웨이 지향 프로그래밍(ROP)은 코드 실행 경로를 성공(happy path)과 실패(sad path)로 명확히 분리하여 복잡한 비즈니스 로직의 가독성과 유지보수성을 극대화합니다.
 - `dry-monads` 및 `dry-operation` Gem을 활용하여 컨트롤러와 모델의 역할을 재정의하고, 비즈니스 로직을 `Operation` 클래스에 집중시켜 코드의 응집도를 높이고 테스트 용이성을 향상시킵니다.
 - 기존 Rails 애플리케이션의 복잡하고 얽힌 코드를 단계별 `Operation`으로 분리하여 점진적으로 리팩토링함으로써 대규모 시스템에서도 구조적 명확성과 개발자 경험을 개선할 수 있습니다.
 
        
          
                  Ruby Australia
        
        
          
          2025년 09월 12일
        
      
    Ruby는 왜 배우기 어려운 언어인가? - 일관성 부족과 예측 불가능한 동작
10 things I hate about Ruby - Ankur Kothari
- 루비는 다른 언어에서 많은 요소를 차용하여 표현력이 풍부하지만, 일관된 설계 원칙이 부족하여 내부 동작을 이해하고 예측하기 어렵습니다.
 - 메서드 우선순위, 추상화 누수, 복소수 처리 불일치, 변수 스코프의 복잡성 등 다양한 예시를 통해 루비의 예측 불가능한 특성들을 설명합니다.
 - 루비의 동작은 '그 당시 Matz가 좋다고 생각한 것'에 따라 결정되는 경향이 있어, 개발자가 예측 가능한 정신 모델을 구축하기 어렵게 만듭니다.
 
        
          
                  Ruby Australia
        
        
          
          2025년 09월 12일
        
      
    레일즈 월드(Rails World)는 무엇인가?
Rails World Conference
- 레일즈 월드는 레일즈 개발의 최신 기능 및 모범 사례를 다루는 연례 커뮤니티 컨퍼런스입니다.
 - 다음 레일즈 월드 2026은 텍사스 오스틴에서 개최될 예정이며, 후원 기회가 열려 있습니다.
 - 본 컨퍼런스는 기술 강연, 데모, 워크숍, 네트워킹 및 기조연설을 통해 레일즈 커뮤니티의 교류를 촉진합니다.
 
        
          
                  Ruby Weekly
        
        
          
          2025년 09월 12일
        
      
    httpx: 파이버 동시성 플러그인
Fiber Concurrency · honeyryder
- httpx의 fiber_concurrency 플러그인은 파이버 스케줄러가 관리하는 파이버들 간에 HTTP 연결을 원활하게 재사용하도록 지원합니다.
 - 이 플러그인은 httpx를 파이버 스케줄러 환경(예: async Gem)에서 사용할 때 필수적이며, 특히 persistent 플러그인 사용 시 기본적으로 요구됩니다.
 - 장기 지속되거나 영구적인 연결을 사용하는 애플리케이션에서 연결 관리의 효율성을 높여 동시성 프로그래밍을 용이하게 합니다.
 
        
          
                  Ruby Weekly
        
        
          
          2025년 09월 12일
        
      
    Rust 기반의 새로운 Ruby 버전 관리자, rv 소개
rv Is a New Rust-Powered Ruby Version Manager Inspired by Python's uv
- rv는 Python의 uv에서 영감을 받아 Rust 언어로 개발된 새로운 Ruby 버전 관리자입니다.
 - 기존 Ruby 버전 관리 도구들의 성능 및 안정성 한계를 극복하고 더 빠르고 효율적인 개발 환경을 제공하는 것을 목표로 합니다.
 - Rust의 강력한 성능과 uv의 현대적 설계 철학을 결합하여 Ruby 개발 경험을 혁신할 잠재력을 가집니다.
 
        
          
                  Ruby Weekly
        
        
          
          2025년 09월 12일
        
      
    RailsWorld 2025: Rails 8.1 및 생태계의 주요 발표 내용
What’s New In Rails 8.1 And Its Ecosystem
- Active Job Continuations, Active Record Tenanted, Action Push 등 Rails 8.1 및 관련 생태계의 핵심 신규 기능들이 발표되었습니다.
 - Turbo Offline, Action Push, Lexxy 등 모바일 및 개발자 경험(DX) 개선을 위한 다양한 도구와 기능이 추가되었습니다.
 - SQLite 기반의 분산 애플리케이션 지원(Beamer), 다중 지역 라우팅(Kamal Geo Proxy), 개발 환경 최적화 OS(Omarchy) 등 인프라 및 개발 워크플로우 개선도 주목할 만합니다.
 
        
          
                  The Awesome Ruby
        
        
          
          2025년 09월 12일
        
      
    Rails Action Text와 Trix: 새로운 action_text-trix Gem으로 독립적인 업데이트 구현
Rails Decouples Trix From Action Text Into action_text-trix gem
- Trix가 `action_text-trix` Gem으로 분리되어 Action Text와 독립적으로 업데이트 가능해져 보안 및 기능 개선이 빨라졌습니다.
 - 새로운 Rails 앱에서는 `action_text:install` 명령으로 자동으로 Gem이 설치되며, 기존 앱은 수동 설정 제거 후 Gem을 추가해야 합니다.
 - 이러한 변화는 Trix 통합을 간소화하고 자산 관리를 용이하게 하며, 다른 에디터로의 전환을 더 쉽게 만듭니다.
 
        
          
                  HackerNews
        
        
          
          2025년 09월 12일
        
      
    Rails에서 뷰 모델: 혼돈을 해결하기 위한 실험
View Models in Rails: An experiment to solve the chaos | A. Christian Toscano
- Rails 뷰의 복잡성(비즈니스 로직 침투, N+1 쿼리, 테스트 어려움)을 해결하기 위해 컨트롤러와 뷰 사이의 프리젠테이션 로직을 전담하는 뷰 모델(View Model) 패턴을 소개합니다.
 - 뷰 모델은 순수 Ruby 클래스로, 여러 모델과 컨텍스트를 받아 뷰가 필요로 하는 데이터를 준비하고 프리젠테이션 결정을 중앙화하여 뷰를 단순화하고 책임 분리를 명확히 합니다.
 - 뷰 모델 도입은 로직 중앙화, 성능 개선, 의미론적 명확성, 쉬운 테스트를 가능하게 하여 복잡한 Rails 애플리케이션의 유지보수성을 크게 향상시키는 효과적인 솔루션입니다.
 
        
          
                   Hotwire Weekly
        
        
          
          2025년 09월 12일
        
      
    Rails Action Text와 Trix Gem: 독립적인 업데이트를 위한 분리
Rails Decouples Trix From Action Text Into action_text-trix gem | Saeloun Blog
- 과거 Rails Action Text와 Trix 에디터는 긴밀하게 결합되어 업데이트 및 보안 패치 적용에 어려움이 있었습니다.
 - 이 문제를 해결하기 위해 Trix가 'action_text-trix'라는 별도 Gem으로 분리되어, Action Text와 Trix의 개별적인 업그레이드가 가능해졌습니다.
 - 새로운 Rails 애플리케이션에서는 자동으로 설치되며, 기존 앱은 Gem 추가 및 기존 Trix 파일 제거를 통해 쉽게 통합할 수 있습니다.
 
        
          
                  The Awesome Ruby
        
        
          
          2025년 09월 12일