Agent skill
reverse-engineering
레거시 코드베이스 리버스 엔지니어링 워크플로우. 문서가 없는 프로젝트를 체계적으로 분석하여 아키텍처, 비즈니스 로직, 의존성을 파악합니다. Use when analyzing legacy code or understanding undocumented code.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/reverse-engineering
SKILL.md
Reverse Engineering — 레거시 코드베이스 분석
문서가 없는 코드베이스를 체계적으로 분석하여 아키텍처, 비즈니스 로직, 의존성을 파악합니다.
6-Phase 프로세스 개요
Phase 1: 구조 분석 → Phase 2: 컴포넌트 카탈로그 → Phase 3: 의존성 분석
→ Phase 4: 비즈니스 로직 추출 → Phase 5: 데이터 흐름 추적 → Phase 6: 마이그레이션 로드맵
Phase 1: 구조 분석
프로젝트 타입 식별 체크리스트
□ 언어 구성 확인 (단일 언어 / 하이브리드)
□ UI 프레임워크 확인
□ 의존성 관리 방식 (Package Manager, Lock 파일 등)
□ 언어 간 브릿징 존재 여부 (하이브리드 프로젝트)
아키텍처 패턴 감지
| 패턴 | 감지 신호 | 특징 |
|---|---|---|
| MVC (레거시) | Controller, View, Model 혼재, 비즈니스 로직이 Controller에 | 전통적 구조 |
| MVVM | ViewModel, ObservableObject, Binding | UI와 로직 분리 |
| Clean Architecture | UseCase, Repository, Entity, 레이어별 폴더 | 엔터프라이즈급 |
| VIPER | Presenter, Interactor, Router, Entity, View | 모듈화 중심 |
| Redux/TCA | Reducer, State, Action, Effect | 상태 기반 |
폴더 구조 스캔
- list_dir: 루트 디렉토리
- glob: 소스 파일 패턴
- SemanticSearch: 각 폴더의 역할과 책임
Phase 1 검증 체크리스트
□ 프로젝트 타입 식별 완료
□ 아키텍처 패턴 파악 완료
□ 폴더 구조 문서화 완료
Phase 2: 컴포넌트 카탈로그
타입/클래스 인벤토리 추출
- grep: class/struct/interface/protocol 정의 패턴
- 언어별 키워드로 타입 정의 추출
- 정렬 및 중복 제거
타입 분류 기준
| 타입 | 네이밍 패턴 | 역할 |
|---|---|---|
| Manager | *Manager | 싱글톤, 비즈니스 로직 |
| Controller | *Controller | 화면/플로우 제어 |
| View/Component | *View, *Component | UI 컴포넌트 |
| Model | Model, Dto, Response | 데이터 구조 |
| Service | *Service | 서비스 레이어 |
| Util | *Util, *Helper | 유틸리티 |
싱글톤 패턴 감지
- grep: sharedInstance, getInstance, static shared 등
- 싱글톤 인스턴스 목록 작성
- 의존성 분석 시 우선 고려
Phase 2 검증 체크리스트
□ 클래스/타입 인벤토리 작성
□ 싱글톤 패턴 식별
□ Manager/Service 분류
□ Controller/View 계층 구조 파악
Phase 3: 의존성 분석
import/include 관계 추적
- grep: import, include, using 문
- 프로젝트 내부 vs 외부 의존 구분
- 파일별 import 관계 CSV 또는 그래프 생성
의존성 그래프 생성
- Mermaid flowchart로 시각화
- 서브그래프로 계층 구분 (Manager, Controller 등)
- mermaid 스킬의 classDef 활용
의존성 레벨 분석
| 레벨 | 설명 | 마이그레이션 우선순위 |
|---|---|---|
| Level 0 | 의존성 없음 (순수 유틸) | 최우선 |
| Level 1 | Level 0만 의존 | 우선 |
| Level 2 | Level 0-1 의존 | 중간 |
| Level 3 | Level 0-2 의존 | 중간 |
| Level 4+ | 복잡한 의존성 | 후순위 |
순환 참조 감지
- import 관계 그래프에서 순환 경로 탐색
- Delegate/콜백 패턴의 강한 참조 검사
- 클로저/람다 내 self/this 캡처 검사
Phase 3 검증 체크리스트
□ import/include 관계 추출
□ 의존성 그래프 생성
□ 의존성 레벨 분석
□ 순환 참조 확인
Phase 4: 비즈니스 로직 추출
메서드 시그니처 분석
- grep: public/protected 메서드 정의
- 헤더/인터페이스 파일에서 공개 API 추출
- 100줄 이상 메서드 식별 (리팩토링 후보)
메서드 분류
| 카테고리 | 패턴 | 역할 |
|---|---|---|
| init | init*, setup* | 초기화 로직 |
| network | fetch*, post*, get* | API 호출 |
| data | parse*, convert*, transform* | 데이터 변환 |
| business | calculate*, validate*, process* | 핵심 로직 |
| UI | update*, refresh*, reload* | UI 갱신 |
| event | on*, handle*, did* | 이벤트 처리 |
조건 분기 분석
- if/switch/guard 사용 패턴
- 중첩 분기 단계 (3단계 이상 주의)
- 복잡한 조건 로직 문서화
에러 처리 패턴 분석
- 에러 타입/예외 정의
- try-catch, Result, 콜백 패턴
- 마이그레이션 시 에러 처리 전환 방향
Phase 4 검증 체크리스트
□ 핵심 메서드 시그니처 분석
□ 조건 분기 로직 분석
□ 에러 처리 패턴 확인
□ 네트워크 요청 타입 추출
Phase 5: 데이터 흐름 추적
흐름 추적 단계
사용자 액션 → Controller/ViewModel → Service/UseCase → Repository/API → 응답 → 상태 업데이트 → UI 갱신
시퀀스 다이어그램 템플릿 (일반화)
sequenceDiagram
participant User as 사용자
participant View as View
participant VM as ViewModel/Controller
participant UC as UseCase/Service
participant Repo as Repository
participant API as API
User->>+View: 액션
View->>+VM: 이벤트 전달
VM->>+UC: execute()
UC->>+Repo: fetch()
Repo->>+API: HTTP Request
API-->>-Repo: Response
Repo-->>-UC: Entity
UC-->>-VM: Result
VM-->>-View: 상태 업데이트
View-->>-User: 화면 갱신
상태 관리 분석
- 전역 상태 저장소
- 로컬 상태 (Controller/ViewModel)
- 상태 동기화 패턴 (Observer, Pub/Sub, Event Bus)
Phase 5 검증 체크리스트
□ 사용자 액션 진입점 파악
□ API 호출 흐름 추적
□ 상태 관리 방식 분석
□ UI 업데이트 패턴 확인
Phase 6: 마이그레이션 로드맵
복잡도 평가 기준
| 기준 | Low (1점) | Medium (2점) | High (3점) |
|---|---|---|---|
| 코드 라인 수 | < 100 | 100-300 | > 300 |
| 의존성 수 | 0-2개 | 3-5개 | 6개 이상 |
| 조건 분기 | 단순 | 중첩 2단계 | 중첩 3단계 이상 |
| 비즈니스 로직 | 단순 CRUD | 계산/변환 | 복잡한 상태 머신 |
| UI 복잡도 | 단순 | 테이블/리스트 | 커스텀 드로잉/애니메이션 |
| 네트워크 | 없음 | 단순 CRUD | 다중 요청/실시간 |
| 테스트 가능성 | 순수 함수 | DI 가능 | 싱글톤/전역 상태 |
우선순위 매트릭스
| 우선순위 | 복잡도 | 의존성 레벨 | 비즈니스 중요도 |
|---|---|---|---|
| P1 (최우선) | Low | Level 0-1 | High |
| P2 (우선) | Low-Medium | Level 1-2 | High |
| P3 (중간) | Medium | Level 2-3 | Medium |
| P4 (후순위) | High | Level 3+ | Medium |
| P5 (선택) | Any | Any | Low |
로드맵 템플릿 구조
- 프로젝트 개요 (파일 수, LOC, 예상 기간)
- Phase별 작업 목록 (복잡도, 의존성, 예상 공수)
- 주차별 계획
- 리스크 관리
Phase 6 검증 체크리스트
□ 복잡도 평가 완료
□ 우선순위 결정 완료
□ 의존성 순서 정리
□ 주차별 계획 작성
□ 리스크 평가 완료
출력 문서 구조
ReverseEngineering/
├── 00-분석-개요.md # 분석 범위, 통계, 아키텍처 요약
├── 01-아키텍처-분석.md # 아키텍처 다이어그램, 레이어, 패턴
├── 02-컴포넌트-카탈로그.md # 클래스 인벤토리, 싱글톤, 계층
├── 03-의존성-그래프.md # 의존성 다이어그램, 레벨, 순환 참조
├── 04-비즈니스-로직/ # 기능별 상세 문서
├── 05-데이터-모델.md # Entity, DTO, Response 타입
├── 06-네트워크-레이어.md # API 엔드포인트, 요청 타입
├── 07-상태-관리.md # 전역/로컬 상태, 동기화 패턴
├── 08-마이그레이션-로드맵.md # 복잡도, 우선순위, 계획
└── 09-기술-부채.md # 문제점, 리팩토링 포인트
핵심 원칙
- 추측 금지: 모든 분석은 실제 코드에서 추출
- 점진적 분석: Phase별로 순차 진행
- 즉시 문서화: 분석 결과는 문서에 기록
- 다이어그램 포함: Mermaid로 시각화
- 코드 경로 명시: 모든 결론에 소스 경로 포함
사용 도구
Grep, Glob, SemanticSearch, Shell (git log, find 등)
deep-index 연동
deep-index 스킬이 있으면 해당 결과를 활용하여 더 정확한 분석을 수행합니다.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?