Rails 8, 구관이 명관? 개발자가 직접 경험한 Rails의 부활!

by DD
2개월 전
조회수 18

Rails 8은 Hotwire(HTML Over The Wire), Stimulus를 통해 프런트엔드 개발 경험을 개선하고, JS 번들링(Bundling)의 복잡성을 제거함

Solid Cache, Solid Queue, Solid Cable과 같은 새로운 라이브러리를 통해 Redis 의존성을 줄이고, SQLite를 프로덕션 환경에서 사용할 수 있도록 지원함

Kamal을 활용한 컨테이너 기반 배포 방식을 통해 Heroku와 유사한 개발 경험을 제공하며, 배포 자동화를 구현함

Rails 8은 SQLite의 기본 설정을 개선하여 프로덕션 환경(Production Environment)에서의 성능과 안정성을 향상시킴

Rails 8의 프런트엔드 개발 방식 변화

저자는 Rails 8에서 StimulusTurbo를 활용한 프런트엔드 개발 경험을 긍정적으로 평가하며, 특히 JS 번들링(Bundling) 도구 없이도 현대적인 웹 애플리케이션을 구축할 수 있다는 점을 강조한다. Stimulus LibraryStimulus Components와 같은 라이브러리를 통해 UI 컴포넌트를 쉽게 통합할 수 있으며, AI를 활용한 UI 컴포넌트 생성에 대한 윤리적 고민을 드러낸다. 이러한 변화는 프런트엔드 개발의 진입 장벽을 낮추고, 개발자가 백엔드 로직에 집중할 수 있도록 돕는다.

Solid* 라이브러리를 통한 백엔드 인프라 개선

Rails 8은 Solid Cache, Solid Queue, Solid Cable과 같은 새로운 라이브러리를 도입하여 Redis와 같은 별도의 인프라 구성 요소 없이도 캐싱, 큐잉, 웹소켓 기능을 제공한다. 특히 Solid Cache는 데이터베이스를 캐시 저장소로 활용하여 메모리 부족 문제를 해결하고, SQLite를 프로덕션 환경에서 사용할 수 있도록 지원한다. 이러한 변화는 개발자가 인프라 관리의 부담을 줄이고, 애플리케이션 개발에 집중할 수 있도록 돕는다.

SQLite 데이터베이스의 프로덕션 환경 적합성

저자는 Rails 8에서 SQLite의 기본 설정을 개선하여 프로덕션 환경에서의 성능과 안정성을 향상시킨 점을 높이 평가한다. 구체적으로, journal_mode를 WAL 모드로, synchronous를 NORMAL로 설정하여 SQLite의 성능을 최적화했다. 또한, SQLitePragmas 설정을 통해 데이터베이스 연결 설정을 간소화하여 SQLite를 소규모 및 중규모 Rails 애플리케이션에 적합한 데이터베이스로 만들었다.

Kamal을 활용한 컨테이너 기반 배포

저자는 Rails 8에서 Kamal을 활용한 컨테이너 기반 배포 방식을 Heroku와 유사한 경험으로 평가하며, 배포 자동화의 편의성을 강조한다. Kamal은 컨테이너 빌드, 레지스트리 푸시, 서버 풀, 롤백, 그리고 헬스 체크를 자동화하여, 개발자가 인프라 관리의 복잡성에서 벗어나 애플리케이션 개발에 집중할 수 있도록 돕는다. 또한, Kamal-proxy를 통해 제로 다운타임 배포를 지원한다.

Returning To Rails in 2026