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 |