Rails에서 뷰(View)는 사용자의 눈에 직접 닿는 영역이에요.
처음엔 간단했던 뷰 코드도 기능이 추가되면서 점점 길어지고, 복잡해지죠.
하지만 걱정 마세요. Rails는 뷰를 깔끔하게 분리하고 재사용할 수 있는 기술을 이미 다 준비해두었답니다.
이번 글에서는 뷰 정리의 3대 핵심 기술, Partial / Layout / Helper를 집중적으로 살펴볼게요.
🧩 1. Partial — 반복되는 뷰를 잘게 나누자
Partial은 뷰를 재사용 가능한 조각으로 분리하는 기능이에요. 이름 앞에 _
를 붙여서 관리해요.
📁 예시: 댓글 뷰를 부분으로 분리하기
# app/views/comments/_comment.html.erb
<div class="comment">
<strong><%= comment.author %></strong>
<p><%= comment.body %></p>
</div>
# app/views/posts/show.html.erb
<%= render @post.comments %>
Rails는 배열을 넘기면 자동으로 _comment
partial을 여러 번 렌더링해줘요. 똑똑하죠?
🔄 locals로 데이터 넘기기
<%= render partial: "comment", locals: { comment: @comment } %>
🖼 2. Layout — 페이지의 큰 틀을 통일감 있게
레이아웃은 페이지의 공통 구조(헤더, 푸터 등)를 정의하는 뷰입니다. application.html.erb
이 기본이에요.
# app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>My Blog</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
</head>
<body>
<header>공통 헤더</header>
<%= yield %>
<footer>공통 푸터</footer>
</body>
</html>
<%= yield %>
는 각 페이지(view)의 본문이 들어가는 자리입니다.
🖇 특정 컨트롤러에만 다른 레이아웃 적용
class Admin::DashboardController < ApplicationController
layout "admin"
end
app/views/layouts/admin.html.erb
파일을 따로 만들면 됩니다.
🧠 3. Helper — 뷰에서 반복되는 Ruby 로직 분리
Helper는 뷰에 쓰이는 Ruby 로직을 깔끔하게 정리해주는 도우미예요. app/helpers
에 정의합니다.
📌 예시: 날짜 포맷팅
# app/helpers/posts_helper.rb
module PostsHelper
def formatted_date(date)
date.strftime("%Y.%m.%d %H:%M")
end
end
# app/views/posts/show.html.erb
작성일: <%= formatted_date(@post.created_at) %>
복잡한 조건문, 포맷팅, 아이콘 렌더링 등은 helper로 넘겨서 뷰를 더 깔끔하게 만들 수 있어요.
🎯 마치며
깔끔한 뷰 코드는 단순히 예쁜 코드 그 이상입니다.
협업 시 이해하기 쉬운 코드, 유지보수하기 쉬운 구조, 그리고 감성 있는 UI를 만드는 바탕이 되죠.
Partial로 쪼개고, Layout으로 감싸고, Helper로 정리하세요.
이제 여러분의 Rails 앱은 한층 더 정돈된 모습으로 거듭날 거예요 ✨
'Ruby On Rails' 카테고리의 다른 글
Devise로 로그인 기능 구현하기 — 인증은 쉽게, 안전하게 (0) | 2025.07.13 |
---|---|
Rails의 철학과 Convention over Configuration 이해하기 (6) | 2025.07.12 |
Validation & Callback — 데이터의 품질을 지키는 방법 (2) | 2025.07.10 |
마이그레이션과 스키마 변화 — 안전하게 DB 구조 바꾸기 (1) | 2025.07.09 |
Rails에서의 MVC 구조 진짜 제대로 파보기 (2) | 2025.07.08 |