Claude Code로 레거시 API 마이그레이션 자동화
배경
사내 결제 시스템의 REST API 150여 개를 GraphQL로 마이그레이션해야 했다. 단순 변환 작업이지만 각 엔드포인트마다 타입 정의, 리졸버 작성, 테스트 코드 수정이 필요했다.
Claude Code 적용
MCP 프로토콜을 통해 코드베이스 전체를 컨텍스트로 제공했다. 기존 REST 컨트롤러 파일을 읽어 GraphQL 스키마와 리졸버를 생성하도록 지시했다.
// 기존 REST
app.get('/payments/:id', async (req, res) => {
const payment = await paymentService.findById(req.params.id);
res.json(payment);
});
// Claude Code가 생성한 GraphQL
type Query {
payment(id: ID!): Payment
}
const resolvers = {
Query: {
payment: (_, { id }, { paymentService }) =>
paymentService.findById(id)
}
};
작업 흐름
- 기존 컨트롤러 구조 분석 요청
- 스키마 타입 정의 생성
- 리졸버 로직 변환
- 테스트 코드 업데이트
각 단계마다 결과를 검토하고 컨벤션에 맞게 수정 요청했다. 전체 150개 중 120개는 거의 수정 없이 통과했다.
한계점
복잡한 비즈니스 로직이 포함된 엔드포인트는 여전히 수작업이 필요했다. 특히 트랜잭션 처리나 권한 검증 로직은 컨텍스트만으로 정확히 파악하기 어려웠다.
에러 핸들링 패턴도 일관성 없이 생성되어 별도로 표준화 작업을 진행했다.
결과
예상 2주 작업을 5일로 단축했다. 단순 반복 작업에서 Claude Code의 효율이 확실히 드러났다. 다만 생성된 코드의 품질 검증은 여전히 개발자의 몫이었다.