- 밴드의 세트리스트 관리 앱(setlist.rocks) 을 만들며 오랜만에 Ruby on Rails 개발의 즐거움을 재발견함
- 최신 Rails 8은 전통적인 MVC 구조를 유지하면서도 Hotwire(Stimulus·Turbo) 기반의 “no-build” 프런트엔드, Solid Cache/Queue/Cable 등으로 현대화됨
-
SQLite가 기본 설정만으로도 실서비스에 적합할 만큼 최적화되었고, Kamal 배포 도구로 컨테이너 기반 무중단 배포가 간단해짐
- Rails의 “관례보다 설정” 철학과 풍부한 gem 생태계 덕분에 아이디어에서 프로토타입까지 빠르게 구현 가능함
- Ruby와 Rails의 인기는 예전보다 줄었지만, 여전히 성숙하고 일관된 OSS 프레임워크로서 개발의 즐거움을 제공함
사이드 프로젝트와 Rails로의 회귀
- 밴드의 세트리스트와 곡 노트를 관리하기 위해 웹앱을 직접 개발, 기존 스프레드시트나 채팅보다 효율적인 방식 추구
- 개발 과정에서 Rails의 단순함과 생산성을 다시 체감, 최근의 복잡한 웹 생태계에 비해 “순수한 개발의 즐거움”을 느꼈다고 언급
- Ruby는 여전히 자연스러운 문법과 표현력으로 사고를 코드로 옮기기 쉬운 언어로 평가됨
- Stack Overflow 2025 조사에 따르면 Ruby와 Rails의 인기는 하락했지만, 개인 프로젝트에서는 여전히 선호
Rails 8의 변화와 프런트엔드
- Rails 8은 기존 MVC 구조를 유지하면서도 Hotwire(Stimulus·Turbo) 기반의 프런트엔드 통합 제공
- Turbo는 링크 클릭·폼 제출을 가로채 SPA 수준의 반응성을 제공
- Stimulus는 필요한 부분에만 JS 동작을 추가해 최소한의 자바스크립트 작성으로 인터랙티브 UI 구현 가능
-
Importmap 도입으로 Webpack, npm 없이 JS 라이브러리를 CDN에서 직접 불러올 수 있음
- AI 도구를 활용해 UI를 생성했지만, 창작과 코드의 예술성 사이에서 고민을 드러냄
개발 워크플로와 생산성
- Rails의 “관례보다 설정” 철학으로 모델·라우팅·컨트롤러·뷰를 빠르게 구성 가능
- 예시로 Tag 모델 생성, RESTful 라우팅 자동화, JSON 응답 처리 과정을 시연
-
ERB 템플릿과 라이브 리로드로 빠른 프로토타이핑 가능
- 풍부한 gem 생태계로 CSV, PDF 등 다양한 기능을 손쉽게 통합 가능
백엔드 개선: Solid* 시리즈와 SQLite
-
Solid Cache/Queue/Cable이 Rails 8에 기본 포함되어 Redis 없이 캐시·잡큐·웹소켓 처리 가능
- Solid Cache는 DB 기반 캐싱으로 RAM 절약 및 단순화
- Solid Queue는 DB 기반 백그라운드 작업 관리, SOLID_QUEUE_IN_PUMA=1 설정만으로 실행
- Solid Cable은 DB 기반 Action Cable 어댑터로 실시간 기능 지원
-
SQLite는 database.yml의 pragmas: 설정으로 WAL 모드, NORMAL 동기화 등 최적화가 기본 적용
- 별도 DB 서버 없이도 소규모 프로덕션 환경에서 실용적 사용 가능
배포 자동화와 Kamal
- 과거 Capistrano·Ansible 기반 배포의 복잡함을 언급하며, Kamal을 Rails 8의 기본 배포 도구로 소개
- 컨테이너 빌드→푸시→서버 배포→헬스체크→무중단 전환 과정을 자동화
-
kamal-proxy가 트래픽 전환과 SSL 처리를 담당
-
.kamal/secrets 파일로 환경 변수 기반 보안 비밀 관리 지원
- GitLab CI와 연동해 git push만으로 배포가 가능, 과거 Heroku의 단순함을 재현
인증과 기타 기능
- Rails 8은 내장 인증 생성기(auth generator) 를 제공해 Devise보다 단순한 인증 시스템 구축 가능
- Devise는 여전히 풍부한 기능과 문서로 유용하지만, Rails 기본 인증의 단순함도 매력으로 평가
Rails 생태계의 현재와 지속성
- Ruby와 Rails의 인기는 감소했으나, Shopify·Basecamp·SoundCloud·GitHub 등 주요 서비스가 여전히 사용
- 많은 gem이 유지보수 단계에 있지만, Rails는 매년 꾸준한 릴리스 주기를 유지
- “새로운 개발자층 유입은 줄었지만, 여전히 즐겁게 개발할 수 있는 프레임워크”로 평가
결론
- Rails는 최신 트렌드와 거리를 두었지만, 개발의 즐거움과 단순함을 되찾게 해주는 도구로 강조
- 인기보다는 만드는 즐거움과 창의성을 중시하며, “한 번 다시 Rails를 시도해보라”는 메시지로 마무리