Cursor의 Composer 모드로 멀티파일 리팩토링 자동화하기
문제 상황
사내 API 서버의 라우터 구조를 개선하는 작업을 맡았다. 기존에는 routes/v1/*.js 형태로 흩어져 있던 20여개의 엔드포인트를 도메인별로 재구성해야 했다. 각 파일마다 미들웨어 적용 방식과 에러 핸들링이 조금씩 달랐고, 이를 통일된 패턴으로 바꿔야 했다.
수작업으로 하기엔 실수가 생길 가능성이 높았고, 단순 find-replace로는 각 파일의 컨텍스트를 고려할 수 없었다.
Composer 모드 활용
Cursor의 Composer 모드(Cmd+I)를 사용해 멀티파일 작업을 진행했다. 먼저 새 구조의 예시 파일 하나를 작성하고, 나머지 파일들을 선택한 뒤 프롬프트를 작성했다.
선택된 라우터 파일들을 example-router.js의 패턴으로 변경:
1. asyncHandler로 에러 핸들링 통일
2. 인증 미들웨어를 auth.required로 변경
3. 응답 형식을 { success, data, error } 구조로 통일
4. 기존 로직은 유지
Composer는 각 파일의 기존 로직을 파악하고, 패턴만 일관되게 적용했다. 한 번에 5~6개 파일씩 처리하면서 변경사항을 확인했다.
결과
- 예상 4시간 작업을 1.5시간으로 단축
- 모든 파일에 일관된 패턴 적용
- 기존 로직 손상 없음 (테스트 통과)
단순 반복 작업이지만 컨텍스트를 이해해야 하는 경우, Composer가 효과적이었다. 다만 한 번에 너무 많은 파일을 선택하면 응답이 불안정해지는 경우가 있어 5~6개씩 나눠서 진행하는 게 안정적이었다.
주의사항
변경 후 반드시 diff를 확인하고, 핵심 로직이 의도치 않게 수정되지 않았는지 검증이 필요하다. AI가 제안하는 변경사항을 맹목적으로 수용하지 않고, 각 파일의 변경사항을 리뷰하는 과정은 필수다.