7P by neo 2달전 | ★ favorite | 댓글 2개
  • 휴가 중에 새로운 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는 죽지 않았으며, 그 어느 때보다 더 나아졌음. 올해 새로운 것을 만들기 위해 사용해보길 권장함.

요즘 sqlite 글이 많이 보이더니, 이젠 sqlite가 전부 다, 까지 왔네요
고전의 재유행이라고 해야할까요

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의 새로운 기능을 발견할 때마다 놀라움과 기쁨을 느낌
    • 자신은 그런 감정을 느끼지 못해 부러움을 느낌