Heroku로 Rails 앱 배포하기 — 빠르고 간단한 클라우드 배포

2025. 7. 31. 09:00·Ruby On Rails
728x90
반응형

Rails를 로컬에서만 실행하는 건 반쪽짜리 개발입니다.
진짜 세상에 보여주기 위해선 클라우드에 배포가 필요하죠.
오늘은 가장 쉽고 빠른 배포 플랫폼인 Heroku를 이용해 Rails 앱을 배포하는 과정을 정리해볼게요.

단 10분이면 여러분의 앱을 전 세계 누구나 볼 수 있게 됩니다. 준비되셨나요? 🚀


🔧 1. Heroku CLI 설치

먼저 [Heroku 공식 CLI](https://devcenter.heroku.com/articles/heroku-cli)를 설치합니다. macOS, Windows, Linux 모두 지원합니다.

$ brew tap heroku/brew && brew install heroku
$ heroku login

로그인 후 브라우저가 열리면 Heroku 계정으로 인증해주세요.


🗃️ 2. 앱 준비 (필수 수정)

1) Gemfile 수정


gem 'pg', '>= 1.1'      # PostgreSQL 사용
gem 'rails_12factor', group: :production

sqlite3는 Heroku에서 지원하지 않기 때문에 PostgreSQL로 바꿔야 해요.

2) production 환경 설정


# config/environments/production.rb
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?

3) database.yml 수정


# config/database.yml
production:
  url: <%= ENV['DATABASE_URL'] %>

4) master key 설정


$ EDITOR="code --wait" bin/rails credentials:edit

그리고 config/master.key는 반드시 Git에 커밋하지 말고 heroku config:set으로 등록해야 합니다.


🚀 3. Heroku 앱 생성 및 배포


$ heroku create my-rails-app-name

자동으로 https://my-rails-app-name.herokuapp.com 주소가 만들어집니다.


$ git push heroku main

배포가 끝나면 바로 앱을 열어볼 수 있어요:


$ heroku open

🗃️ 4. DB 마이그레이션


$ heroku run rails db:migrate

마이그레이션을 실행하지 않으면 테이블이 생성되지 않아 오류가 날 수 있어요.


📁 5. 정적 자산 컴파일 (옵션)

Rails 7+에서는 jsbundling-rails 혹은 importmap-rails을 사용하는 경우 빌드 작업이 필요할 수 있어요.


$ heroku buildpacks:add --index 1 heroku/nodejs
$ heroku buildpacks:add --index 2 heroku/ruby

그리고 package.json에 "heroku-postbuild" 스크립트를 넣어줍니다.


"scripts": {
  "heroku-postbuild": "esbuild app/javascript/*.* --bundle --outdir=app/assets/builds"
}

🔐 6. 환경변수 등록


$ heroku config:set RAILS_MASTER_KEY=your-master-key

Mailer 설정이나 API 키도 이 방식으로 등록할 수 있어요.


🎯 마치며

Heroku는 개발자에게 정말 친절한 배포 플랫폼입니다.
기본적인 설정만 마치면 Git push 한 번으로 배포가 끝나니까요.
프로토타입, MVP, 사이드 프로젝트 등에 아주 잘 어울리며, 무료 티어도 존재해 부담 없이 시작할 수 있어요.

728x90
반응형

'Ruby On Rails' 카테고리의 다른 글

Capistrano로 자동 배포 파이프라인 만들기  (2) 2025.08.05
Rails 앱 보안 점검 — CSRF, SQL Injection 막기  (2) 2025.07.29
메일 발송 기능 구현 — ActionMailer와 Gmail SMTP 연동하기  (3) 2025.07.24
댓글 기능 추가하기 — 모델 연관관계 완전 정복  (4) 2025.07.22
관리자 페이지 만들기 — RailsAdmin vs ActiveAdmin  (0) 2025.07.17
'Ruby On Rails' 카테고리의 다른 글
  • Capistrano로 자동 배포 파이프라인 만들기
  • Rails 앱 보안 점검 — CSRF, SQL Injection 막기
  • 메일 발송 기능 구현 — ActionMailer와 Gmail SMTP 연동하기
  • 댓글 기능 추가하기 — 모델 연관관계 완전 정복
코드를 걷는 사람
코드를 걷는 사람
devwanderer 님의 블로그 입니다.
  • 코드를 걷는 사람
    터미널 밖으로 나온 개발자
    코드를 걷는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • Flutter
        • Flutter 게시판 앱 만들기
        • Flutter 뉴스 앱 만들기
        • Flutter 메모 앱 만들기
        • Flutter 캘린더 앱 만들기
        • Flutter 날씨 앱 만들기
      • Next.js
      • Ruby On Rails N
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    뉴스앱
    Flutter
    코드를걷는사람
    rails보안
    flutter기초
    정적사이트
    다크모드
    날씨앱
    ActiveRecord
    flutter상태관리
    메모앱
    UIUX
    모바일앱개발
    table_calendar
    RubyOnRails
    openweather
    flutter개발
    flutter디자인
    flutterui
    감성앱
    북마크기능
    fluttertips
    UI디자인
    flutter앱개발
    개발블로그
    캘린더앱
    Nextjs
    flutter게시판
    백엔드개발
    Firebase
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
코드를 걷는 사람
Heroku로 Rails 앱 배포하기 — 빠르고 간단한 클라우드 배포
상단으로

티스토리툴바