본 가이드라인은 여러 핵심 영역으로 나뉘어 상세한 지침을 제공합니다.
먼저, 코드 스타일 및 구조 측면에서는 간결하고 관용적인 Ruby 코드 작성, Rails 컨벤션 및 모범 사례 준수, 객체 지향 및 함수형 프로그래밍 패턴 활용, 코드 중복 방지, 그리고 서술적인 변수 및 메서드 이름 사용을 권장합니다. 파일 구조는 Rails의 MVC(Model-View-Controller), Concerns, Helpers 등의 컨벤션을 따르도록 명시합니다.
명명 규칙에 있어서는 파일, 메서드, 변수명에 snake_case를, 클래스 및 모듈명에는 CamelCase를 사용하며, Rails의 모델, 컨트롤러, 뷰 명명 규칙을 따르도록 합니다.
Ruby 및 Rails 사용에 관해서는 Ruby 3.x 기능(패턴 매칭, endless methods)의 적절한 활용, Rails의 내장 헬퍼 및 메서드 활용, 그리고 ActiveRecord를 통한 효율적인 데이터베이스 연산을 강조합니다.
구문 및 형식은 Ruby Style Guide를 따르며, unless
, ||=
, &.
와 같은 Ruby의 표현적인 구문 사용을 권장하고, 문자열에는 보간이 필요하지 않은 한 단일 따옴표를 선호합니다.
오류 처리 및 유효성 검사에서는 예외적인 경우에만 예외를 사용하고, 적절한 오류 로깅 및 사용자 친화적인 메시지 구현, ActiveModel 유효성 검사 사용, 그리고 컨트롤러에서 오류를 우아하게 처리하고 적절한 플래시 메시지를 표시하는 방법을 제시합니다.
UI 및 스타일링은 Hotwire(Turbo 및 Stimulus)를 사용하여 동적이고 SPA(Single Page Application)와 유사한 상호작용을 구현하고, Tailwind CSS로 반응형 디자인을 구현하며, Rails 뷰 헬퍼와 부분 템플릿을 사용하여 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 인젝션과 같은 일반적인 웹 취약점으로부터 보호하는 방법을 강조합니다. 이 모든 지침은 공식 Ruby on Rails 가이드를 기반으로 합니다.