레거시 템플릿 설정값 완전 제거
목차
얼마 전 뭔가 큰 마이그레이션이 있었던 것 같은데, 거기서 남겨진 레거시 설정들을 정리했다. ssul 템플릿 관련 코드가 여기저기 흩어져 있던 게 눈에 띄었고, 특히 metric 시스템의 SITE_ID 값과 content config 카테고리 부분에 아직도 낡은 설정이 남아 있던 상황이었다.
마이그레이션의 마지막 정리 단계
대규모 시스템 리팩토링을 할 때 가장 까다로운 부분이 이거다. 새로운 구조로 주요 로직을 옮기고 나면, 옛날 설정값이나 상수들이 여기저기 남겨진다. 명시적으로 제거되지 않고 조용히 놓여 있는 거 말이다. 특히 여러 레이어에 걸쳐 있으면 더 그렇다.
이 경우가 그랬다. 어떤 이유로든 ssul 이라는 템플릿 엔진에서 벗어나는 작업이 있었는데, content config와 metric API 두 곳 모두에 그 흔적이 남아 있었다. content.config.ts에는 옛 카테고리 정의들이, metric API에는 특정 SITE_ID 값(43으로 나타난 듯)에 종속된 로직이 있었던 것 같다.
정리해야 했던 이유들
이런 남겨진 설정들이 문제가 되는 이유는 몇 가지다.
첫째, 인지 부하다. 새로운 개발자가 와서 코드를 볼 때, 이게 여전히 활성화된 코드인지, 아니면 "언젠가는 지울 거"라는 의도로 남겨진 코드인지 불명확하다. 결국 그게 누군가의 머릿속에만 있으면 팀의 효율성이 떨어진다.
둘째, 유지보수 비용이다. metric 시스템에서 SITE_ID를 다룰 때마다 "왜 43인데?" 하고 물어봐야 하고, 만약 이 값이 언젠가 변경되어야 한다면 이런 레거시 의존성 때문에 변경 영역을 전부 파악하기 어렵다.
셋째, 마이그레이션 완성도다. 처음부터 끝까지 깔끔하게 제거되지 않은 것처럼 보이면, 사람들이 그 마이그레이션을 얼마나 신뢰할 수 있을까? "아, 저게 완전히 끝난 작업이 아니네" 하면서 다른 곳에도 문제가 있을 거라고 의심하게 된다.
정리의 구체적 내용
| 항목 | 문제점 | 해결 |
|---|---|---|
| content config 카테고리 | ssul 템플릿 기반의 낡은 카테고리 정의 | 현재 활성 구조에 맞게 정의 정리 |
| metric SITE_ID | 고정값 43에 종속된 로직 | 현행 ID 체계로 통일 |
| API 레이어 | 양쪽 시스템에 산재된 설정 | 단일 진실 공급원(Single Source of Truth)으로 통합 |
변경 파일 두 개가 다 건드려진 이유는, 이 레거시 설정들이 구성 레이어(config)에서 시작된 후 API 로직까지 흘러들어갔기 때문이다. 둘 다 정리해야 선순환 구조가 된다.
팀 입장에서의 회고
이런 일이 자주 반복되면 리팩토링 프로세스 자체를 개선해야 한다는 신호다.
- 마이그레이션 체크리스트: 새 시스템으로 옮기기 전에, "이 설정값이 코드베이스에 어디에 쓰이고 있는지" 철저히 파악하고, 마이그레이션 후 "모두 제거되었는지" 명시적으로 확인하는 단계를 넣기.
- 코드 리뷰 시 레거시 감지: PR 리뷰할 때 deprecated나 레거시 코드 섹션을 보면, 함께 제거할 날짜나 조건을 명기하도록 리뷰어 관점에서 지적하기.
- 문서화: 왜 이 값이 43으로 고정되어 있는지, 언제쯤 제거 예정인지 코멘트로 남기기. 그래야 3개월 뒤에도 누가 봐도 "아, 이건 의도된 임시 값이구나" 알 수 있다.
이번 정리는 사실 그런 의도된 정리 단계 중 하나다. 큰 작업을 끝낸 후 "마지막 먼지를 터는" 과정이다. 이게 체계적으로 이루어지면 팀의 코드 웰빙이 한층 높아진다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.