6P by neo 1달전 | favorite | 댓글 1개
  • 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가 기대됨