지난 글들

1164개의 글이 있습니다

면접 코딩 챌린지에서 RSpec 테스트 실패를 겪은 이야기

How trustworthy is Rspec? How I Fell into an RSpec Pitfall - Chenxu Zhao

  • RSpec 테스트가 `SystemExit`로 인해 중간에 종료되어 모든 테스트가 실행되지 않는 문제 발생.
  • `initialize` 메서드 내 `super` 호출과 광범위한 `rescue ArgumentError`가 `exit(1)`을 유발하여 RSpec의 비정상 종료를 초래.
  • RSpec 테스트의 신뢰성을 높이기 위해 테스트 순서 무작위화, 터미널 종료 코드 표시, CI/CD 설정 도입을 권장.
Ruby Australia 2025년 10월 18일
  • Ruby Central이 RubyGems와 Bundler 저장소 소유권을 Ruby 핵심 팀에 이전했으나, 이는 이전 유지보수 담당자들의 통제권을 회복시키지 못했습니다.
  • 이전 유지보수 담당자들은 Ruby Central의 조치를 '적대적 인수'로 규정하며, 재정적 어려움과 Shopify의 영향력에 대한 의혹을 제기했습니다.
  • Ruby 핵심 팀이 안정성을 위해 프로젝트 관리를 맡지만, Ruby Central과의 협력을 지속하며 커뮤니티 내 갈등은 여전히 해소되지 않은 상태입니다.
HackerNews 2025년 10월 18일

Rails 103 Early Hints: 개선점과 현실적 한계

Rails 103 Early Hints could be better, maybe doesn’t matter

  • HTTP 103 Early Hints는 메인 응답 전에 자산 로드를 미리 알림으로써 웹 페이지 로딩 속도를 향상시키는 기술입니다.
  • Rails의 103 Early Hints 구현은 여러 개의 힌트가 전송되거나 응답 처리 후반부에 발생하여 개선의 여지가 있습니다.
  • 다수의 프로덕션 환경에서 프록시 및 CDN 등으로 인해 103 Early Hints가 차단되어 실제 적용에 어려움이 있습니다.
Island94.org 2025년 10월 18일

Perron 도큐멘테이션

Documentation | Perron

  • Perron은 Rails 프레임워크를 기반으로 하는 정적 사이트 생성기입니다.
  • 사랑하는 Rails를 활용하여 정적 사이트를 구축할 수 있으며, 빠른 시작 가이드를 제공합니다.
  • 라이브러리, UI 컴포넌트 및 프로덕션 배포 가이드 등 포괄적인 자료를 통해 사이트 구축을 지원합니다.
Ruby Weekly 2025년 10월 17일
  • WebSocket은 양방향 통신 채널을 제공하여 서버가 클라이언트에게 비동기적으로 메시지를 보낼 수 있게 하며, 이는 실시간 기능의 핵심입니다.
  • ActionCable은 WebSocket 연결을 관리하는 Rack 애플리케이션으로, `broadcast_*` 메서드를 통해 여러 프로세스에서 클라이언트로 메시지를 전송하기 위해 데이터베이스 또는 Redis와 같은 중간 매개체를 활용합니다.
  • `turbo_stream_from` 헬퍼는 `Turbo::StreamsChannel`을 통해 WebSocket 연결을 설정하고, `signed-stream-name`을 사용하여 스트림 구독 요청의 유효성을 검증합니다.
Ruby Weekly 2025년 10월 17일
  • 루비 네임스페이스는 코드, 네이티브 확장, 젬을 분리하여 이름 충돌을 방지합니다.
  • 모듈/클래스 인스턴스 격리를 통해 안정적인 애플리케이션 개발을 지원합니다.
  • 단일 루비 프로세스 내에서 다양한 버전의 라이브러리 로드를 가능하게 합니다.
Ruby Weekly 2025년 10월 17일
  • RubyGems.org는 9월 AWS 루트 접근 사고 보고서를 통해 퇴사자 자격 증명 관리 부실을 원인으로 밝히고, MFA 도입 등 보안 강화 조치를 완료했습니다.
  • Ruby Central은 커뮤니티의 우려를 인지하고 투명성 강화를 위해 전체 이메일 공개 및 기업 기여자 프로그램을 통한 운영 참여 기회를 확대하고 있습니다.
  • Bundler 상표권 관련 법적 분쟁으로 Andre Arko 측으로부터 중단 서한을 받아 라이브 Q&A가 지연되고 있으며, 법적 해결 전까지 관련 공개 언급은 자제될 예정입니다.
The Awesome Ruby 2025년 10월 17일
  • 루비는 Perl의 일반적인 문법과 디자인 철학, Smalltalk의 객체 지향 구조에서 많은 영감을 받아 탄생했습니다.
  • Perl은 정규 표현식을 활용한 강력한 문자열 조작, 유연한 문법, 혁신적인 패키지 관리 시스템 CPAN으로 초기 웹 개발을 주도했습니다.
  • 루비는 변수 시길, 문자열/정규 표현식 리터럴, 조건문, 전역 기본값 $_ 등 Perl의 독특한 문법과 '다양한 방법'의 디자인 철학을 계승했습니다.
HackerNews 2025년 10월 17일
  • RubyGems와 Bundler의 저장소 소유권이 Ruby 코어 팀으로 공식적으로 이전되었습니다.
  • Ruby Central은 Ruby 코어 팀과 긴밀히 협력하여 RubyGems 및 Bundler의 관리 및 거버넌스 책임을 계속 공유합니다.
  • rubygems.org는 Ruby Central이 계속 운영하며, 두 프로젝트는 기존 라이선스 하에 오픈 소스로 유지됩니다.
The Awesome Ruby 2025년 10월 17일

Rails와 Stimulus를 활용한 실시간 연결 모니터링 시스템 구현

Detecting Slow Connections and Network Issues in Real-Time with Stimulus - Unagi

  • Rails 백엔드와 Stimulus 프론트엔드를 결합하여 실시간 게임의 느린 연결 및 완전 끊김을 감지하는 시스템을 구축했습니다.
  • 백엔드에 최소한의 헬스체크 엔드포인트를 두고, 프론트엔드 Stimulus 컨트롤러가 주기적으로 HEAD 요청을 보내 네트워크 지연 시간을 측정합니다.
  • 측정된 지연 시간에 따라 연결 상태(정상, 느림, 오프라인)를 판단하고, 사용자에게 직관적인 경고 배너를 표시하여 게임 경험을 개선합니다.
Hotwire Weekly 2025년 10월 17일

RubyGems 및 Bundler 저장소 관리권 Ruby 코어 팀으로 이관 발표

Ruby Core Takes Ownership of Rubygems and Bundler

  • RubyGems와 Bundler의 저장소 관리권이 Ruby Central에서 Ruby 코어 팀으로 공식적으로 이관됩니다.
  • 이번 이관은 RubyGems와 Bundler의 장기적인 안정성 및 Ruby 생태계와의 일관성을 확보하기 위함입니다.
  • 프로젝트는 기존과 동일하게 오픈 소스로 유지되며, 커뮤니티 주도 개발 및 기여자 권한은 변함없이 보장됩니다.
HackerNews 2025년 10월 17일

RubyGems 및 Bundler 저장소 소유권, Ruby 코어 팀으로 이전

Ruby Central Statement on RubyGems and Bundler [Moving to Ruby GH Namespace]

  • RubyGems와 Bundler의 저장소 소유권이 Ruby 코어 팀으로 공식 이전되었습니다.
  • Ruby Central은 앞으로도 RubyGems 및 Bundler의 관리와 거버넌스 책임을 Ruby 코어 팀과 협력하여 수행하며, rubygems.org 운영은 계속 담당합니다.
  • 이번 결정은 루비 생태계의 장기적인 안정성과 성장을 강화하기 위한 공동의 노력입니다.
HackerNews 2025년 10월 17일
  • RubyGems.org는 Ruby Gem의 중앙 호스팅 서비스로, 자원봉사자들의 헌신과 Ruby Central의 지원으로 발전했습니다.
  • Bundler의 확산은 RubyGems.org에 막대한 트래픽 부하를 발생시켜 인프라 개선과 전용 API 개발의 필요성을 야기했습니다.
  • Ruby Together는 자원봉사 개발자들을 지원하기 위해 설립되었으나 재정적 어려움 끝에 Ruby Central에 합병되어 중앙화된 관리를 받게 되었습니다.
HackerNews 2025년 10월 17일

Turbo Stream 'refresh' 액션과 DOM 상태 관리: 서버사이드 렌더링을 통한 개선

A refreshing take: using serverside rendering to reduce fragile DOM state – Grinding Gears

  • Hotwire (Turbo, Stimulus)는 Rails에서 서버사이드 렌더링을 통해 프론트엔드를 간소화하며, Action Cable과 연동하여 Turbo Stream을 브로드캐스트하여 비동기적인 페이지 업데이트를 가능하게 합니다.
  • `turbo-stream action="refresh"`는 Action Cable 브로드캐스트 시 페이지 전체 새로고침 대신, `idiomorph` 라이브러리를 활용해 변경된 DOM 요소만 지능적으로 업데이트하는 '모핑(morphing)' 기능을 제공합니다.
  • `refresh` 액션 사용 시 DOM 상태 손실 방지를 위해 `data-turbo-permanent` 속성, JS 이벤트 제어, 또는 Turbo Frames를 활용한 부분적 업데이트 전략이 중요합니다.
Hotwire Weekly 2025년 10월 17일
  • RubyGems와 Bundler의 저장소 소유권이 Ruby 코어 팀으로 공식적으로 이전되었습니다.
  • Ruby Central은 Ruby 코어 팀과 긴밀히 협력하여 프로젝트의 관리 및 거버넌스 책임을 계속 공유합니다.
  • Ruby Central은 rubygems.org의 소유 및 운영을 지속하며, 두 프로젝트는 기존 오픈 소스 라이선스를 유지합니다.
Ruby on Rails 소식지 2025년 10월 17일