MODULIZATION PROTOCOL — 모듈화 작업 지시문
목적: 확장성·응집도 향상을 위한 점진적 모듈화 원칙: 가장 작은 단위부터 · 하나씩 · 완전히 독립된 작업으로 · 분할과 정복
⚡ MANDATORY CONSTRAINTS — 작업 전 반드시 숙지
┌──────────────────────────────────────────────────────────────┐
│ ❌ NEVER: 전체 시스템을 한 번에 모듈화 시도 │
│ ❌ NEVER: 계획서 없이 모듈화 착수 │
│ ❌ NEVER: 구 코드를 삭제하지 않고 새 구조와 공존 │
│ ❌ NEVER: 기존 동작을 변경하면서 모듈화 진행 │
│ ❌ NEVER: grep/패턴 매칭으로 "확인했다" 판단 │
│ ❌ NEVER: 테스트 없이 이주 단계 완료 선언 │
│ │
│ ✅ ALWAYS: 전체 프로젝트 전수조사 후 시작 │
│ ✅ ALWAYS: 가장 급해 보이는 딱 한 가지부터 (작아도 됨) │
│ ✅ ALWAYS: 계획서 먼저 작성 → 체크하며 진행 │
│ ✅ ALWAYS: Zero Backward Compatibility — 구 코드 반드시 삭제 │
│ ✅ ALWAYS: Zero Behavioral Change — 100% 동작 보존 │
│ ✅ ALWAYS: 각 이주 단계 후 테스트 100% pass 확인 │
│ ✅ ALWAYS: 완료 후 전체 싱크 + §POST 전수조사 │
└──────────────────────────────────────────────────────────────┘
STEP 1. PRE-WORK — 작업 시작 전 전수조사
⛔ 아래가 완료되지 않으면 모듈화를 시작하지 마라.
□ 진입점 전부 열거 (API/Event/Cron/CLI/DI)
□ 데이터 흐름 추적 — 진입점에서 종료점까지 모든 분기 끝까지
□ 모듈 간 의존 관계 파악 — 가장 작은 것부터 구조적·마이크로 플로우까지
□ 동적 등록 파악 — Registry/Event Emitter/DI/문자열 디스패치
□ Barrel/Entry point 공개 API 목록 확인
□ 모든 흐름 상세 파악 완료 — thoroughly
STEP 2. 대상 선정
□ 확장성·응집도 관점에서 가장 급해 보이는 딱 한 가지 선정
□ 큰 작업이 아니어도 됨 — 작은 단위도 유효
□ 선정 이유 한 줄 명시 (왜 이것이 먼저인가)
STEP 3. 계획서 작성 (새 md 파일 → task/ 폴더 아래 생성)
□ As-Is 구조 명시 (기존 코드 위치, 의존성, 현재 문제점)
□ To-Be 구조 명시 (새 모듈 경계, 파일/폴더 레이아웃)
□ 시간순 단계별 실행 계획 — 빠짐없이 모두 기술 (thoroughly)
└─ 각 단계: 무엇을 어디서 어떻게 이주/삭제하는지 상세 기술
□ 각 단계별 롤백 방법
□ 프로젝트 영향도 분석 포함 (상위·하위 의존성)
□ Zero Backward Compatibility 삭제 순서 시간순으로 명시
STEP 4. 실행 — 계획서대로 단계별 진행
4-1. 기존 코드에 특성화 테스트 작성 (현행 동작 캡처)
4-2. 새 모듈 구조 생성 (기존 코드 옆에 신규 구현)
4-3. 소비자를 신규 구조로 이주 (한 번에 하나씩)
└─ 이주 시 관련 싱크 즉시 동기화:
· 테스트 임포트·어설션·fixture 현행 경로/시그니처로 업데이트
· 타입·인터페이스 변경 시 모든 참조 업데이트
· 상수 이동 시 소비자 임포트 경로 업데이트
4-4. 각 이주 단계 후 테스트 100% pass 확인
4-5. 구 구현 완전 삭제 + 고아 테스트·타입·상수 즉시 삭제
⚠️ 진행 방향: 작은 단위 → 큰 단위 · 간단한 작업 → 복잡한 작업 (분할과 정복) ⚠️ 동작 변경 발견 시 즉시 중단 → 보고 → 지시 대기
STEP 5. POST-WORK — 완료 후 전체 전수조사
⛔ 생략 불가. 전수조사를 직접 수행하라. grep 금지.
▸ 안전성
□ Dead reference 0 (삭제 코드 참조 없음)
□ 빌드 0에러 · 정적 분석 0에러
□ 전체 테스트 100% pass
▸ 연결성 — 실제 코드 1줄씩 추적
□ 모든 import/export 경로 추적 완료
□ 동적 연결(Registry/이벤트/DI) 추적 완료
□ 고아 코드 0
▸ 일관성
□ 명명 규칙 전체 통일
□ 계층 구조 일관성 유지
□ 상수·타입 참조 → 현행 정의
□ 문서 현행 구조 반영
▸ 전체 싱크 (Full Sync)
□ 테스트 코드 현행 소스 반영 · 고아 테스트 0 · 누락 테스트 0
□ 타입·상수·설정 모든 참조 업데이트
□ 문서(README·ARCHITECTURE·CHANGELOG) 현행 구조 완전 반영
▸ 프로젝트 영향도 분석
□ 변경 모듈 상위·하위 의존성 전수조사
□ 작은 의존관계부터 마이크로 플로우까지 끝까지 — thoroughly
□ 문제 없음 확인. 문제 발견 시 즉시 보고 후 수정.