본문으로 건너뛰기

Rails 코드 감사를 위한 새로운 Claude Skill

A new Claude Skill for Rails code audits

작성자
jeff
발행일
2026년 01월 30일

핵심 요약

  • 1 Thoughtbot의 'Ruby Science'와 'Testing Rails'를 이식 가능한 Claude Skill로 통합하여 레거시 Rails 코드베이스 내의 God Class 및 Feature Envy와 같은 복잡한 아키텍처 안티패턴을 자동으로 감지할 수 있습니다.
  • 2 일반적인 Service Object 대신 Active Model 포함을 활용하는 도메인 중심 모델로 전환함으로써 개발자는 더 깔끔하고 관용적인 Rails 아키텍처를 유지하면서 도메인 명확성과 테스트 용이성을 향상시킬 수 있습니다.
  • 3 AI 기반 정적 분석을 사용하여 코드 감사 초기 발견 단계를 자동화하면 기술 부채 관리의 자원 집약도를 크게 줄여, 시니어 아키텍트가 고수준 리팩토링 전략에 집중할 수 있도록 합니다.

도입

Thoughtbot은 'Ruby Science'와 'Testing Rails'에 담긴 수십 년간의 전문 지식을 활용하여 Rails 코드 감사를 자동화하도록 설계된 특수 Claude Skill을 선보였습니다. 이 도구는 Claude Code와 통합되어 코드 스멜, 보안 취약점, 아키텍처 안티패턴을 식별하고, 레거시 Rails 애플리케이션의 기술 부채 관리를 위한 구조화된 로드맵을 제공합니다. 수십 년 된 코드베이스를 관리하는 시니어 개발자들에게 이는 수동 패턴 매칭에서 AI 지원 아키텍처 개선으로의 중요한 전환을 의미합니다.

The Architecture of an AI-Driven Rails Audit

Claude Skill은 YAML 프런트 매터가 포함된 Markdown 파일로 구현되며, 사람이 만든 도구 정의 역할을 합니다. 이 특정 Skill은 Thoughtbot의 Ruby Science 원칙을 통합하여 “코드 스멜”을 식별하고 구조화된 리팩토링 경로를 제공하는 데 중점을 둡니다. 이 Skill들을 .claude/skills 디렉토리에 배치함으로써 Claude Code는 전체 저장소 또는 특정 모듈에 걸쳐 정적 분석을 수행하기 위해 자동으로 이를 호출할 수 있습니다.

Identifying the ‘God Class’ and Architectural Debt

Thoughtbot의 ‘Hub’ 애플리케이션(수십 년 된 내부 플랫폼)에 대한 실시간 감사 중에, 이 Skill은 Person 모델에서 931줄과 104개의 public 메서드를 가진 전형적인 God Class를 식별했습니다. 이 도구는 Profile 또는 BillingInfo와 같은 도메인 객체 추출을 제안하며 컴포지션을 통한 적극적인 리팩토링을 권장했습니다. 이러한 자동화된 발견은 개발자가 장기간 운영된 Rails 애플리케이션에서 흔히 축적되는 기술 부채의 규모를 빠르게 시각화할 수 있도록 합니다.

Beyond Service Objects: The Active Model Approach

이 Skill의 핵심적인 특징 중 하나는 널리 사용되는 ‘Service Object’ 패턴에 대한 비판입니다. 테스트 감사에서 21개의 서비스 객체를 식별하고, 이들을 Active Model을 포함하는 PORO (Plain Old Ruby Objects)로 리팩토링할 것을 제안했습니다. 일반적인 notify 또는 call 메서드보다 도메인 모델을 선호하는 Rails의 관용적인 패턴과의 이러한 정렬은 테스트 용이성과 도메인 명확성을 향상시킵니다. 예를 들어, ConfirmationService를 도메인 중심의 AssignmentConfirmation 모델로 이름을 변경하면 향후 유지보수를 위한 더 직관적인 인터페이스를 제공합니다.

Security and Testing Integration

이 Skill은 Brakeman에서 파생된 패턴을 사용하여 잠재적인 SQL 인젝션 및 대량 할당(mass assignment) 위험을 표시하기 위해 정적 분석을 활용합니다. 또한 RSpec 커버리지에 대한 격차 분석을 수행하여 ApplicationRecord 또는 Finance와 같이 해당 spec 파일이 없는 중요한 인프라 모델을 식별합니다. 핵심 도메인 로직에 대한 단위 테스트의 부재를 강조함으로써, 코드가 발전하더라도 테스트 문화가 견고하게 유지되도록 보장합니다.

결론

AI 기반 감사가 인간의 감독을 완전히 대체할 수는 없지만(예: `params.permit` 사용에서 실제 취약점과 오탐을 구별해야 하는 필요성에서 알 수 있듯이), 발견 단계를 크게 가속화합니다. 팀별 스타일 가이드를 Claude Skill로 코드화함으로써 엔지니어링 팀은 코드 감사를 주기적인 이벤트에서 CI/CD 파이프라인 내의 지속적인 품질 강제로 전환할 수 있습니다. 궁극적인 목표는 일반적인 서비스 객체를 넘어 더욱 견고하고 도메인 중심적인 Rails 아키텍처로 나아가는 것입니다.

댓글 0

댓글 작성

댓글 삭제 시 비밀번호가 필요합니다.

이미 계정이 있으신가요? 로그인 후 댓글을 작성하세요.

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