GN⁺: Rails for Everything - 모든 것을 위한 Rails
(literallythevoid.com)-
휴가 중에 새로운 Rails 8 애플리케이션을 구축하고 배포한 후, Rails가 얼마나 훌륭한지, 특히 단일 개발자가 작업하는 작은 프로젝트에 얼마나 적합한지 더욱 명확해졌음
-
가이드가 좋음
-
최신 Getting Started with Rails 가이드는 매우 훌륭함. Ruby 설치에 약간의 어려움이 있지만, 가이드를 처음부터 끝까지 따르면 실제 애플리케이션을 프로덕션 환경에 배포할 수 있음. 이 애플리케이션은 인증, 캐싱, 리치 텍스트, 지속적 통합, 데이터베이스를 포함함.
-
Rails를 처음 접하는 사람에게 이 가이드는 최고의 시작점임.
-
-
SQLite가 전부임
-
SQLite는 훌륭한 도구지만, 이전에는 프로덕션 데이터베이스로 사용하기 위해 추가적인 설정이 필요했음. 그러나 Rails 8에서는 이러한 문제를 해결하여 SQLite가 프로덕션에 적합해졌음.
-
이제 PostgreSQL 서버를 설정할 필요가 없으며, solid cache와 같은 도구 덕분에 Redis도 필요 없음. 모든 것이 Rails와 SQLite 내에서 실행됨.
-
-
쉬운 CI
-
초기 Rails 커밋을 푸시한 후, 'Run failed: CI - main'이라는 이메일을 받았음. 처음에는 악의적인 행위자라고 생각했지만, Rails 8은 기본 CI 구성을 제공하며, Github은 매월 2000분의 무료 액션 사용 시간을 제공함.
-
노력 없이 CI를 사용할 수 있는 것은 매우 멋진 일이며, 2000분의 런타임은 솔로 개발자에게 충분한 시간임.
-
-
인증 생성기
-
Devise는 표준 인증 gem이지만, 복잡성을 숨기고 있으며 초보자에게는 설정이 쉽지 않음. Rails 8은 새로운 인증 생성기를 추가하여 기존 사용자에 대한 간단한 로그인 흐름을 제공함.
-
Rails 콘솔을 통해 사용자를 추가하면 로그인할 수 있음. 생성된 코드는 매우 간단하고 이해하기 쉬움.
-
-
Kamal을 통한 쉽고 빠른 배포
-
배포는 운영팀의 전문가들에게 맡기고 싶음. 새로운 Rails 8 앱을 배포하기 위해
deploy.yml
의 몇 가지 항목을 업데이트하고 몇 가지 지침을 따르면 SSL과 함께 앱을 라이브로 만들 수 있었음. -
CI와 쉬운 배포는 Rails 8의 최고의 부분일 수 있음. 시작 가이드를 사용하는 것만으로도 모범 사례를 장려함.
-
-
결론
- Rails는 죽지 않았으며, 그 어느 때보다 더 나아졌음. 올해 새로운 것을 만들기 위해 사용해보길 권장함.
Hacker News 의견
-
Spring Boot와 Micronaut로 앱을 개발하면서 Rails의 omakase 접근 방식에 감사하게 됨. Rails는 대부분의 웹 앱이 공유하는 문제를 해결해 줌
- Rails의 플래시 메시지와 같은 간단한 기능도 다른 프레임워크에서는 직접 구현하거나 서드파티 솔루션을 찾아야 함
- Rails는 특정 프로젝트에 완벽하지 않을 수 있지만, 대부분의 경우 작동하며 앱이나 기능을 검증한 후 교체할 수 있음
-
Rails와 Django는 훌륭하며, Python으로 중요한 앱을 구축해 옴. Go로 대형 모놀리스를 구축하고 싶지만, Go 커뮤니티는 그 격차를 메우지 못함
- Go는 네트워킹 도구와 CLI를 구축하는 데 좋지만, 전체 스택 웹 앱을 빠르게 구축할 때는 여전히 Rails나 Django를 사용함
- "X는 죽었다"는 Rails에는 적용되지 않음
-
Rails Guides를 처음부터 끝까지 따르면, 인증, 캐싱, 리치 텍스트, CI, 데이터베이스가 포함된 실제 Rails 앱을 프로덕션에 배포할 수 있음
- 작은 스타트업에서는 CI, 캐싱, 인증, '터보' 기능, 테스트 작성에 시간을 쓰지 않기를 권장함
- Turbo는 페이지 로드 시간을 줄여주지만, JavaScript에 익숙하지 않으면 개발 시간이 늘어날 수 있음
- 큰 앱에서는 테스트가 중요하지만, 아이디어를 빠르게 테스트할 때는 나중으로 미룰 수 있음
- 기본적으로 제공되는 기능을 무조건 사용하지 말고, 필요하지 않다면 과감히 제외할 수 있어야 함
-
Rails는 시간이 지남에 따라 발전해 왔으며, Rails Upgrade Guides 덕분에 앱을 버전별로 업그레이드하는 것이 관리 가능했음
- ActiveStorage는 파일 첨부에 큰 개선을 가져왔고, 클라우드 제공자 지원도 포함됨
- Webpacker에서 Import Maps로의 전환이 어려웠지만, 이제는 해결됨
-
오픈 소스 Rails 프로젝트를 운영하며 ActiveStorage가 Rails의 훌륭한 기능임을 확인함
- Dokku를 사용 중이지만 Kamal을 시도해 보고 싶음
- Rails는 계속 발전하고 있으며, Ruby는 점점 빨라지고 있음
-
Ruby를 배우지 않고도 Rails를 사용하고 싶어하는 사람으로서 Django와의 비교에 관심이 있음
- Ruby 설치가 여전히 복잡하다는 의견이 있음
- Jekyll 블로그를 만들면서 Ruby를 다시 시도해 보고 싶어짐
-
Rails + Turbo + Stimulus로 회원 관리 플랫폼을 구축 중이며, Rails로 작업하는 것이 얼마나 쉬운지 계속 놀라움
- ActionText로 리치 텍스트 작성 가능
- ActionStorage로 저장 및 첨부 파일 설정이 쉬움
- ActiveJob으로 작업 큐와 비동기 작업 처리 가능
- Rails 시스템 테스트를 배우고, 거의 설정 없이 헤드리스 브라우저로 앱과 상호작용하는 테스트 작성 가능
-
SQLite를 프로덕션에서 사용해 본 결과, "SQLite가 전부다"라는 말에 동의하지 않음
- 마이그레이션이 번거롭고, 장기적으로 앱에 문제가 생길 수 있음
- SQLite는 기존 열에 NOT NULL 제약 조건을 추가할 방법이 없어, 임시 테이블을 사용해 전체 테이블을 다시 빌드해야 함
-
Ruby와 Rails에 깊은 애정을 가진 사람들과 자신을 구분하는 요소가 있음
- Rails의 새로운 기능을 발견할 때마다 놀라움과 기쁨을 느낌
- 자신은 그런 감정을 느끼지 못해 부러움을 느낌