루비 온 레일즈(Ruby on Rails) 기본 문법
루비 온 레일즈(Ruby on Rails, 줄여서 Rails)는 루비(Ruby) 프로그래밍 언어로 작성된 웹 애플리케이션 프레임워크입니다. Rails는 MVC(Model-View-Controller) 아키텍처를 기반으로 하며, 개발자들이 빠르고 효율적으로 웹 애플리케이션을 구축할 수 있도록 도와줍니다. 루비 언어의 기본 문법을 이해하는 것이 Rails를 학습하는 데 필수적입니다. 아래는 루비의 기본 문법에 대한 설명입니다.
1. 변수와 상수
변수: 소문자 또는 언더스코어(_
)로 시작합니다.
name = "John"
age = 30
상수: 대문자로 시작하며, 값을 재할당할 수 있지만 경고가 발생합니다.
PI = 3.14159
2. 데이터 타입
문자열(String)
greeting = "Hello, World!"
숫자(Number)
integer = 42
float = 3.14
배열(Array)
fruits = ["apple", "banana", "cherry"]
해시(Hash): 키-값 쌍으로 이루어진 데이터 구조.
person = { name: "John", age: 30 }
심볼(Symbol): 불변의 문자열과 유사합니다.
:status
3. 제어 구조
조건문
if age > 18
puts "You are an adult."
elsif age == 18
puts "You just became an adult."
else
puts "You are a minor."
end
삼항 연산자
message = age >= 18 ? "Adult" : "Minor"
반복문
3.times do |i|
puts "Iteration #{i}"
end
fruits.each do |fruit|
puts fruit
end
4. 메서드 정의
메서드는 def
키워드로 정의합니다.
def greet(name)
"Hello, #{name}!"
end
puts greet("Alice") # 출력: Hello, Alice!
5. 클래스와 객체
루비는 객체 지향 언어로, 클래스를 정의하고 객체를 생성할 수 있습니다.
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
def introduce
"My name is #{@name} and I am #{@age} years old."
end
end
person = Person.new("John", 30)
puts person.introduce
6. 모듈(Module)
모듈은 메서드와 상수를 그룹화하는 데 사용됩니다.
module MathUtils
def self.square(x)
x * x
end
end
puts MathUtils.square(5) # 출력: 25
7. 블록(Block)
블록은 do...end
또는 { }
로 정의됩니다.
[1, 2, 3].each { |num| puts num }
8. 예외 처리
begin...rescue...end
를 사용해 예외를 처리합니다.
begin
result = 10 / 0
rescue ZeroDivisionError => e
puts "Error: #{e.message}"
end
9. Rails에서 자주 사용되는 문법
모델에서의 관계 정의
class User < ApplicationRecord
has_many :posts
end
class Post < ApplicationRecord
belongs_to :user
end
라우팅 정의
Rails.application.routes.draw do
resources :posts
end
컨트롤러에서의 액션 정의
class PostsController < ApplicationController
def index
@posts = Post.all
end
end
뷰에서의 데이터 출력
<% @posts.each do |post| %>
<p><%= post.title %></p>
<% end %>
10. Rails의 철학
- CoC(Convention over Configuration): 관례를 따르면 설정을 최소화할 수 있습니다.
- DRY(Don't Repeat Yourself): 중복을 피하고 코드를 재사용합니다.
루비 온 레일즈는 루비 언어의 간결함과 표현력을 기반으로 하여 빠르게 웹 애플리케이션을 개발할 수 있도록 설계되었습니다. 루비의 기본 문법을 익히고 나면, Rails 프레임워크를 더 쉽게 이해하고 활용할 수 있습니다. 😊