백엔드
팀 레거시 개선 (3) 쏘카존 관리 시스템 - 6년간 진행된 팀 레거시 코드 및 문서 개선기
두줄요약
6년 동안 레거시 테이블과 코드 구조를 조금씩 개선하며 서비스를 멈추지 않는 방식을 정리했습니다. 또한 문서화와 ERD 정비로 장애 대응 지식의 병목을 줄였습니다.
문제 상황
- 6년간 누적된 레거시 테이블 구조의 노후화와 비정규화로 인한 유지보수 부담
- 시스템 구조를 아는 사람이 한정된 지식의 속인화로 장애 대응과 협업 병목
- 테스트 코드 0% 상태에서 거대한 entity와 불일치한 ERD 때문에 테스트 작성 자체가 어려운 상황
원인 분석
- 초기 설계 후 요구사항이 늘며 단일 테이블에 의미가 다른 컬럼이 계속 누적된 구조
- M:N 연결이 type 값에 따라 서로 다른 역할을 가지며 ERD만으로 비즈니스 해석이 어려운 상태
- 코드, ERD, 업무 흐름이 어긋나 있어 구조 이해가 특정 인물에게 종속된 상태
해결 방법
- 역할별 테이블 분리와 코드 개선을 함께 진행해 ERD만으로도 흐름이 읽히는 구조로 정리
- 이원화 전 현재 상태, 목표 상태, 롤백 방법을 문서화해 담당자 부재에도 이어받을 수 있게 구성
- 코드 참조 제거 후 스키마 삭제, Postman 워크스페이스와 Confluence ERD로 장애 대응 지식 공유
