Ruby on Rails 8의 새로운 기능
(blog.appsignal.com)- Ruby on Rails 8의 첫 번째 베타 버전이 공식적으로 출시
- 이 버전은 Rails 7.2를 기반으로 하여 새로운 기능과 최적화를 도입하여 Rails 개발을 더욱 생산적이고 즐겁게 만듦
- 주요 하이라이트
- Kamal 2와의 통합
- 새로운 기본 자산 파이프라인으로 Propshaft 도입
- ActiveRecord의 광범위한 개선이 포함
- SQLite 통합 업그레이드를 통해 프로덕션 사용에 적합한 옵션으로 만듦
Kamal 2와 Thruster를 통한 간편한 배포
- Kamal 2와 Thruster를 통해 애플리케이션 배포를 간단하게 만듦
- Kamal 2는 클라우드 VM, 베어 메탈 서버 또는 VPS 환경에 빠르고 쉽게 배포할 수 있도록 하여 관리형 클라우드 서비스와 PaaS 플랫폼에 대한 의존성을 줄임.
kamal setup명령어 하나로 표준 Linux 박스에 프로덕션 준비된 Rails 환경을 설정할 수 있음.- 또한, Thruster와 통합하여 무중단 배포, HTTP/2 지원, Let's Encrypt를 통한 자동 SSL, Gzip 압축, 단일 서버에서 여러 앱을 쉽게 호스팅할 수 있음.
Solid Adapters를 통한 간소화된 Rails 배포
- Rails 8의 주요 개선 사항 중 하나는 일반적인 웹 애플리케이션 요구 사항을 구현하는 데 필요한 추가 서비스 수를 줄여 배포를 간소화한 것임.
- SQLite만으로 Solid Cable, Solid Cache, Solid Queue라는 세 가지 새로운 데이터베이스 기반 어댑터를 통해 작업 큐, 캐싱, pub/sub 메시징을 처리할 수 있음.
프로덕션 준비가 된 SQLite
- SQLite를 경량 개발 도구에서 프로덕션 사용에 적합한 신뢰할 수 있는 선택으로 만듦.
- SQLite 어댑터와 Ruby 드라이버에 대한 광범위한 작업 덕분에 SQLite는 이제 Action Cable, Rails.cache, Active Job을 효과적으로 지원할 수 있음.
Propshaft를 통한 새로운 자산 파이프라인 시대
- Propshaft를 새로운 자산 파이프라인 기본값으로 도입하여 오랜 기간 사용된 Sprockets 시스템을 대체함.
- Propshaft는 현대 개발자의 핵심 요구에 맞춰 자산을 관리하는 간단하고 현대적인 접근 방식을 반영함.
간편해진 내장 인증
- 데이터베이스 기반 세션과 비밀번호 재설정 기능을 갖춘 인증 시스템을 간단하게 설정할 수 있는 명령어를 제공함.
- 이 명령어는 모델, 컨트롤러, 메일러, 뷰 등의 주요 파일을 생성하여 안전하고 프로덕션 준비가 된 인증을 빠르게 구축할 수 있도록 함.
새로운 스크립트 폴더와 생성기
- 데이터 마이그레이션, 정리 작업 또는 기타 유틸리티 작업과 같은 일회성 또는 일반 목적 스크립트를 보관할 수 있는 새로운
script폴더를 도입함. - 새로운 스크립트 생성기를 통해 스크립트를 쉽게 생성하고 실행할 수 있음.
다양한 Active Record 개선 사항
- 성능 향상, 마이그레이션 간소화, 문제 해결 개선, 복잡한 데이터베이스 사용 사례에 대한 지원을 제공하기 위해 Active Record에 주요 개선 사항을 도입함.
GN⁺의 정리
- Rails 8은 개발자 생산성을 높이고 현대적인 모범 사례와 일치하는 다양한 업데이트를 도입하여 인프라 복잡성을 처리하는 대신 애플리케이션 구축에 집중할 수 있도록 함
- Kamal과 Thruster를 통한 간편한 배포, Propshaft를 통한 현대적인 자산 관리, SQLite의 프로덕션 준비 기능 등은 Rails 8의 주요 장점임
GeekNews Weekly에 포함된 글입니다.
에디터 코멘트 보기
댓글과 토론
Hacker News 의견
-
Ruby와 Rails가 최근에 부흥기를 맞이하고 있음
- Programming Ruby 책이 올해 Ruby 3.3을 다루는 새로운 판으로 출간됨
- The Rails Way가 Rails 8에 맞춰 업데이트 중이며, 두 권의 동반 서적이 나올 예정임
- PragProg에서 Rails Scales라는 새로운 책이 사전 출판 중임
- YJIT 덕분에 Ruby가 매우 빨라졌음
- Rails에 "중간 단계"의 성공을 위한 새로운 기능들이 추가됨
- Ruby에 Data(불변 Struct), 패턴 매칭, Fibers, Ractors 등 새로운 기능들이 추가됨
- 2013년 이후로 Ruby를 떠났지만, 다시 돌아갈 가능성에 대해 흥미로움을 느낌
-
Ruby의 가장 큰 문제는 여전히 문서화임
- 공식 문서 사이트에는 오래된 책들과 API 문서가 혼재되어 있음
- 언어 기능이 API 아래에 나열되어 있어 혼란스러움
- Python의 문서와 비교할 때 체계적인 목차가 부족함
-
Rails와 마이크로서비스 기반 아키텍처를 사용하는 프로젝트에서 일하고 있음
- 모놀리식 아키텍처를 피하라는 트렌드가 있지만, Rails가 제공하는 핵심 가치를 높이 평가함
- Rails 팀이 지속적으로 가치를 추가하고 개선하는 점을 사랑함
-
Rails는 새로운 웹 프로젝트에 있어 생산성과 안정성을 제공하는 프레임워크임
- 새로운 주요 버전 업데이트가 기존 앱에 큰 변화 없이 이루어짐
-
10-15년 전 Node.js 대신 Ruby/RoR을 선택했으면 좋았을 것이라는 생각을 가끔 함
-
Rails를 사용하지 않지만 Solid Adapters가 멋져 보임
- 단일 데이터베이스로 충분히 오래 사용할 수 있음
- 캐시, pub/sub, 전체 텍스트 검색 등 최고의 솔루션을 사용하는 것이 운영 복잡성을 증가시킴
-
주로 Go 개발자이지만, Rails 7 버전이 나왔을 때 취미 프로젝트에 사용하기 시작함
- 복잡한 프론트엔드 도구 없이 Dokku에 배포하는 것이 재미있음
-
Rails를 몇 번 시도했지만, Node가 더 이해하기 쉬웠음
- 단순함을 찾고 있으며, Rails는 그게 아님
-
20년 경력의 Rails 개발자로 풀타임 직장을 찾고 있음
- GitHub 핸들은 동일함
-
2008년부터 RoR을 사용해왔으며, 여전히 강력하고 유연한 프레임워크임
- 큰 앱을 빠르게 혼자서 구축할 수 있음
- 배포 개선을 기대하고 있으며, Kamal v1 대신 Dokku를 사용 중임
- Kamal 2가 기대됨