1. Rails 모델 분석을 통한 버그 발견
저자는 모든 Rails 모델에 대해 스키마 상세, 연관 관계, 유효성 검사, 콜백 등을 포함한 마크다운 문서를 생성하도록 Claude를 활용했습니다. 이 과정에서 Claude는 다음과 같은 치명적인 문제들을 식별했습니다.
- 논리적 오류 식별:
is_purple_team?메서드 내부에|| true가 하드코딩되어 항상 참을 반환하는 버그를 발견했습니다. 이는 코드 리뷰 시 육안으로 식별하기 어려운 형태였으나, AI는 조건문의 분기가 발생하지 않는다는 점을 정확히 지적했습니다. - 성능 누수 탐지: 여러 속성 변경 시 반복적으로 실행되어 불필요하게 팀 멤버십을 재계산하는
set_team?메서드의 비효율성을 발견했습니다. 이는 기능적으로는 문제가 없으나 시스템 자원을 낭비하는 성능 저하 요인이었습니다.
2. 배경 작업(Background Jobs)의 데이터 일관성 해결
수십 개의 백그라운드 작업이 동일한 JSON 컬럼(detail.content)에 데이터를 기록하면서 발생한 명칭 불일치 문제를 해결하는 데에도 Claude가 활용되었습니다.
- 키 구조 매핑:
user_email,email_address,userEmail과 같이 서로 다른 명칭으로 저장되던 이메일 필드들을 전수 조사하여 매핑했습니다. 데이터베이스 접근 없이 오직 코드 분석만으로 수행되었습니다. - 통합 전략 수립: Claude는 단순히 키 목록을 나열하는 데 그치지 않고, 공통 패턴 추출, 명칭 불일치 사례 식별, 통합 스키마 제안 및 마이그레이션 전략까지 포함된 분석 결과를 제공했습니다.
3. AI 활용의 핵심 전략: 프롬프트 엔지니어링
이러한 성과가 가능했던 이유는 Claude의 지치지 않는 집중력과 적절한 프롬프트 설정 덕분입니다.
- 프레임 설정의 중요성: 단순한 “요약”이 아닌 “재구축을 위한 역공학(Reverse engineering for reconstruction)”이라는 프레임을 제공함으로써, AI가 시스템을 더 깊이 이해하도록 유도했습니다.
- 잠재적 문제점(Potential Gotchas) 섹션: 프롬프트에 ‘잠재적 문제점’ 섹션을 포함하도록 명시함으로써, AI가 비판적인 시각으로 코드를 분석하고 숨겨진 결함을 찾아내도록 강제했습니다.
- 일관된 분석 품질: 인간은 수십 개의 파일을 검토할 때 집중력이 흐트러지지만, AI는 첫 번째 파일부터 마지막 파일까지 동일한 수준의 세밀한 분석을 유지하며 사소한 실수를 놓치지 않습니다.