Ruby on Rails: 수동으로 프로젝트 기능 구축하기

Ep 2. Adding a Projects model | Rails New Tutorial with Typecraft

작성자
Ruby on Rails Youtube
발행일
2025년 07월 16일

핵심 요약

  • 1 이 비디오는 Ruby on Rails 애플리케이션에 '프로젝트' 기능을 수동으로 추가하는 과정을 안내합니다.
  • 2 Rails의 MVC 아키텍처(모델, 뷰, 컨트롤러)를 이해하고 각 구성 요소가 어떻게 상호 작용하는지 심층적으로 다룹니다.
  • 3 수동 라우트 설정, 컨트롤러 액션 정의, 모델 생성 및 데이터베이스 마이그레이션, 그리고 뷰에서 데이터를 표시하는 방법을 실습합니다.

도입

본 비디오는 기존에 스캐폴딩(scaffolding) 명령어를 통해 빠르게 구축했던 To-Do 애플리케이션 'Doable'에 '프로젝트' 기능을 수동으로 추가하는 과정을 상세히 설명합니다. 이는 단순히 기능을 구현하는 것을 넘어, Rails의 핵심인 MVC(Model-View-Controller) 아키텍처의 각 구성 요소가 어떻게 유기적으로 연결되고 동작하는지를 심층적으로 이해하는 데 목적이 있습니다. 스캐폴딩이 제공하는 편리함을 넘어, 개발자가 직접 각 요소를 구축함으로써 Rails의 컨벤션(convention) 기반의 동작 원리를 명확히 파악할 수 있도록 돕습니다.

애플리케이션에 ‘프로젝트’ 기능을 추가하기 위해 먼저 라우팅(Routing)을 수동으로 정의합니다. config/routes.rb 파일에 get '/projects', to: 'projects#index'와 같이 특정 URL 요청이 어떤 컨트롤러의 어떤 액션으로 매핑될지 명시합니다. 또한, :id와 같은 동적 세그먼트를 활용하여 get '/projects/:id', to: 'projects#show', as: :project와 같이 개별 프로젝트 상세 페이지로 연결되는 라우트도 설정합니다. 이어서 컨트롤러(Controller)를 생성합니다. bin/rails generate controller projects 명령을 통해 ProjectsController를 만들고, index 액션에서 Project.all을 호출하여 모든 프로젝트 데이터를 가져오며, show 액션에서는 params[:id]를 사용하여 특정 프로젝트를 조회합니다. 여기서 params는 URL이나 폼을 통해 전달되는 요청 데이터를 담는 특별한 객체로, Rails에서 데이터 흐름의 핵심적인 역할을 합니다. 다음으로 모델(Model)을 구축합니다. bin/rails generate model project name:string 명령을 실행하면 Project 모델과 함께 projects 테이블을 생성하고 name 컬럼을 추가하는 마이그레이션 파일이 생성됩니다. bin/rails db:migrate를 통해 데이터베이스 스키마를 업데이트하면, Rails의 명명 규칙에 따라 Project 모델은 자동으로 projects 테이블과 연결됩니다. Rails console을 사용하여 Project.createProject.find 명령으로 실제 데이터를 생성하고 조회하며 모델의 동작을 확인합니다. 마지막으로 뷰(View)를 생성합니다. app/views/projects 디렉토리에 index.html.erbshow.html.erb 파일을 만들고, 컨트롤러에서 설정한 인스턴스 변수(@projects, @project)를 ERB(Embedded Ruby) 문법을 사용하여 HTML에 동적으로 표시합니다. 특히 <% ... %>는 Ruby 코드를 실행하되 결과를 출력하지 않고, <%= ... %>는 코드를 실행하고 그 결과를 HTML에 출력하는 차이점을 설명합니다. 또한, link_to 헬퍼 메서드와 project_path와 같은 라우트 헬퍼를 활용하여 프로젝트 목록에서 개별 프로젝트 상세 페이지로 쉽게 이동할 수 있도록 링크를 구현합니다. 이 과정은 Rails가 어떻게 URL, 컨트롤러, 모델, 뷰를 유기적으로 연결하여 웹 애플리케이션을 구성하는지 명확하게 보여줍니다.

결론

이 비디오를 통해 우리는 Rails의 스캐폴딩에 의존하지 않고, 라우팅, 컨트롤러, 모델, 뷰를 수동으로 구축함으로써 Rails 프레임워크의 깊은 이해를 얻을 수 있었습니다. 특히 MVC 아키텍처 내에서 데이터가 어떻게 흐르고, `params` 객체가 동적 요청을 처리하는 데 어떻게 사용되는지, 그리고 Rails 컨벤션이 개발 효율성을 어떻게 높이는지를 실질적으로 경험했습니다. 또한, `Rails console`을 통한 데이터 조작과 `link_to`, `_path` 헬퍼를 활용한 뷰의 효율적인 구성 방법을 익혔습니다. 다음 비디오에서는 현재의 읽기 전용 기능을 넘어, 사용자가 직접 프로젝트를 생성, 업데이트, 삭제(CRUD)할 수 있는 상호작용적인 기능을 추가하여 애플리케이션의 완성도를 높일 예정입니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!