Skip to content
isdnetworks
Go back

이미 있던 길

특정 부류만 다르게 분류해서 내보낼 수 있냐는 문의를 받았다. 코드를 읽으니 분류 매핑이 분류 단위로만 돼 있어서 불가능하다고 답하려던 참이었다.

Table of contents

Open Table of contents

코드가 말하지 않은 것

답을 정리하는 중에 그 용도로 만든 상위 분류가 원래 있지 않았냐는 반문이 들어왔다. 분류 트리에 성격이 달라 보이는 상위 항목이 하나 있긴 했지만 무슨 뜻인지 몰랐다.

매핑을 읽는 코드는 어느 분류든 똑같이 처리하므로 특정 트리가 특별하다는 표시가 코드에 없다. 의도는 코드가 아니라 트리를 그렇게 구성하고 매핑을 그렇게 채운 데이터 쪽에 있었다.

분포가 드러낸 전용 통로

그 트리 하위의 매핑이 어디로 가는지를 그룹으로 묶어 세어 봤다. 하위 쉰여덟 건이 전부 한 곳으로 가고 다른 곳으로 가는 것은 하나도 없었다.

이런 분포는 우연으로 생기지 않는다. 그 트리는 특정 분류로 내보내기 위해 만들어진 전용 통로였다.

살아 있는 구조인지 확인

옛날에 만들었다가 안 쓰는 것일 수도 있어서 실제 연결을 세어 봤다. 그 하위 분류에 이만 건이 넘는 상품이 걸려 있었고 지금도 그 용도로 돌고 있었다.

죽은 구조가 아니라 살아 있는 경로였고 내가 몰랐을 뿐이었다. 코드만 읽고 답했으면 있는 길을 없다고 답할 뻔했다.

답이 뒤집힌 지점

문의한 부류는 다른 상위 분류 아래 있어서 기본 경로로 나가고 있었다. 그 트리 하위로 옮기면 원하는 곳으로 가므로 코드 수정이 필요 없었다.

불가능하다는 답이 데이터만 옮기면 된다는 답으로 바뀌었다. 이후로 불가능하다고 결론 내기 전에 그 축의 데이터 분포를 한 번 보게 됐는데 한쪽으로 극단적으로 몰린 분포는 의도가 있다는 신호다.

길이 있다와 열려 있다는 다르다

옮기는 것이 답이라고 확정한 뒤에도 확인이 남아 있었다. 쉰여덟 건 중 대부분이 비활성 상태였고 살아 있는 매핑은 열몇 건뿐이었다.

옮기려는 대상의 세부 분류가 활성 매핑에 걸리는지를 따로 봐야 했다. 비활성 쪽으로 옮기면 길은 있지만 아무 데도 가지 않는다.

정리


Share this post on:

Previous Post
부르지 말고 로그로 확인한다
Next Post
억지 대분류와 번호 접두의 배제