Communitygithub.com

리팩터

코드 구조 개선, 모듈 분할/병합, 인터페이스 단순화, 중복 코드 제거 등 행동을 보존하면서 구조를 변경하는 리팩터링 작업을 수행합니다.

리팩터란 무엇인가요?

이 스킬은 개발자가 기존 코드의 동작을 유지하면서 구조만 개선하는 리팩터링 작업을 계획하고 실행하도록 돕습니다. 사용자가 리팩터링, 코드 이동, 모듈 분할/병합, 인터페이스 단순화, 중복 코드 제거 등을 요청할 때 적용됩니다. 먼저 보존할 동작과 변경할 구조를 명확히 정의하고, 호출자, 테스트, 문서, 설정, 생성된 코드, 공개 인터페이스를 철저히 검사합니다. 작업은 컴파일과 테스트가 가능한 작은 되돌릴 수 있는 단계로 나누고, 기계적 이동/이름 변경과 의미론적 편집을 분리하며, 공개 API는 사용자의 명시적 요청 없이 변경하지 않습니다. 모든 주요 AI 코딩 도구(Claude Code, Cursor, Codex 등)에서 사용 가능하며, 제공된 SKILL.md 문서를 기반으로 동작합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add 3AceShowHand/agent-skills

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

리팩터은(는) 무엇을 하나요?

사용 시점

  • 사용자가 리팩터링, 구조 재구성, 코드 이동, 모듈 분할 또는 병합, 인터페이스 단순화, 단계별 재작성, 의존성 역전, 또는 중복 코드 제거를 요청할 때.
  • 변경이 구조를 변경하면서 동작을 보존한다고 주장할 때.
  • 리팩터가 여러 호출 지점, 공개 심볼, 테스트, 또는 소유권 경계에 영향을 미칠 때.

사용하지 않아야 할 때

  • 작업이 구조적 변경 없이 작은 지역 버그 수정일 때.
  • 사용자가 명시적으로 동작 변경을 요청하고 동작 보존 리팩터를 요청하지 않을 때.
  • 리팩터 여부를 결정하기 전에 광범위한 설계 검토가 필요할 때.
  • 주요 위험 영역이 여전히 불명확하여 광범위한 엔지니어링 검토가 첫 번째 단계로 적절할 때.

워크플로

  1. 보존할 동작과 변경할 구조를 정의합니다.
  2. 비목표를 명시합니다: 기능 변경 없음, 호환성 변경 없음, 오류 의미 변경 없음, 명시적으로 요청되지 않은 성능 주장 없음.
  3. 리팩터의 영향을 받는 호출자, 테스트, 문서, 설정, 생성된 코드 및 공개 인터페이스를 검사합니다.
  4. 동작이 중요하고 검증 범위가 약한 경우 특성화 테스트를 추가합니다.
  5. 작업을 컴파일 및 테스트 가능한 작은 되돌릴 수 있는 단계로 나눕니다.
  6. 기계적 이동 또는 이름 변경을 의미 편집과 분리합니다.
  7. 사용자가 명시적으로 변경을 요청하지 않는 한 공개 API를 보존합니다.
  8. 호출자가 마이그레이션되고 동작이 확인된 후에만 이전 경로를 제거합니다.

참고 자료

  • 다단계 리팩터를 계획하기 전에 references/refactor-playbook.md를 읽으십시오.
  • 테스트가 약하거나 동작을 고정해야 할 때 references/characterization-tests.md를 읽으십시오.
  • 리팩터를 마무리하기 전에 references/review-checklist.md를 읽으십시오.

중단 조건

  • 보존해야 할 동작이 불분명할 때.
  • 리팩터가 성공하기 위해 광범위한 동작 변경이 필요할 때.
  • 공개 API, 설정, 프로토콜, 저장소, 메트릭 또는 오류 의미가 명시적인 사용자 승인 없이 변경될 수 있을 때.
  • diff가 리팩터, 기능 작업, 성능 최적화 및 정리를 안전하게 검토할 수 없을 정도로 혼합할 때.

출력 규칙

  • 어떤 동작이 변경되지 않은 상태로 유지되도록 의도되었는지 보고합니다.
  • 기계적 변경을 의미 변경과 분리하여 보고합니다.
  • 동작을 보호하는 테스트나 검사를 보고합니다.
  • 확인되지 않은 모든 동작, 호환성 또는 성능 측면을 명시합니다.

관련 스킬