레일즈의 실제 이야기: 20년간의 설계와 결정

RailsConf 2025 The Rails Story: Two Decades of Design and Decisions by Ratnadeep Deshmane

작성자
jeff
발행일
2025년 08월 15일

핵심 요약

  • 1 Ruby on Rails는 PHP와 Java의 문제점을 해결하고 개발자 행복을 최우선으로 하여 DHH가 Basecamp에서 추출한 프레임워크입니다.
  • 2 컨벤션 오버 컨피규레이션, DRY, MVC, Active Record, REST 등 핵심 원칙과 패턴은 XML 헬과 같은 당시의 문제점을 해결하기 위해 채택되었습니다.
  • 3 MERB와의 통합으로 모듈성을 강화하고, Strong Parameters 도입으로 보안을 개선하는 등 Rails는 지속적으로 발전하며 개발 생태계를 혁신했습니다.

도입

본 발표는 Ruby on Rails의 20년간의 설계 및 결정 과정을 "The Real Story"라는 주제로 심층적으로 탐구합니다. 발표자는 Ruby on Rails가 탄생하게 된 배경과 핵심 원칙들이 어떻게 형성되었는지, 그리고 이 과정에서 개발자 경험과 행복이 어떻게 중요한 가치로 작용했는지에 초점을 맞춰 설명합니다. 특히 DHH(David Heinemeier Hansson)가 Ruby를 선택하고 Rails를 개발하게 된 초기 동기와 당시 웹 개발 환경의 문제점들을 극복하려 했던 노력을 조명하며, 프레임워크의 근간을 이루는 철학적 기반을 이해하는 데 중점을 둡니다.

Ruby on Rails: 20년간의 설계와 결정

Ruby의 선택 배경

  • 문제 인식: DHH는 2003-2004년 PHP와 Java(XML 헬)의 비효율성에 한계를 느꼈습니다.
  • Ruby 채택: Martin Fowler와 Dave Thomas의 영향으로, 개발자 행복을 최우선하는 Ruby를 Basecamp 프로젝트에 선택했습니다.

Rails의 탄생 및 철학

  • 프레임워크 추출: Ruby로 Basecamp 개발 시 툴링이 없어 DHH가 직접 구축했고, 이 경험을 공유하고자 Rails를 추출하여 오픈 소스화했습니다.
  • 핵심 철학: “최소한의 놀라움”과 “더 큰 미소”를 지향하며, array.42 같은 기능으로 개발자 편의성을 강조합니다.

Rails의 주요 설계 원칙

  • 명칭: “Rails”는 미리 정의된 의견을 가진 “가드레일”을 의미하며, 도메인 문제로 “Ruby on Rails”가 되었습니다.
  • 컨벤션 오버 컨피규레이션 (CoC): XML 헬의 대안으로, 프레임워크가 지능적인 기본값을 제공합니다 (예: User 클래스 -> users 테이블).
  • DRY (Don’t Repeat Yourself): “The Pragmatic Programmer”에서 영감을 받아 지식의 단일 표현을 강조합니다.
  • MVC 패턴: 당시 확립된 패턴으로, CoC와 일치하여 코드 구성의 반복적인 결정을 제거했습니다.
  • Active Record ORM: Martin Fowler의 패턴에서 유래, 객체가 DB 작업에 적극 참여함을 강조하며 ActiveAction 접두사로 컴포넌트를 구분합니다.
  • Omakase (おまかせ) 접근: DHH의 시간 제약 속 “적은 노력으로 많은 것을 얻는” 정신으로, Rails는 “배터리 포함” 접근 방식을 취한 선구적 프레임워크입니다.
  • RESTful 아키텍처: Rails 2.0에 도입되어 단순성, 일관성, 발견 용이성, 도메인 모델링 및 API 개발 용이성을 제공합니다.

Rails의 발전과 주요 기능

  • 모듈성 및 MERB 병합: Rails 3.0은 MERB 병합을 통해 모듈성을 강화하고 성능을 개선했습니다.
  • Strong Parameters: 2012년 Mass Assignment 보안 취약점 해결을 위해 도입, 허용된 파라미터만 명시적으로 처리하여 보안을 강화했습니다.
  • Bundler: 초기 Gem 의존성 관리의 복잡성을 해결, 애플리케이션별 의존성 해결 및 Gemfile 관리를 가능하게 하여 개발 환경을 크게 개선했습니다.

결론

Ruby on Rails는 지난 20년간 개발자 행복을 핵심 가치로 삼아, 당시 웹 개발의 고질적인 문제점들을 해결하며 지속적으로 진화해왔습니다. DHH의 통찰력과 초기 커뮤니티의 노력 덕분에 Rails는 컨벤션 오버 컨피규레이션, DRY, MVC, Active Record, REST 등의 강력한 원칙들을 기반으로 "배터리 포함" 프레임워크의 선두 주자가 될 수 있었습니다. MERB와의 통합을 통한 모듈성 강화, Strong Parameters 도입을 통한 보안 개선, 그리고 Bundler를 통한 의존성 관리 혁신 등은 Rails가 단순한 웹 프레임워크를 넘어 개발 생태계 전반에 지대한 영향을 미쳤음을 보여줍니다. 이 강연은 Rails가 어떻게 오늘날의 견고하고 효율적인 개발 도구로 자리매김했는지에 대한 귀중한 역사적 맥락과 철학적 통찰을 제공합니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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