브랜드별 배송비 오버라이드로 재배포 없이 정책 변경 가능
목차
배송/택배사 통합 시스템 + 배송비 오버라이드
배송/택배사 통합 시스템 + 배송비 오버라이드 기능을 구현했음.
배경
실물 배송 기능을 플랫폼에 통합했음. 택배사마다 다른 운임 정책을 시스템에서 관리해야 운영이 효율적임.
구현 방식
택배사 기본 설정, 브랜드별 배송비 오버라이드, 무료 배송 조건을 DB로 관리하도록 구현했음.
코드 예시
// 배송비 계산 (우선순위: 브랜드 정책 > 기본 정책)
public long calculateShippingFee(Long brandId, Long carrierId, int qty) {
Optional<BrandShippingPolicy> brandPolicy =
brandShippingRepo.findByBrandAndCarrier(brandId, carrierId);
if (brandPolicy.isPresent()) {
BrandShippingPolicy p = brandPolicy.get();
if (p.isFreeOverQty(qty)) return 0;
return p.getBaseFee();
}
// 기본 정책으로 fallback
CarrierPolicy defaultPolicy = carrierRepo.findDefault(carrierId);
return defaultPolicy.getFee();
}
검토 포인트
배송비 정책은 브랜드, 수량, 지역 등 여러 변수가 얽혀 있어서 설계가 복잡함. 정책 우선순위를 명확히 정의하고 문서화해야 나중에 혼란이 없음.
정리
배송비 정책을 코드가 아닌 DB에서 관리하게 되어, 정책 변경 시 재배포가 필요 없어짐.
다음
댓글 0
첫 댓글 달아줘.