테스트 없는 레거시 리팩터링으로 특성 테스트 패턴 학습
아직 경력이 길지 않지만, 지금까지 가장 도전적이었던 경험은 인턴 시절 테스트 없는 레거시 서비스 리팩터링을 혼자 맡았을 때였습니다. 코드베이스가 크고 기능 변경이 동시에 요구되는 상황에서 처음엔 무엇부터 시작할지 막막했습니다. 변경 범위를 먼저 좁히고 현재 동작을 기록하는 것부터 시작해, 특성 테스트(Characterization test)를 먼저 추가해 기존 동작을 고정한 뒤 조금씩 리팩터링을 진행했습니다. 3주 후에 회귀 없이 완료할 수 있었고, 모르는 코드를 고치는 것보다 모르는 코드를 이해하는 과정이 훨씬 어렵다는 걸 실감했습니다. 지금도 낯선 코드를 받으면 수정 전에 테스트를 먼저 얹어 동작을 이해하는 순서를 따릅니다.