Convention over Configuration
Rails의 핵심 철학 — 규약이 설정보다 우선
Convention over Configuration(CoC)은 Rails의 가장 중요한 철학입니다. 개발자가 일일이 설정하는 대신, Rails가 정한 규약을 따르면 모든 것이 자동으로 연결됩니다.
핵심 규약들:
모델명
Post→ 테이블명posts(복수형, snake_case)컨트롤러
PostsController→ 파일app/controllers/posts_controller.rb뷰
PostsController#show→app/views/posts/show.html.erb외래키
user_id→belongs_to :user기본키는 항상
id, 자동 생성 필드는created_at,updated_at
Java/Spring 같은 프레임워크에서는 XML이나 어노테이션으로 하나하나 매핑해야 하지만, Rails에서는 이름만 맞추면 됩니다. 이 덕분에 새 프로젝트를 시작할 때 설정에 시간을 쓰지 않고 바로 기능 개발에 집중할 수 있습니다.
단, 규약을 모르면 "마법처럼" 느껴져 디버깅이 어려울 수 있으므로, 규약을 정확히 이해하는 것이 중요합니다.
핵심 포인트
rails generate model Post title:string content:text → Post 모델 + posts 마이그레이션 자동 생성
rails generate controller Posts index show → PostsController + 뷰 파일 자동 생성
resources :posts 한 줄로 7개 RESTful 라우트 자동 생성
Post.find(1) → SELECT * FROM posts WHERE id = 1 자동 변환 (테이블명 규약)
render 생략 시 action명과 동일한 뷰 파일 자동 렌더링 (show → show.html.erb)
규약을 벗어나고 싶을 때만 명시적 설정 (self.table_name = "my_posts")
장점
- ✓ 초기 설정 시간 대폭 절약
- ✓ 코드 일관성 자동 보장
- ✓ 파일 위치만 보면 역할을 알 수 있음
- ✓ 생태계 전체가 같은 규약 사용
단점
- ✗ 규약을 모르면 "마법"처럼 느껴짐
- ✗ 규약에서 벗어나면 오히려 복잡해질 수 있음
- ✗ 다른 프레임워크 경험자에게 처음에 혼란
- ✗ 암묵적 동작이 디버깅을 어렵게 할 수 있음