1. 네임스페이스별 컨텍스트 파일(.context.md) 구축
거대 모놀리스에서 단일 README 파일은 AI에게 불필요한 정보 과부하를 줍니다. 이를 해결하기 위해 주요 네임스페이스마다 .context.md 파일을 작성합니다.
- 목적: 특정 하위 시스템(예: 결제, 알림)의 아키텍처와 핵심 클래스만 설명합니다.
- 효과: AI가 필요한 맥락만 로드하여 토큰 사용량을 줄이고 제안의 품질을 3~4배 향상시킵니다.
- 포함 내용: 해당 네임스페이스의 책임, 주요 클래스 5~10개, 데이터 흐름, 의존성 및 주의사항을 기술합니다.
2. Guard를 활용한 고속 테스트 피드백 루프
AI가 생성한 코드를 신속하게 검증하려면 전체 테스트가 아닌, 변경된 파일과 관련된 테스트만 즉시 실행되어야 합니다.
- Guard 설정: guard-rspec을 사용하여 파일 저장 시 관련 스펙이 1~3초 내에 자동 실행되도록 구성합니다.
- 테스트 최적화: 의존성 주입(Dependency Injection)을 활용하고, FactoryBot의 build_stubbed를 사용하여 데이터베이스 부하를 줄임으로써 개별 테스트 파일 실행 시간을 5초 이내로 유지합니다.
3. Sorbet 또는 RBS를 통한 점진적 타입 도입
동적 타입 언어인 Ruby에서 AI는 종종 메서드 시그니처를 오해하여 환각(Hallucination)을 일으킵니다.
- 타입 시스템의 이점: 명시적인 타입을 정의하면 AI가 정확한 자동 완성을 제공하고 실행 전 타입 오류를 감지할 수 있습니다.
- 점진적 채택: 모든 코드를 한꺼번에 수정할 필요 없이, 가장 자주 수정되는 모델과 서비스 객체부터 Sorbet 시그니처를 추가하여 AI의 데이터 흐름 이해도를 높입니다.
4. Replit Agent를 활용한 비기술 이해관계자 프로토타이핑
디자인 수정 단계에서의 소통 비용을 줄이기 위해 Replit Agent를 활용한 샌드박스 환경을 구축합니다. - 워크플로우: 개발자가 CSS 프레임워크와 샘플 데이터가 포함된 Rails 템플릿을 제공하면, 기획자가 자연어로 UI 변경 사항을 직접 실험합니다. - 보안: 운영 데이터와 분리된 가상 데이터를 사용하며, 디자인이 확정된 후 개발자가 실제 프로덕션 코드로 구현하여 불필요한 반복 작업을 70% 이상 줄입니다.
5. AI 친화적인 서비스 레이어(Service Object) 아키텍처
Rails 컨트롤러는 인증, 파라미터 파싱, 비즈니스 로직이 섞여 있어 AI가 수정 시 오류를 범하기 쉽습니다. - 서비스 객체 패턴: 비즈니스 로직을 단일 책임을 가진 Plain Ruby 객체로 분리합니다. - AI 최적화 컨벤션: 키워드 인자(Keyword Arguments)를 사용하여 매개변수 이름을 명확히 하고, 클래스 길이를 100줄 이내로 유지하여 AI의 컨텍스트 윈도우 내에 최적으로 배치합니다.