| 상품등록 | 그룹상품등록 |
|---|---|
![]() | ![]() |
네이버 솔루션 API 전환을 하다가 문득 그룹 상품 등록이 눈에 띄었다.
우리는 단일 상품만 쓰고 있는데,, 흠.
그룹 상품은 뭐지?
셀파트너는 지금 단일 상품을 기준으로 상품을 추천해주고 있다.
그렇다면, 그룹 상품 등록은 우리에게 필요한 기능일까?
상품 → 점
상품 추천의 단위 → 선
A 상품과 B 상품이 자주 같이 팔린다면
A와 B 사이에는 굵은 선이 하나 생긴다
그렇다면 상품 추천은 결국 점과 점을 어떻게 연결하느냐의 문제가 된다.
마치 그래프,, 라 할 수 있다.
그럼 모든 상품을 전부 연결하면?
셀러 입장에서는
그래서 어쩌라고?,,,
모든 관계를 다 보여주는 건 판단을 오히려 어렵게 만들 것 같다.
그럼 정말 필요한 연결만 남길 수는 없을까?
여기서 오늘 공부했던 개념이 최소 신장 트리(MST).
이름은 어렵지만,, 개념은 꽤 직관적이다.
모든 점을 연결하되, 가장 작은 연결만으로 설명하자
상품 추천으로 치환해보자면,,
"왜 이 상품들이 추천 대상인지"
연결은 줄이겠는데... 그럼 뭘 기준으로 남겨야 하나ㅏ,,
그래서 한 단계 더 들어가면 Kruskal 알고리즘이 등장한다.
"일단 잘 팔리는 조합부터 보자"
Kruskal이 제대로 동작하기 위해서는 이 두 상품이 이미 같은 그룹인지 확인이 필수다.
이걸 확인하는 게 Union-Find.
Union-Find는
이게 없으면
Union-Find의 최적화 Path Compression
처음에는
한 번 확인하고 나면
한 번 검증된 상품 묶음은 다음엔 훨씬 빠르게 판단할 수 있다.
데이터가 쌓이면 판단은 가벼워진다.
이긴 한데,, 결국 처음의 질문으로 돌아와서
그룹 상품 API 필요하다고?
라고 하면 아아직은,,,, 안필요한듯,, 그냥 공부에 의의를 두기로 ㅎ
개발을 하다 보면 기능을 만드는 데만 집중하게 된다.
오늘도 스터디를 앞두고 시작하지 못한 쿠팡이 눈앞에 아른거렸다..
그렇지만,,
좋은 기능은 잠시 쉬었다 가는 것,
또 좋은 질문에서 시작한다고 생각한다.
계속 공부하고 질문하는 개발자 되기