바이브코딩·AI

바이브코딩·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시간 만에 거의 다 만들어지는 경우가 많아요. 로그인 · 결제 · 관리자 화면까지 실서버에 올라가요. 속임수는 없어요.

  1. 두세 달이 헛수고가 아니었어요. 어떤 기능과 화면이 필요한지 이미 검증돼서 헤매는 시간이 없어요.
  2. 대부분이 내장돼 있어요. 조각을 이어 붙이는 시간이 들지 않아요.
  3. 규칙이 명확해요. 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 로 돌아가요. 고객사 서비스도 레일즈로 만들어요. 특정 플랫폼에 묶이지 않는 표준 코드라서 다른 개발자에게 넘겨도 그대로 읽혀요.

이 글은 유튜브 영상 네 편을 정리한 거예요.


쓴 사람 — 제임스
연세대 컴퓨터과학을 전공한 23년차 개발자예요. 개발 에이전시를 운영하며 스타트업 플랫폼 350개를 만들었고, React · Next.js · Svelte · Supabase 를 거쳐 레일즈로 정착했어요. 3,000명에게 개발과 바이브코딩을 가르쳤어요.