GN⁺: 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의 주요 장점임
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가 기대됨