저자는 Claude Code를 다양한 Ruby on Rails 프로젝트에 적용하며 그 효용성을 검증했습니다.
1. Rails 엔진 개발과 Claude Code의 도입
- Collabor8Online 기능 재구현을 위해 Rails 엔진 개발을 시작했습니다.
- 초기 모델, 마이그레이션, 연관 관계, 유효성 검사 등 기본적인 구조는 수동으로 구축했습니다.
- 이후 Claude Code를 프로젝트에 통합하여 모델에 대한 RSpec 테스트 코드를 생성하도록 지시했습니다. Claude Code는 테스트 케이스 누락 없이 만족스러운 결과를 도출했습니다.
- 코드 린팅(standardrb) 및 테스트 실행 기능을 활용하여, Claude Code는 변경 사항을 적용하고 실패한 테스트를 스스로 수정하는 과정을 반복하며 코드 품질을 유지했습니다.
2. 접근 제어 목록(ACL) 구현
- 프로젝트에 복잡한 ACL 기능을 추가해야 할 때, 저자는 Claude Code에 “신중하게 고려하라”는 지시와 함께 요구사항을 전달했습니다.
- Claude Code는 약 2분간의 “사고” 과정을 거쳐 네 가지 구현 대안을 제시했으며, 저자가 첫 번째 옵션을 선택하자 마이그레이션, 모델, 스펙을 포함한 완전한 ACL 구현을 자동으로 수행했습니다.
- 이 과정에서 Claude Code는 저자가 사용했던 “owner” 대신 “subject”라는 용어를 추천하는 등 전문적인 피드백을 제공했습니다.
- 또한, 영국식 철자(authorize -> authorise) 변경 요청에도 완벽하게 대응하며 포괄적인 테스트 스펙을 생성했습니다. 이 작업에 약 4달러가 소요되었습니다.
3. 기존 프로젝트의 테스트 스펙 자동화
- 프리랜서 클라이언트의 Rails 프로젝트에 Claude Code를 적용하여 HTML 컨트롤러의 요청 스펙(request specs)을 자동 생성하려 했습니다.
- 초기 “stub” 키워드 사용 지시로 인해 과도한 스텁과 모크가 포함된 코드가 생성되는 문제가 발생했습니다.
- 저자는 하나의 컨트롤러 스펙을 수동으로 정리하고 올바른 인증(로그인 과정 포함) 방식을 확립한 후, Claude Code에 이 패턴을 따르도록 지시했습니다.
- 결과적으로 Claude Code는 불필요한 스텁과 모크를 제거하고, 수동으로 채워 넣을 수 있는 유용한 개요 스펙 세트를 제공하여 상당한 시간을 절약했습니다.
4. PDF 비교 기능 구현 – Vibe Coding의 절정
- 오랫동안 논의되었던 PDF 문서 간 차이점 비교 기능 구현이 필요했습니다. 저자는 이 기능의 구현 방법을 몰라 망설이고 있었습니다.
- 저자는 Claude Code에 “두 개의 PDF를 업로드하고 그 차이점을 표시하는 웹 페이지를 만들어 달라”고 요청했습니다.
- 1분도 채 되지 않아 Claude Code는 PDF.js를 활용한 기능 아티팩트를 생성했습니다.
- 재사용성을 높이기 위해 저자는 Claude Code에 HTML과 JS 코드를 커스텀 웹 요소(custom web element)로 재작성해달라고 요청했고, 이 작업은 약 5분 만에 완료되었습니다.
- 저자는 이 커스텀 요소를 기존 애플리케이션에 통합하고 스타일링을 조정한 후, 총 1시간 만에 이 중요한 기능을 스테이징 환경에 배포할 수 있었습니다. 저자가 코드의 작동 방식을 깊이 이해하지 못했음에도 불구하고 고객의 오랜 요구사항을 빠르게 해결한 사례였습니다.