루비

🚀 루비 온 레일즈(Ruby on Rails) 첫걸음: MVC 패턴 이해하고 첫 앱 만들기!

프로그래밍 멘토 2025. 3. 30. 11:43

🎯 이번 시간 학습 목표

  • ✅ 루비 온 레일즈(Ruby on Rails)가 무엇인지 이해합니다.
  • ✅ 웹 개발의 핵심 패턴인 MVC(Model-View-Controller) 구조를 파악합니다.
  • ✅ 내 컴퓨터에 Rails 개발 환경을 준비하고 확인합니다.
  • rails new 명령어로 첫 번째 Rails 애플리케이션을 생성합니다.
  • ✅ Rails 서버를 실행하고 웹 브라우저에서 확인합니다.

안녕하세요, 루비 마법사 여러분! ✨ 드디어 많은 웹 개발자들이 사랑하는 강력한 프레임워크, 루비 온 레일즈(Ruby on Rails)의 세계에 발을 들여놓게 되었습니다! 🚀 Rails는 루비 언어의 생산성과 우아함을 기반으로 웹 애플리케이션을 빠르고 효율적으로 만들 수 있게 도와주는 놀라운 도구입니다. 이번 시간에는 Rails의 기본 개념인 MVC 패턴을 이해하고, 직접 첫 Rails 앱을 만들어보는 시간을 갖겠습니다. 준비되셨나요? 함께 출발해 봅시다!

✨ 오늘 배울 내용 미리보기

명령어/개념 설명 간단 예시
Ruby on Rails 생산성 높은 웹 개발을 위한 루비 기반 프레임워크 웹사이트, API 서버 등을 빠르게 구축
MVC 패턴 애플리케이션 구조를 모델, 뷰, 컨트롤러로 나누는 디자인 패턴 코드 관리 용이성 및 협업 효율 증대
rails -v 설치된 Rails 버전 확인 rails -vRails 7.x.x
rails new [앱 이름] 새로운 Rails 애플리케이션 프로젝트 생성 rails new my_first_app
bin/rails server 개발용 Rails 웹 서버 실행 (보통 rails s로 줄여 씀) bin/rails s → 서버 시작!

📌 Rails 명령어는 프로젝트 폴더 안에서 실행해야 하는 경우가 많으니 현재 위치를 잘 확인하세요!


🤔 MVC 패턴? 그게 뭔가요? 레스토랑 비유로 쉽게 이해하기!

Rails의 핵심 구조인 MVC 패턴은 코드를 역할별로 깔끔하게 나누어 관리하는 방법입니다. 마치 잘 운영되는 레스토랑과 같아요!

  • 모델 (Model - 🧑‍🍳 주방장 & 레시피): 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터베이스와 소통하며 데이터를 가져오거나 저장하고, 데이터의 유효성을 검사하는 등의 '실질적인 일'을 하죠. 레스토랑의 주방장과 레시피처럼, 실제 요리(데이터 처리)를 책임집니다.

  • 뷰 (View - 🍽️ 메뉴판 & 음식 플레이팅): 사용자에게 보여지는 화면(UI)을 담당합니다. 모델로부터 받은 데이터를 웹 페이지 형태로 예쁘게 꾸며 보여주는 역할을 하죠. 레스토랑의 메뉴판이나 잘 차려진 음식 플레이팅처럼, 손님(사용자)에게 정보를 시각적으로 전달합니다.

  • 컨트롤러 (Controller - 🤵 웨이터): 모델과 뷰 사이의 중재자 역할을 합니다. 사용자의 요청(클릭, 입력 등)을 받아서 모델에게 필요한 작업을 지시하고, 그 결과를 다시 뷰에게 전달하여 사용자에게 보여주도록 합니다. 레스토랑의 웨이터처럼, 손님의 주문을 받아 주방에 전달하고, 완성된 요리를 손님에게 가져다주는 역할을 합니다.

이렇게 역할을 나누면 코드가 섞이지 않아 이해하기 쉽고, 유지보수도 훨씬 편리해집니다. 😉 앞으로 Rails를 배우면서 이 MVC 구조가 어떻게 작동하는지 계속 경험하게 될 거예요!

🛠️ Rails 개발 환경 준비 및 첫 앱 생성!

자, 이제 직접 Rails 앱을 만들어 볼 시간입니다! 먼저 Rails가 제대로 설치되어 있는지 확인해 봅시다. 터미널(명령 프롬프트)을 열고 다음 명령어를 입력하세요.


# Rails 버전 확인
rails -v
    

만약 Rails 버전 번호 (예: `Rails 7.1.3`)가 출력된다면 준비 완료! 🎉 아직 설치되지 않았다면, 루비와 Rails 설치 가이드를 참고하여 먼저 설치해주세요. (검색: "Ruby Rails 설치" 또는 공식 가이드 참고)

이제 여러분의 첫 Rails 앱을 만들어 봅시다! 원하는 작업 폴더로 이동한 후, 다음 명령어를 실행하세요. `my_first_app` 대신 원하는 앱 이름을 사용해도 좋습니다.


# 'my_first_app'이라는 이름의 새로운 Rails 프로젝트 생성
rails new my_first_app

# 생성된 프로젝트 폴더로 이동
cd my_first_app
    

잠시 기다리면 Rails가 필요한 파일과 폴더들을 자동으로 생성해줍니다. 마치 마법 같죠? ✨ 생성된 `my_first_app` 폴더 안에는 다양한 파일과 폴더들이 있는데, 지금은 너무 자세히 알 필요는 없어요. 앞으로 차근차근 알아갈 예정입니다!

중요한 폴더 몇 가지만 눈도장 찍어볼까요?

  • app/: 여기가 바로 MVC 패턴의 핵심 코드(모델, 뷰, 컨트롤러)가 위치하는 곳입니다!
  • config/: 애플리케이션 설정 파일들이 모여있어요. (데이터베이스 설정, 라우팅 설정 등)
  • db/: 데이터베이스 관련 파일들이 있습니다. (스키마 정보, 마이그레이션 파일 등)
  • Gemfile: 이 프로젝트가 사용하는 루비 라이브러리(Gem) 목록입니다. (Bundler가 관리)

🚀 Rails 서버 실행하고 눈으로 확인하기!

드디어 첫 Rails 앱을 실행시켜 볼 시간입니다! 프로젝트 폴더(`my_first_app`) 안에서 다음 명령어를 입력하세요.


# Rails 개발 서버 실행 (단축 명령어: rails s)
bin/rails server
    

터미널에 여러 메시지가 출력되면서 서버가 시작될 겁니다. 다음과 같은 메시지가 보이면 성공입니다!


=> Booting Puma
=> Rails 7.x.x application starting in development
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Puma version: x.x.x (ruby x.x.x-p...) ("...")
* Min threads: 5
* Max threads: 5
* Environment: development
* Listening on http://127.0.0.1:3000
* Listening on http://[::1]:3000
Use Ctrl-C to stop
    

이제 웹 브라우저를 열고 주소창에 `http://localhost:3000` 또는 `http://127.0.0.1:3000` 을 입력해보세요. 짜잔! 🎉

"Yay! You’re on Rails!" 라는 반가운 환영 메시지가 보인다면, 여러분은 성공적으로 첫 Rails 애플리케이션을 만들고 실행시킨 것입니다!🥳

서버를 중지하려면 터미널에서 `Ctrl + C` 키를 누르면 됩니다.

🤔 혹시 rails 명령어를 찾을 수 없다는 오류가 발생했나요?

Rails가 제대로 설치되지 않았거나, 터미널이 Rails 설치 경로를 인식하지 못하는 경우일 수 있습니다. Rails 설치 과정을 다시 확인하고, 터미널을 완전히 껐다가 다시 켜보세요. RVM이나 rbenv 같은 루비 버전 관리 도구를 사용한다면, 해당 도구의 설정도 확인해보세요!

🤔 서버 실행 시 Address already in use 오류가 발생했나요?

이미 3000번 포트를 다른 프로그램이 사용하고 있다는 의미입니다. 다른 포트를 사용하여 서버를 실행할 수 있습니다. 예를 들어, 3001번 포트를 사용하려면 다음과 같이 명령어를 입력하세요:

bin/rails server -p 3001

그리고 브라우저에서 `http://localhost:3001` 로 접속하면 됩니다.

✨ Rails 개발 첫걸음, 성공적으로 내딛다! ✨

정말 멋져요! 여러분은 오늘 루비 온 레일즈의 기본 개념인 MVC 패턴을 맛보고, 직접 첫 Rails 애플리케이션을 생성하고 실행하는 값진 경험을 하셨습니다. 🎉 비록 지금은 빈 껍데기 앱이지만, 이것이 앞으로 여러분이 만들어갈 멋진 웹 서비스의 시작점이 될 것입니다.

MVC 패턴은 앞으로 Rails 개발 여정에서 계속해서 마주하게 될 중요한 개념이니, 레스토랑 비유를 떠올리며 각 역할(모델, 뷰, 컨트롤러)을 기억해두시면 좋습니다. 😉

다음 시간에는 오늘 만든 앱에 실제 기능을 추가해볼 거예요! 라우팅, 컨트롤러, 뷰를 직접 만들어 사용자의 요청을 처리하고 간단한 웹 페이지를 보여주는 방법을 배울 예정입니다. 기대되시죠? 🚀 (다음 강의 예고: 🛠️ 1-2: Rails 핵심 기능 익히기 - 라우팅, 컨트롤러, 뷰로 CRUD 구현하기)