이관으로 복사된 할인들을 보정해야 하는지를 판단해야 했다. 그러려면 여기서 말하는 할인이 무엇인지부터 정리해야 했다.
Table of contents
Open Table of contents
저장소가 다른 세 종류
코드를 뒤지니 할인이 세 종류였다. 상품 필드 자체에 붙은 상시 할인과 마켓 연동 시 적용되는 채널 프로모션과 기간이 있는 한정 할인이다.
셋의 저장소가 전부 다르고 보정하려는 것은 본사가 일괄로 건 상시 할인이었다. 나머지 둘은 별개이므로 건드리면 안 됐다.
담당자 소속으로 한 판별
상시 할인이라고 전부 대상은 아니어서 본사가 건 것과 입점사가 건 것을 갈라야 했다. 입점사가 의도적으로 건 할인을 지우면 안 되기 때문이다.
변경 이력의 담당자와 그 담당자의 소속을 조인하면 본사인지 입점사인지가 갈린다. 소속 식별자가 비어 있으면 본사 관리자이고 값이 있으면 그 업체 소속이다.
막힌 판별과 분포 우회
그런데 일부는 담당자가 비어 있어서 판별이 안 됐는데 API로 등록된 상품이었다. 사람이 아니라 시스템이 등록한 것이라 누가 걸었는지를 알 수 없다.
그래서 업체별 할인율 분포를 봤더니 두 패턴이 나왔다. 전 상품이 정확히 같은 값인 균일한 패턴과 상품마다 값이 다른 편차 패턴인데 사람이 하나씩 설정했으면 균일할 수 없으므로 균일한 쪽이 일괄 적용이고 편차가 큰 쪽이 개별 설정이다.
복사분이어도 안 지운 것
편차가 있는 것들도 이관으로 복사된 것은 맞았지만 지우지 않았다. 입점사가 의도한 할인이므로 복사된 경로와 무관하게 지금 유효한 설정이기 때문이다.
이 구분 없이 이관 복사분이라는 이유로 전부 제거했으면 입점사가 설정한 할인이 사라지고 가격이 올라 문의가 몰렸을 것이다. 복사된 경로가 아니라 지금 그 값이 의도된 것인지가 판단 기준이다.
우회 판정의 한계
분포로 판정하는 것이 완벽하지는 않다. 본사가 업체마다 다른 율을 걸었을 수도 있고 입점사가 우연히 전 상품에 같은 율을 걸었을 수도 있다.
그래서 애매한 건은 담당자에게 확인하기로 했다. 분포는 후보를 가르는 도구이지 확정 수단이 아니므로 그 한계를 함께 적어야 다음 사람이 그것만으로 확정하지 않는다.
정리
- 같은 할인이 여러 종류이고 저장소가 다를 수 있다
- 보정 대상을 정하려면 종류부터 가른다
- 누가 설정했는지는 이력의 담당자 소속으로 갈린다
- API 등록 건은 담당자가 없어 판별이 막힌다
- 막히면 분포로 우회해 균일과 편차를 가른다
- 복사된 것이어도 의도된 설정이면 지우지 않는다
- 분포 판정은 후보를 가르는 도구이지 확정 수단이 아니다
- 구분 없이 보정하면 정상 데이터를 지운다