바이브코딩·AI ·
왜 루비온레일즈인가 — React · Next.js · Supabase 대신 레일즈를 고른 이유
React · Next.js · Svelte · Supabase 를 다 써 본 뒤 루비온레일즈로 돌아왔어요. 필요한 게 거의 다 들어 있고, AI 가 헤매지 않는 구조라서예요.
요즘 가장 많이 받는 질문이 있어요. "React · Next.js · Supabase 가 대세라는데 왜 레일즈만 써요?"예요.
저도 React 와 Next.js 를 오래 썼어요. 그다음엔 Svelte 와 Supabase 로 2년쯤 만들었어요. Supabase 는 대중화되기 전부터 영상으로 추천했을 만큼 좋아했고요.
그래도 결국 루비온레일즈로 돌아왔어요. 이유를 한 줄로 줄이면 이래요. 조각을 이어 붙이는 대신, 필요한 게 이미 다 들어 있어서예요.
React · Next.js · Supabase 는 뭐가 아쉬웠나요
먼저 오해가 없었으면 해요. 이 조합은 나쁜 기술이 아니에요. 전 세계 많은 회사가 이걸로 좋은 서비스를 운영하고, 숙련된 개발자에게는 강력한 선택지예요.
아쉬운 건 조립형이라는 점이에요. 화면은 React, 서버 기능은 Next.js, 데이터베이스와 로그인은 Supabase, 결제는 또 다른 서비스예요. 여러 조각을 이어 붙여야 서비스 하나가 완성돼요.
- 대부분의 앱은 React 가 필요 없어요. React 는 화면이 계속 반응해야 할 때 빛나요. 제 경험으로 그런 프로젝트는 전체의 10% 정도예요. 나머지는 HTML 과 약간의 자바스크립트면 충분해요.
- 조각마다 따로 챙겨야 해요. 화면(React)은 백엔드 API 가 따로 필요하고, 데이터베이스 · 로그인 · 파일 저장도 따로 붙여요. 프론트엔드와 백엔드를 두 사람이 나눠 만들면 소통 비용만큼 시간이 더 들어요.
- 보안 설정이 어려워요. Supabase 는 화면에서 데이터베이스에 바로 접근하는 구조라, RLS 라는 권한 설정을 잘못하면 다른 사용자의 데이터가 보여요. 비개발자가 정확히 설정하기 어려운 부분이에요.
레일즈에는 무엇이 들어 있나요
rails new 한 번이면 아래가 전부 들어 있어요. 레일즈 8 기준이에요.
| 필요한 것 | 조립형 (React · Next.js · Supabase 등) | 레일즈 8 |
|---|---|---|
| 화면 | React 컴포넌트 | HTML 뷰 + Hotwire |
| 서버 기능 | Next.js API · Express 따로 | 컨트롤러 (API 가 필요 없어요) |
| 데이터베이스 | Supabase · RDS + Prisma 등 | Active Record + 마이그레이션 |
| 로그인 | NextAuth · Clerk · Supabase Auth | 기본 인증 내장 |
| 파일 업로드 | Supabase Storage · S3 | Active Storage 내장 |
| 오래 걸리는 작업 (AI 호출 등) | Upstash · Redis 따로 | Solid Queue |
| 캐시 | Redis 따로 | Solid Cache |
| 실시간 (채팅 · 알림) | Supabase Realtime | Solid Cable + Turbo |
| 배포 | Vercel | Kamal (내 서버) |
몇 가지만 풀어 볼게요.
- SQL 을 몰라도 데이터를 다뤄요. 레일즈의 모델(Active Record)이 검색 · 정렬 · 조인 같은 SQL 작업을 짧은 함수로 바꿔 줘요.
- 데이터베이스 변경을 기록으로 남겨요. 표를 추가하거나 칸을 바꾸면 마이그레이션 파일로 남고, 배포할 때 실서버에 순서대로 반영돼요. 레일즈는 20년 전부터 이 방식을 써 왔어요. 코드도
create_table :users처럼 읽으면 뜻이 보여요. - 새로고침 없이 바뀐 부분만 갱신해요. 링크를 누르면 달라진 부분만 바꾸고, 마우스를 올리면 다음 화면을 미리 불러와요. 예전에 React 를 쓰던 이유가 레일즈에도 들어 있어요.
- API 를 따로 만들 필요가 없어요. 서버에서 데이터를 가져와 HTML 로 만들어 보내요. 화면과 서버가 JSON 을 주고받다 어긋나는 문제가 없어요.
- AI 호출도 끊기지 않아요. AI 응답은 30초를 넘기기 쉬워요. 레일즈는 오래 걸리는 일을 백그라운드 작업(Solid Queue)으로 돌려서 요청 시간 제한에 걸리지 않아요.
AI 로 만들 때 왜 더 유리한가요
레일즈의 철학은 "설정보다 관례"예요. 자유롭게 설정하게 두는 대신 정해진 규칙을 따르게 해요. 그래서 같은 기능이면 코드가 대체로 한 가지 모양이 돼요.
AI 에게 이게 중요해요.
- 조립형은 자유도가 높아요. 같은 요청에도 AI 가 매번 다른 구조를 내놓을 수 있어요. 오늘은 이 방식으로 로그인을 붙이고, 다음 주에는 다른 방식으로 결제를 붙여요. 몇 달이 지나면 서로 다른 스타일의 코드가 겹겹이 쌓이고, 에러 하나를 고치려 해도 같은 자리를 맴돌아요.
- 레일즈는 정해진 자리가 있어요. AI 가 새 구조를 발명하지 않고 검증된 자리에 코드를 채워 넣어요. 지시가 조금 어설퍼도 결과물이 제자리에 얹혀요.
- AI 가 배운 자료가 많아요. 20년 넘게 쌓인 코드와 문서가 있어서 AI 가 잘 알아요.
레일즈를 만든 DHH 도 비슷한 말을 했어요. 20년 전 레일즈 백엔드 코드와 지금 코드가 거의 같아서, 그때 제대로 배운 사람은 20년 동안 그 지식을 써먹었대요. 반면 자바스크립트 도구는 몇 년마다 바뀌어서 배운 게 자산으로 남지 않았다고요. 그리고 AI 에이전트가 코드를 짜는 지금이 레일즈를 쓰기에 가장 좋은 때라고 했어요.
다만 AI 는 20줄이면 될 일을 1,200줄로 만들기도 해요. 잘 정돈된 구조 위에서 AI 를 써야 그 속도가 내 것이 돼요.
실제로 얼마나 빨라지나요
에이전시를 운영할 때 레일즈를 주력으로 썼어요. 다른 기술로 한 달 걸릴 일을 레일즈로는 일주일이면 만들었어요. 그래서 직원 급여를 업계 평균보다 1천만 원가량 높게 주고도 이익을 더 많이 냈어요.
요즘은 이런 일도 자주 겪어요. 바이브코딩으로 두세 달 만든 서비스를 레일즈로 다시 만들면 4시간 만에 거의 다 만들어지는 경우가 많아요. 로그인 · 결제 · 관리자 화면까지 실서버에 올라가요. 속임수는 없어요.
- 두세 달이 헛수고가 아니었어요. 어떤 기능과 화면이 필요한지 이미 검증돼서 헤매는 시간이 없어요.
- 대부분이 내장돼 있어요. 조각을 이어 붙이는 시간이 들지 않아요.
- 규칙이 명확해요. AI 가 가장 빠르게 달릴 수 있는 길이에요.
서버 비용은 얼마나 드나요
레일즈 8부터 SQLite 를 실서버에서도 쓸 수 있게 됐고, 캐시 · 백그라운드 작업 · 실시간 기능도 데이터베이스 위에서 돌아요. 예전처럼 앱 서버 · 데이터베이스 서버 · Redis 서버를 따로 둘 필요 없이 서버 한 대면 돼요.
- 이 사이트와 같은 기준이면 DigitalOcean 에서 월 21달러 안팎이에요. 서버 12달러 · 일일 백업 3.6달러 · 파일 저장소 5달러예요. 2026년 9월 기준이에요.
- 사용자가 늘면 서버를 한 단계씩 올리면 돼요. 여러 대로 나눠야 할 만큼 커지면 그때 PostgreSQL 로 옮기면 되고, 레일즈는 연결 설정만 바꾸면 돼요.
- 제 고객사 중에 Vercel 과 Supabase 에 매달 1천만 원 넘게 내던 곳이 있었어요. 레일즈로 만들었다면 서버비가 100만 원도 안 들었을 거라고 봐요.
스타트업이 망하는 가장 큰 이유는 서버가 못 버텨서가 아니라 시장에 수요가 없어서라는 조사가 있어요. 처음부터 큰 인프라를 준비하기보다, 가장 단순하게 시작하고 필요할 때 키우는 게 나아요.
보안은 괜찮나요
레일즈는 SQL 인젝션 · 크로스사이트 스크립팅 같은 흔한 공격을 기본으로 막아 줘요. 서버 중심 구조라 "누가 이 데이터를 볼 수 있나"도 서버 한 곳에서 정해요. 화면에서 데이터베이스에 바로 접근하는 구조보다 실수할 자리가 적어요.
그래도 AI 가 만든 코드는 검수가 필요해요. AI 시대의 개발은 만드는 것보다 검수가 핵심이에요. 저는 자동 테스트에 더해 직접 코드를 봐요.
레일즈가 맞지 않는 경우도 있나요
있어요.
- 화면이 쉬지 않고 움직이는 앱 — 주식 · 코인 차트처럼 실시간 그래픽이 중심이라면 React 나 Svelte 가 나을 수 있어요.
- 처음부터 여러 서버와 높은 이중화가 필요한 서비스 — SQLite 대신 PostgreSQL 로 시작하세요. 레일즈는 그대로 써도 돼요.
- 이미 다른 기술을 잘 쓰는 팀 — 숙련된 팀이 잘 굴리고 있다면 바꿀 이유가 없어요.
헤이제임스는 무엇으로 만드나요
이 사이트(heyjames.ai)도 레일즈 8 · SQLite · Solid Queue · Kamal 로 돌아가요. 고객사 서비스도 레일즈로 만들어요. 특정 플랫폼에 묶이지 않는 표준 코드라서 다른 개발자에게 넘겨도 그대로 읽혀요.
- 만들고 싶은 서비스가 4시간 안에 되는 분량인지 셀프 견적에서 확인할 수 있어요.
- 화면을 같이 보며 만드는 방식은 외주 개발 맡기기 전에에 정리했어요.
- 레일즈 웹을 앱으로 내는 방법은 모바일 앱, 어떤 방식으로 만들까에 있어요.
- 직접 배우고 싶다면 클로드 코드로 레일즈 풀스택 개발 강의가 있어요.
이 글은 유튜브 영상 네 편을 정리한 거예요.
- React, Next.js, Svelte, Supabase 좋다면서 왜 레일즈만 써요?
- 오래된 기술일수록 AI 가 더 잘 짠다 — 레일즈 창시자 DHH 의 AI 시대 통찰
- 바이브코딩으로 3개월 헤맨 서비스, 루비온레일즈로 4시간 만에 재구현했습니다
- Rails 8 이 PostgreSQL 대신 SQLite 를 권하는 진짜 이유
쓴 사람 — 제임스
연세대 컴퓨터과학을 전공한 23년차 개발자예요. 개발 에이전시를 운영하며 스타트업 플랫폼 350개를 만들었고, React · Next.js · Svelte · Supabase 를 거쳐 레일즈로 정착했어요. 3,000명에게 개발과 바이브코딩을 가르쳤어요.