Partial, Layout, Helper — 뷰를 깔끔하게 정리하는 기술

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

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 앱은 한층 더 정돈된 모습으로 거듭날 거예요 ✨

728x90
반응형

'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
'Ruby On Rails' 카테고리의 다른 글
  • Devise로 로그인 기능 구현하기 — 인증은 쉽게, 안전하게
  • Rails의 철학과 Convention over Configuration 이해하기
  • Validation & Callback — 데이터의 품질을 지키는 방법
  • 마이그레이션과 스키마 변화 — 안전하게 DB 구조 바꾸기
코드를 걷는 사람
코드를 걷는 사람
devwanderer 님의 블로그 입니다.
  • 코드를 걷는 사람
    터미널 밖으로 나온 개발자
    코드를 걷는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Flutter
        • Flutter 게시판 앱 만들기
        • Flutter 뉴스 앱 만들기
        • Flutter 메모 앱 만들기
        • Flutter 캘린더 앱 만들기
        • Flutter 날씨 앱 만들기
      • Next.js
      • Ruby On Rails
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
코드를 걷는 사람
Partial, Layout, Helper — 뷰를 깔끔하게 정리하는 기술
상단으로

티스토리툴바