피드로 돌아가기
Dev.toBackend
원문 읽기
로그 분석 자동화로 Dead Endpoint 50개 제거 및 코드 16,000라인 삭제
How I automated dead endpoint detection and removed 16,000 lines from our Node.js codebase
AI 요약
Context
8년간의 반복적 제품 업데이트로 인해 Express API 코드베이스가 45,000라인까지 비대해진 상황. Static Analysis로는 실제 Production 트래픽 유무를 판별할 수 없어 사용되지 않는 Dead Endpoint를 식별하는 데 한계 직면.
Technical Solution
- Access Log 기반의 트래픽 분석을 통한 실사용 엔드포인트 식별 체계 구축
- 설정 가능한 Observation Window 내의 모든 요청 경로를 추출하는 Ingestion 로직 구현
- 추출된 실제 트래픽 경로와 Express App에 등록된 전체 Route를 매핑하여 미사용 대상자 추출
- 마지막 호출 시점, 호출 빈도, 호출 클라이언트 메타데이터를 포함한 랭킹 리스트 생성
- 분기별 작업 및 레거시 클라이언트 예외 케이스 처리를 위한 인간 중심의 Verification 단계 유지
- Production, Staging, Canary 환경 전반에 걸친 12개월 이상의 관찰 기간 설정으로 오탐률 최소화
실천 포인트
1. Static Analysis로 도달 불가능한 코드 식별 후, Access Log로 실제 트래픽 유무 교차 검증
2. 최소 12개월 이상의 Observation Window 설정으로 희소 호출 케이스 포함 여부 확인
3. Production 외 Staging, Canary 환경의 로그를 통합 분석하여 잠재적 의존성 파악
4. Scheduled Job, Internal Script, Runbook 내의 엔드포인트 참조 여부 최종 체크