소프트웨어 개발 · SW-03
배송비 계산이 화면마다 달랐다
가상 이야기 · 핵심노트 기반
핵심노트 개념: 업무 규칙 — 프로그램이 지켜야 할 약속을 찾는다
이 글에서 배우는 교훈
같은 업무 규칙은 여러 화면에서 같은 기준으로 계산되도록 관리해야 합니다.
핵심노트를 바탕으로 만든 가상 이야기입니다. 실제 사건이나 검증된 성과가 아닙니다.
근거: 업무 규칙 — 프로그램이 지켜야 할 약속을 찾는다 · 핵심노트 3
구체적으로는 배송비를 계산할 공통 기능을 두고 할인 후 금액을 기준으로 삼았습니다. 장바구니와 결제 화면은 같은 계산 결과를 사용했습니다.
관련 교재 내용
소프트웨어 개발 · IV. 설계 원리 · 모듈화와 응집도
모듈마다 맡을 기능을 정하고, 한 기능의 수정 때문에 관련 없는 코드까지 고치는 일을 줄이도록 구조를 나눕니다.
이 사례에 적용한 내용: 화면과 서버가 서로 다른 배송비를 계산하자, 같은 계산 규칙을 한곳에서 관리하도록 바꾸는 사례입니다.
교재 원리의 실무 적용 · 교재 원문 인용이 아닌 자체 설명입니다.
본문
쇼핑몰은 일정 금액 이상 구매하면 배송비를 면제했습니다. 장바구니 화면과 결제 서버가 각각 규칙을 구현하면서 할인 쿠폰을 쓴 주문의 배송비가 서로 달라졌습니다.
개발자는 할인 후 금액을 기준으로 한다는 운영 규칙을 확인했습니다. 최종 계산을 공통 로직에서 수행하고 경계 금액과 쿠폰 적용을 함께 검사했습니다.
결론
사용자는 결제 직전에 다른 금액을 보지 않게 되었습니다. 할인과 배송비를 계산할 공통 기능을 정하고 각 화면이 그 결과를 사용해야 금액이 달라지는 일을 막을 수 있습니다.