완전 자동 코드 리팩토링

파일 간 의존성 관계를 파악하고, 한 명령으로 전체 프로젝트를 리팩토링 —— 변수 이름 바꾸는 거 아니라, 진정한 구조 수준의 리팩토링이에요

기존 리팩토링이 얼마나 힘든지 당신도 알 거예요

수동 리팩토링 = 야근 + 기도

한 함수 이름을 바꾸려면 100개 파일을 전역 검색해서 수정해야 해요. 다 수정하고도 뭔가 빠뜨린 게 아닐까 봐 두렵고, 테스트 돌리면 3군데서 터진 걸 발견하고 다시 이분 탐색으로 찾아야 해요. 프로젝트가 클수록 건드리기가 두려워서, 결국 기술 부채만 쌓이고 아무도 그 코드를 건드리고 싶지 않아해요. 클래스 분리나 모듈 추출 같은 큰 수술은 말할 것도 없고 —— 수동으로 하면 최소 일주일은 잡아야 해요.

OpenClaw가 이 문제를 어떻게 해결하는지 보여줄게요

한 줄의 명령으로 전체 프로젝트를 스캔하고 파일 간 의존성을 파악해요

OpenClaw는 지금 열려있는 파일만 보는 게 아니에요 —— 전체 프로젝트 디렉토리를 읽고, import 체인, 함수 호출 관계, 타입 정의, 모듈 의존성을 분석한 다음에 코드를 수정해요. 수정한 후에는 자동으로 테스트를 실행해서 기존 기능을 깨뜨리지 않았는지 확인해요. 당신은 "이 프로젝트를 class에서 hooks로 바꿔줘"라고 말하기만 하면, 나머지는 AI가 처리해요.

바로 복사해서 쓸 수 있는 Prompt

이 세 개의 Prompt가 가장 흔한 리팩토링 상황을 커버해요. 그냥 복사 붙여넣기하면 돼요.

프로젝트를 Class Component에서 React Hooks로 리팩토링 골든 인스트럭션
현재 프로젝트의 모든 React Class Component 파일을 분석해줄래요.

다음과 같이 리팩토링해줘:
1. 각 class component를 함수 컴포넌트 + Hooks로 변환
2. this.state / this.setState → useState
3. componentDidMount / componentWillUnmount → useEffect
4. 재사용 가능한 로직을 커스텀 Hook으로 추출
5. props 인터페이스 유지, 부모 컴포넌트 수정 불필요
6. 기존 테스트 한 번 실행해서 깨진 게 없는지 확인

각 파일의 변경사항을 따로 나열하고, 뭘 바꿨는지, 왜 이렇게 바꿨는지 설명해줄래.
이 명령은 Claude Opus에서 최고의 성능을 발휘해요. this 참조와 라이프사이클 매핑을 올바르게 추적할 수 있거든요. 파일이 많은 프로젝트는 디렉토리별로 나눠서 실행하는 걸 권장해요.
프로젝트의 에러 처리 패턴 통일 고급 팁
현재 프로젝트의 모든 에러 처리 코드를 분석해줄래요.

현재 상태 점검:
- 모든 try-catch 블록, .catch() 호출, error callback 찾기
- 불일치하는 부분 나열 (에러를 무시하는 부분도 있고, console.log만 하는 부분도 있고, 위로 던지는 부분도 있음)

통일 방안:
1. 통일된 AppError 클래스 만들기 (code, message, cause 포함)
2. 전역 에러 처리 미들웨어 만들기
3. 모든 비즈니스 레이어에서 AppError로 에러 던지기, 직접 throw new Error 하지 말기
4. API 레이어는 { success: false, error: { code, message } } 형식으로 통일해서 반환
5. 수정된 파일 목록과 diff 제공

이렇게 해줄래.
이 Prompt는 AI가 먼저 점검한 다음에 손을 대게 해서, 무분별한 수정을 방지해요. 프로젝트의 에러 처리가 엉망인 상황에 딱 맞아요.
JavaScript 프로젝트를 TypeScript로 마이그레이션 골든 인스트럭션
JavaScript 프로젝트를 TypeScript로 마이그레이션할 거야.

이 순서대로 진행해줄래:
1. 프로젝트 구조 분석하고 tsconfig.json 생성 (strict 모드)
2. 입구 파일부터 시작해서 의존성 순서대로 .js → .ts/.tsx 마이그레이션
3. 모든 함수 파라미터와 반환값에 타입 주석 추가
4. any 사용을 최소화하고 구체적인 타입 사용
5. 써드파티 라이브러리의 @types 패키지 설치
6. types/ 디렉토리에 공통 타입 정의 저장
7. tsc --noEmit이 통과되는지 확인, 타입 에러 없어야 해요

각 파일의 변경사항 요약 제공. any를 꼭 써야 하는 부분이 있으면 이유 설명해줄래.
JS를 TS로 바꾸는 건 가장 흔한 마이그레이션이에요. 이 Prompt는 AI가 의존성 순서대로 진행하게 해서, 무작위로 마이그레이션해서 에러나는 걸 방지해요.

권장 설정

리팩토링 작업에는 이 설정이 좋아요. AI가 더 신중하고 제어 가능하게 만들어줘요.

skill_config — 코드 리팩토링 전용
# .openclaw/skill_config.yaml
refactor:
  model: claude-opus-4-6      # 리팩토링은 Opus 추천, 파일 간 이해력 최강
  context_depth: full         # 전체 프로젝트 구조 읽기
  safety:
    dry_run: true              # 먼저 변경사항 미리보기, 확인 후 반영
    run_tests: true            # 수정 후 자동 테스트
    backup: true               # 수정 전 백업
  ignore:
    - node_modules/
    - dist/
    - "*.min.js"

OpenClaw vs Copilot —— 리팩토링 능력 비교

OpenClaw 리팩토링
  • 전체 프로젝트의 의존성 그래프를 파악하고, 한 곳을 수정하면 자동으로 모든 참조 업데이트
  • 파일 간 일괄 이름 변경, 공통 모듈 추출, 거대한 파일 분리
  • 수정 후 자동으로 테스트 실행해서 검증, 문제 있으면 즉시 롤백
  • 커스텀 리팩토링 규칙과 블랙리스트 지원
VS
Copilot 리팩토링
  • 주로 현재 파일 범위 내에서 자동완성과 수정 제안
  • 파일 간 리팩토링은 각 파일을 수동으로 열어야 함
  • 내장 테스트 검증 프로세스 없음
  • IDE의 리팩토링 기능에 의존, IDE 플러그인이 지원하는 범위로 제한됨

더 자세한 비교 👉 OpenClaw vs Copilot · OpenClaw vs Cursor

실전 사례: 대규모 프로젝트 리팩토링

10만 줄짜리 React 프로젝트를 Class에서 Hooks로 마이그레이션
3년 된 프로젝트에 Class component가 200개 이상 있는데, 팀이 Hooks로 마이그레이션하고 싶어 하는데 아무도 손댈 생각을 안 해요. 수동으로 하면 3개월은 걸릴 것 같아요.
OpenClaw 방안
Prompt로 AI가 모듈별로 나눠서 마이그레이션하게 하고, 각 배치 수정 후 테스트 실행해요. 총 2일만에 완성, 프로덕션 Bug 0개. 핵심은 AI가 this 바인딩, 라이프사이클 매핑, ref 변환 같은 에러가 쉬운 부분들을 제대로 처리할 수 있다는 거예요.
기존 방안
수동으로 파일 하나씩 수정해요. 50개 파일쯤 수정할 때쯤 빠뜨린 게 생기고, this 바인딩이 사라져서 런타임 에러 발생. 결국 2개월이 걸렸는데도 온라인에 10개 정도의 Bug가 남아있어요.
결론: 프로젝트 수준의 리팩토링은 AI가 가치를 발휘하는 최고의 시나리오예요 —— 조금 빠른 게 아니라, 정말 다르게 엄청 빠르다고 봐야 해요.

리팩토링 시나리오는 어떤 모델 쓸까

리팩토링은 모델의 코드 이해 능력을 가장 높게 요구해요. 여기서 비용 아껴면 안 돼요.

  • Claude Opus 4.6 —— 대규모 리팩토링 최고의 선택, 파일 간 의존성 추적 최강
  • GPT-4o —— 중소 규모 리팩토링에는 충분, 속도는 더 빨라
  • DeepSeek V3.2 —— 예산 한정일 때의 대안, 효과도 나쁘지 않아

경험상 팁들

💡 대규모 프로젝트는 한 번에 다 리팩토링 하지 말고 —— 모듈별로 나눠서 리팩토링하고, 각 배치 수정 후 테스트 실행해서 확인, 그 다음 배치 진행.
⚠️ 리팩토링 전에 테스트 커버리지가 충분한지 확인해요. 테스트 없는 코드는 AI가 수정해도 올바른지 알 수 없거든요.
ℹ️ dry_run 모드로 먼저 변경사항 미리보기. 괜찮으면 AI가 진짜로 파일을 쓰게 해요.
이 사례가 도움이 됐나요?