Cursor AI로 레거시 코드 리팩토링 속도 3배 올리기
배경
2021년에 작성된 Next.js 11 프로젝트를 Next.js 14로 마이그레이션하는 작업을 맡았다. 약 150개의 컴포넌트와 50개의 API 라우트가 있었고, 대부분 타입이 any로 도배되어 있었다.
Cursor 활용 포인트
1. 컨텍스트 기반 타입 추론
기존엔 각 파일을 열어 props를 확인하고 타입을 작성했다. Cursor는 Cmd+K로 여러 파일을 컨텍스트에 넣으면 자동으로 관계를 파악했다.
// Before
function UserCard(props: any) {
return <div>{props.name}</div>
}
// Cursor에게 "이 컴포넌트 타입 정의해줘"라고 요청
// After
interface UserCardProps {
name: string;
email: string;
avatarUrl?: string;
}
function UserCard({ name, email, avatarUrl }: UserCardProps) {
return <div>{name}</div>
}
2. 반복 패턴 일괄 적용
API 라우트 50개가 모두 비슷한 에러 핸들링 구조였다. 하나를 수정한 뒤 "나머지도 같은 패턴으로"라고 지시하니 20분 만에 끝났다.
3. 문서 없는 코드 이해
주석도 문서도 없는 복잡한 유틸 함수들이 많았다. Cursor Chat에 "이 함수 뭐하는 거야?"라고 물으니 로직을 분석해서 설명해줬고, 리팩토링 방향도 제시받았다.
체감한 효과
- 타입 정의 작업: 예상 3일 → 실제 1일
- API 라우트 마이그레이션: 예상 5일 → 실제 2일
- 전체 일정: 2주 → 1주
한계점
- 복잡한 비즈니스 로직은 여전히 직접 봐야 함
- 제안이 항상 맞는 건 아니라서 검증 필수
- 큰 파일(1000줄+)은 컨텍스트 이해가 부정확할 때 있음
결론
Cursor가 개발자를 대체하는 건 아니지만, 단순 반복과 타입 추론 작업에서 확실히 시간을 아껴줬다. 레거시 코드 다룰 일이 있다면 적극 추천한다.