Honeybadger의 분기별 브리핑은 프로그래밍 커뮤니티에서 가장 중요한 변화들을 한눈에 파악할 수 있도록 도와드립니다. 핵심 뉴스만 엄선하여 전달하므로, 개발자 여러분은 정말 중요한 일에 더 많은 시간을 집중할 수 있습니다.
- 이벤트: 다가오거나 최근에 열린 컨퍼런스와 밋업 소식
- 보안: 최근 보고된 취약점 정보
- 프로젝트: 주요 커뮤니티 프로젝트 관련 뉴스
- 주요 화제: 업계에서 가장 큰 관심을 받고 있는 토픽 요약
- 주목할 만한 콘텐츠: 다른 섹션에 담기 어렵지만 놓치기 아까운 콘텐츠 모음
이벤트
11월 8일~10일, RubyConf 2021 개최
RubyConf는 세계에서 가장 규모가 크고 역사가 오래된 Ruby 애호가, 실무자, 기업들의 모임입니다. 올해는 미국 덴버에서 오프라인으로 진행되며, 참가 비용이 더 저렴한 온라인 참여 옵션도 함께 제공됩니다.
- 6월 7일: 발표 제안(Call for Proposals) 접수가 시작되어 현재는 마감되었습니다.
- 6월 7일: RubyConf 등록이 시작되었습니다.
보안
- 8월 16일: 2.8.0 미만 버전의
better_errors젬은 내부 요청에 대한 CSRF(Cross-Site Request Forgery) 보호 기능이 구현되어 있지 않았습니다. 또한 해당 요청에 올바른 "Content-Type" 헤더를 강제하지 않아 CORS 보호 없이 교차 출처 "단순 요청(simple request)"이 가능했습니다. 반드시 2.8.0 이상으로 업그레이드하시기 바랍니다.
프로젝트
Ruby
루비 언어 자체에 관한 소식입니다.
- 7월 7일: Ruby 3.0.2가 릴리스되었습니다. 이번 버전은 3개의 CVE(공개된 보안 취약점)를 수정합니다.
Rails
Rails(Ruby on Rails)는 Ruby를 웹 개발의 주류로 만든 오픈소스 프레임워크입니다.
- 9월 15일: Rails 7.0 알파 1(Alpha 1) 버전이 공개되었습니다!
주요 화제
Rails 7 (관련 글 12편)
Rails 7이 정식으로 알파 단계에 들어섰습니다. JavaScript 처리 방식에 대한 새로운 해법, Active Record를 활용한 강력한 데이터 암호화, SQL 쿼리 출처 로깅, 비동기 쿼리 로딩, Zeitwerk를 통한 독점적 오토로딩 등 흥미로운 변화가 가득합니다.
Rails 7의 예정된 변경 사항 미리보기
- Stefan Weinert
- Rails 7에 추가될 주요 변경 사항을 하나씩 살펴봅니다.
Rails 7에 크로스 클러스터 연관 관계 지원 추가하기
- Eileen M. Uchitelle
- GitHub 팀이 연관 관계가 여러 데이터베이스에 걸쳐 있을 때 조인 쿼리를 비활성화하는 내부 기능을 추출하여 기여했습니다.
Rails 7, belongs_to 연관 관계 변경 추적 메서드 추가
- Swaathi Kakarla
- ActiveRecord를 활용해 데이터베이스 변경 이력을 조회하는 방법을 다룹니다.
Rails 7부터 실패한 작업 무한 재시도 가능
- Alkesh Ghorpade
- Rails 7의 ActiveJob 업그레이드를 통해 성공할 때까지 무한히 재시도하도록 작업을 지정할 수 있습니다.
테스팅 (관련 글 6편)
테스트 코드는 대규모 프로덕션 애플리케이션 운영에 필수적이며, Ruby 커뮤니티는 테스팅에 특히 열정적입니다.
Rails에서 일부 테스트를 더 빠르게 실행하는 방법
- Jorge Manrubia
- Rails의 병렬 테스팅은 데이터베이스 설정과 픽스처 로딩으로 인해 상당한 오버헤드가 발생했습니다. Jorge는 병렬 테스팅을 기본적으로 비활성화하는 PR을 Rails에 제출했습니다.
직접 Factory Bot을 만들며 문법 이해하기
- Jason Swett
- Jason이 Factory Bot을 처음부터 직접 구현해 보며 그 동작 원리를 낱낱이 밝혀줍니다.
JavaScript, Hotwire, 그리고 Rails (관련 글 5편)
최근 Rails 릴리스와 곧 출시될 버전들은 Rails가 JavaScript와 상호작용하는 방식을 크게 바꾸고 있습니다.
번들링·트랜스파일링 없이 만드는 모던 웹 앱
- David Heinemeie Hansson(DHH)
- 이제 ES6 코드를 브라우저에서 실행 가능한 형태로 변환하는 트랜스파일링 단계가 필요 없습니다. 수정 없이도 그대로 잘 동작합니다.
Hotwire와 Rails로 SPA 같은 경험 구현하기
- Mike Wilson
- Hotwire와 Turbo 프레임을 활용한 내비게이션 구현 방법을 설명합니다.
Rails에서 Hotwire 활용하기
- Renata Marques
- Hotwire는 HTML을 와이어(wire)를 통해 전송함으로써 적은 양의 JavaScript로 모던 웹 애플리케이션을 만들 수 있는 방식입니다. Renata Marques가 Hotwire를 소개하고 간단한 예제를 함께 다룹니다.
주목할 만한 콘텐츠
Sorbet 컴파일러: Ruby용 실험적 AOT(Ahead-of-Time) 컴파일러
- The Sorbet Team
- Stripe가 자사의 Ruby 선행 컴파일러 코드를 공개했습니다. 기본 인터프리터 대비 최대 170% 빠른 성능을 자랑합니다.
튜토리얼: Ruby 앱에서 이메일 보내는 방법
- Aydrian Howard
- Ruby 애플리케이션에 이메일 기능을 추가하는 과정을 빠르게 안내합니다.
Rails includes 메서드의 내부 동작 원리
- Paweł Dąbrowski
- ActiveRecord가
includes메서드를 어떻게 구현하는지 심층 분석합니다.