본 가이드라인은 Ruby on Rails 개발의 다양한 핵심 영역에 걸쳐 구체적인 지침을 제공합니다.
-
코드 스타일 및 구조: 간결하고 관용적인 Ruby 코드 작성을 최우선으로 하며, Ruby on Rails의 공식 컨벤션과 모범 사례를 철저히 따르도록 권고합니다. 객체 지향 및 함수형 프로그래밍 패턴을 적절히 활용하고, 코드 중복을 최소화하여 모듈화를 지향합니다.
user_signed_in?
,calculate_total
과 같이 서술적인 변수 및 메서드 이름을 사용하며, MVC(Model-View-Controller), Concerns, Helpers 등 Rails의 표준 파일 구조를 준수하여 가독성과 유지보수성을 높입니다. -
명명 규칙 및 구문: 파일, 메서드, 변수명에는
snake_case
를 사용하고, 클래스 및 모듈명에는CamelCase
를 적용하여 일관성을 유지합니다. Ruby Style Guide를 따르고,unless
,||=
,&.
와 같은 Ruby의 표현적인 구문을 적극적으로 활용합니다. 문자열 보간이 필요하지 않은 경우에는 단일 따옴표('
)를 사용하여 코드를 간결하게 유지합니다. -
Ruby 및 Rails 활용: Ruby 3.x의 최신 기능을 적절히 활용하고, Rails의 내장 헬퍼와 메서드를 적극적으로 사용하여 개발 효율성을 높입니다. ActiveRecord를 효과적으로 활용하여 데이터베이스 작업을 최적화합니다.
-
오류 처리 및 유효성 검사: 예외는 제어 흐름이 아닌 예외적인 상황에만 사용하고, 적절한 오류 로깅 시스템과 사용자 친화적인 오류 메시지를 구현합니다. ActiveModel 유효성 검사를 모델에 적용하고, 컨트롤러에서는 오류를 우아하게 처리하며 적절한 플래시 메시지를 사용자에게 표시합니다.
-
UI 및 스타일링: Hotwire(Turbo 및 Stimulus)를 활용하여 동적이고 SPA(Single Page Application)와 유사한 사용자 경험을 제공합니다. Tailwind CSS를 사용하여 반응형 디자인을 효율적으로 구현하고, Rails 뷰 헬퍼와 파셜(partials)을 활용하여 DRY(Don’t Repeat Yourself) 원칙을 준수하며 뷰 코드를 간결하게 유지합니다.
-
성능 최적화: 데이터베이스 인덱싱을 효과적으로 활용하고, 프래그먼트 캐싱 및 러시안 돌 캐싱과 같은 캐싱 전략을 구현하여 애플리케이션의 응답 속도를 향상시킵니다. N+1 쿼리 문제를 방지하기 위해 Eager Loading을 사용하며,
includes
,joins
,select
등을 활용하여 데이터베이스 쿼리를 최적화합니다. -
주요 컨벤션: RESTful 라우팅 컨벤션을 따르고, 모델 또는 컨트롤러 간 공유 동작을 위해 Concerns를 활용합니다. 복잡한 비즈니스 로직은 서비스 객체로 분리하여 관리하고, 시간 소모적인 작업은 Sidekiq와 같은 백그라운드 작업을 통해 비동기적으로 처리합니다.
-
테스팅 및 보안: RSpec 또는 Minitest를 사용하여 포괄적인 테스트를 작성하고, TDD/BDD(Test-Driven Development/Behavior-Driven Development) 사례를 따릅니다. FactoryBot을 통해 테스트 데이터 생성을 효율화합니다. 보안 측면에서는 Devise, Pundit과 같은 도구를 활용하여 적절한 인증 및 권한 부여를 구현하고, 컨트롤러에서 Strong Parameters를 사용하여 악의적인 데이터 주입을 방지합니다. XSS(Cross-Site Scripting), CSRF(Cross-Site Request Forgery), SQL 인젝션과 같은 일반적인 웹 취약점으로부터 애플리케이션을 보호합니다. 또한, 라우팅, 컨트롤러, 모델, 뷰 등 모든 Rails 구성 요소에 대한 모범 사례는 공식 Ruby on Rails 가이드를 따를 것을 강조합니다.