- Rails 8과 Vite 통합을 둘러싼 두 개발자의 대화를 통해, 불필요하게 복잡해진 현대 웹 개발 환경을 풍자함
- 한명은 Vite, React, Babel, Tailwind, Docker, Husky 등 수많은 도구를 추가하며 ‘모던’ 스택이라 주장
- 반면 다른 사람은 아무 설정 없이 기본 Rails만으로 즉시 실행되는 앱을 보여주며 단순함의 효용을 드러냄
- 복잡한 툴 체인에 의존하는 현 상황을 비꼬며, ‘그냥 Rails를 써라’ 는 메시지를 강조하며 단순함의 미덕을 되돌아보게 함
- Rails의 본래 목적이었던 생산성과 일관성, 개발의 즐거움이 잊혀지고 있음을 지적
“Just F#$%^& use Rails”
원문 대화 번역
Kevin: 야, Rails 8용 Vite 써봤어? 엄청 빨라.
John: 들어는 봤어. 빌드 도구잖아? Rails에 이미 그런 거 있었던 거 아니야?
Kevin: 있었지. 근데 Vite는 좀 더 현대적이야. Node랑 npm 설치하고 몇 개 스크립트 설정해야 하지만, 그럴 가치가 있어.
John: 잠깐, Rails가 이제 Node가 필요해?
Kevin: 응, React 쓰려면 그렇지. 요즘 다 React 쓰잖아.
John: Rails에 그런 거 있지 않았나?
Kevin: 있었는데, 이제는 React Refresh랑 같이 Vite 써야 해. 그러면 컴포넌트가 즉시 새로고침돼. TypeScript 쓰려면 그 설정도 해줘야 하고.
John: 듣기만 해도 복잡하네.
Kevin: 아니야, 별거 아냐. Babel 설치하고 .babelrc 설정하고, vite-plugin-ruby 추가하고, 스타일은 PostCSS 써야지.
John: PostCSS?
Kevin: 그래. 그리고 당연히 Tailwind도 써야지 — 농담 아니고 CSS 한땀한땀 직접 쓰고 싶지는 않을거 아냐.
John: 당연하지.
Kevin: 그다음엔 ESLint랑 Prettier로 코드 정리하고, 커밋 전에 Husky로 훅도 걸면 완벽해.
John: 그럼 Vite, React, Babel, PostCSS, Tailwind, ESLint, Prettier, Husky. 그게 다야?
Kevin: 거의 다야. 서버 사이드 렌더링까지 하려면 Next.js나 Remix 써야지.
John: 잠깐, 우리 아직 Rails 얘기하는 거 맞지?
Kevin: 맞아. 요즘은 하이브리드 스택이 대세잖아! JS 프레임워크 없이 반응형 컴포넌트 쓰고 싶으면 StimulusReflex나 Hotwire도 괜찮아.
John: StimulusReflex? 마블 캐릭터 이름 같은데.
Kevin: 하하, 진짜야. 실시간 업데이트용이야. 근데 ActionCable 설정해야 하고, Redis도 필요해.
John: Redis?
Kevin: 그래, pub/sub 레이어가 필요하거든. 걱정 마, Docker 컨테이너 하나 더 띄우면 돼.
John: Docker도 써야 해?
Kevin: 그럼. 의존성 분리하려면 필수지. 완전한 환경 재현하려면 Docker Compose랑 Fly.io 배포, GitHub Actions로 파이프라인도 돌려야지.
John: 그거... 꽤 복잡한데.
Kevin: 그냥 현대적인 웹 개발이야, 친구. 단순하지. 너는 뭐 해?
John: 그냥 만져 보고 있어.
(John이 명령어 하나를 실행한다. 앱이 즉시 부팅된다. 폼도 동작하고, 로딩도 빠르고, 탐색도 번개처럼 빠르다.)
Kevin: 와, 꽤 복잡해 보이는데. 스택 뭐 써?
John: 그냥(Vanilla) Rails.
Just F#$%^& use Rails.