소프트웨어 개발 · SW-08

괄호 처리 코드를 지우기 전에 확인한 배송 주소

가상 이야기 · 핵심노트 기반

핵심노트 개념: 리팩토링 — 기존 동작을 보존하며 개선한다

이 글에서 배우는 교훈

리팩토링은 기존 동작을 확인한 뒤 외부 결과를 유지하면서 내부 구조를 개선하는 작업입니다.

핵심노트를 바탕으로 만든 가상 이야기입니다. 실제 사건이나 검증된 성과가 아닙니다.
근거: 리팩토링 — 기존 동작을 보존하며 개선한다 · 핵심노트 8

구체적으로는 택배 주소가 잘리던 조건을 시험으로 보호하고, 세 곳에 복사된 변환 코드를 공통 함수로 모았습니다.

관련 교재 내용

소프트웨어 개발 · IX. 소프트웨어 테스팅 · 리팩토링

리팩토링은 외부 동작을 유지하면서 내부 구조를 개선하고 회귀 시험으로 확인하는 활동입니다.

이 사례에 적용한 내용: 택배 주소가 잘리던 조건을 시험으로 보호하고, 세 곳에 복사된 변환 코드를 공통 함수로 모았습니다.

교재 105쪽 확인 →

교재 원리의 실무 적용 · 교재 원문 인용이 아닌 자체 설명입니다.

본문

새 개발자는 주문·반품·교환 코드에 복사된 주소의 괄호 처리 부분을 지우려 했습니다. 보기에는 불필요했지만, 운영 기록에는 예전 택배 연동에서 괄호가 있는 건물명 뒤의 상세주소가 잘렸던 오류가 남아 있었습니다.

개발자는 그 주소를 현재 택배 규격으로 다시 보내는 시험을 만들었습니다. 여전히 필요한 보정이라는 것을 확인한 뒤 세 곳의 처리를 하나의 주소 변환 함수로 모았습니다. 괄호가 있는 주소와 없는 주소 모두 수정 전후 전달값이 같은지 대조했습니다.

결론

사용자에게 전달되는 주소는 같고 내부의 중복만 줄었습니다. 리팩토링은 이상해 보이는 코드를 없애는 일이 아니라 필요한 동작을 지키면서 다음 변경을 쉽게 만드는 일입니다.