📏

Convention over Configuration

Rails의 핵심 철학 — 규약이 설정보다 우선

Convention over Configuration(CoC)은 Rails의 가장 중요한 철학입니다. 개발자가 일일이 설정하는 대신, Rails가 정한 규약을 따르면 모든 것이 자동으로 연결됩니다.

핵심 규약들:

  • 모델명 Post → 테이블명 posts (복수형, snake_case)

  • 컨트롤러 PostsController → 파일 app/controllers/posts_controller.rb

  • PostsController#showapp/views/posts/show.html.erb

  • 외래키 user_idbelongs_to :user

  • 기본키는 항상 id, 자동 생성 필드는 created_at, updated_at

Java/Spring 같은 프레임워크에서는 XML이나 어노테이션으로 하나하나 매핑해야 하지만, Rails에서는 이름만 맞추면 됩니다. 이 덕분에 새 프로젝트를 시작할 때 설정에 시간을 쓰지 않고 바로 기능 개발에 집중할 수 있습니다.

단, 규약을 모르면 "마법처럼" 느껴져 디버깅이 어려울 수 있으므로, 규약을 정확히 이해하는 것이 중요합니다.

핵심 포인트

1

rails generate model Post title:string content:text → Post 모델 + posts 마이그레이션 자동 생성

2

rails generate controller Posts index show → PostsController + 뷰 파일 자동 생성

3

resources :posts 한 줄로 7개 RESTful 라우트 자동 생성

4

Post.find(1) → SELECT * FROM posts WHERE id = 1 자동 변환 (테이블명 규약)

5

render 생략 시 action명과 동일한 뷰 파일 자동 렌더링 (show → show.html.erb)

6

규약을 벗어나고 싶을 때만 명시적 설정 (self.table_name = "my_posts")

장점

  • 초기 설정 시간 대폭 절약
  • 코드 일관성 자동 보장
  • 파일 위치만 보면 역할을 알 수 있음
  • 생태계 전체가 같은 규약 사용

단점

  • 규약을 모르면 "마법"처럼 느껴짐
  • 규약에서 벗어나면 오히려 복잡해질 수 있음
  • 다른 프레임워크 경험자에게 처음에 혼란
  • 암묵적 동작이 디버깅을 어렵게 할 수 있음

사용 사례

Rails 프로젝트 초기 설정 최소화 팀 간 코드 일관성 유지 코드 리뷰 시 패턴 예측 가능 새로운 팀원 온보딩 속도 향상