Rails의 라우팅 시스템 — config/routes.rb 제대로 이해하기

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

Ruby on Rails에서 라우팅은 웹 애플리케이션의 입구 역할을 합니다. 브라우저에서 /posts와 같은 URL을 입력했을 때 어떤 컨트롤러의 어떤 액션이 실행되어야 하는지를 결정하죠. 이 모든 것은 config/routes.rb 파일에서 이루어집니다. 이번 글에서는 Rails의 라우팅 시스템을 구조적으로 이해하고, 실전 예제와 함께 config/routes.rb 파일을 능숙하게 다루는 방법을 배워봅니다.


🚦 기본 구조

# config/routes.rb
Rails.application.routes.draw do
  resources :posts
end

resources :posts는 단 한 줄로 다음과 같은 7개의 RESTful 라우트를 자동 생성합니다:

HTTP Verb URL Controller#Action
GET /posts posts#index
GET /posts/new posts#new
POST /posts posts#create
GET /posts/:id posts#show
GET /posts/:id/edit posts#edit
PATCH /posts/:id posts#update
DELETE /posts/:id posts#destroy

🔍 단일 라우팅: get, post, patch, delete

단순한 라우트를 만들고 싶을 때는 이렇게 사용합니다:

get '/about', to: 'pages#about'
post '/contact', to: 'pages#contact'

GET /about 요청이 오면 PagesController의 about 액션이 실행됩니다.


🧱 루트 설정

root 'home#index'

이 설정은 메인 도메인(/)에 접속했을 때 HomeController의 index 액션이 실행되도록 합니다.


🌱 중첩 라우팅 (Nested Resources)

resources :posts do
  resources :comments
end

위 코드로 다음과 같은 중첩된 URL 구조가 만들어집니다:

  • /posts/:post_id/comments
  • /posts/:post_id/comments/:id

이는 댓글이 특정 게시글에 종속되어 있다는 것을 의미하죠.


⚙️ only / except 옵션

필요한 라우트만 정의하고 싶다면 only 또는 except를 활용하세요:

resources :posts, only: [:index, :show]
resources :posts, except: [:destroy]

📌 커스텀 멤버/컬렉션 라우트

resources :posts do
  member do
    get 'preview'
  end

  collection do
    get 'archive'
  end
end
  • /posts/:id/preview → 개별 포스트의 미리보기
  • /posts/archive → 전체 포스트 중 보관글 보기

🔎 라우트 확인하기

$ bin/rails routes

이 명령어를 입력하면 현재 설정된 모든 라우트와 연결된 컨트롤러 액션을 한눈에 볼 수 있습니다.


🎯 마치며

routes.rb는 단순한 URL 매핑 이상의 의미를 갖습니다. 애플리케이션의 전체 구조와 흐름을 연결짓는 중요한 설계도죠. 오늘 배운 내용을 바탕으로 라우트 파일을 적극적으로 커스터마이징하며 더 유연한 웹앱을 만들어보세요!

728x90
반응형

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

Rails에서의 MVC 구조 진짜 제대로 파보기  (2) 2025.07.08
ActiveRecord로 데이터 다루기 — CRUD의 정석  (0) 2025.07.07
첫 번째 Rails 앱 만들기 — Blog 프로젝트로 배우는 MVC  (0) 2025.07.05
RoR 개발환경 구축 — macOS, Windows에서 시작하기  (1) 2025.07.04
Ruby on Rails란 무엇인가? — 장인의 웹 프레임워크 입문기  (2) 2025.07.03
'Ruby On Rails' 카테고리의 다른 글
  • Rails에서의 MVC 구조 진짜 제대로 파보기
  • ActiveRecord로 데이터 다루기 — CRUD의 정석
  • 첫 번째 Rails 앱 만들기 — Blog 프로젝트로 배우는 MVC
  • RoR 개발환경 구축 — macOS, Windows에서 시작하기
코드를 걷는 사람
코드를 걷는 사람
devwanderer 님의 블로그 입니다.
  • 코드를 걷는 사람
    터미널 밖으로 나온 개발자
    코드를 걷는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Flutter
        • Flutter 게시판 앱 만들기
        • Flutter 뉴스 앱 만들기
        • Flutter 메모 앱 만들기
        • Flutter 캘린더 앱 만들기
        • Flutter 날씨 앱 만들기
      • Next.js
      • Ruby On Rails
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
코드를 걷는 사람
Rails의 라우팅 시스템 — config/routes.rb 제대로 이해하기
상단으로

티스토리툴바