육아휴직 개발자 수익화 실험

도매 엑셀의 '판매가'는 도매가가 아니었다

2026-10-06실험로그

매출비용시간실패
---가격 불일치 53건 / 53건

무엇을 했나

위탁판매 자동화 작업은 Claude Code에게 맡겨 진행했다. 국내 도매 사이트는 스마트스토어 대량등록용 엑셀을 준다. 그 파일에는 판매가라는 컬럼이 있다. Claude Code는 도매 사이트가 준 파일의 판매가라는 이유로 이 값을 도매가로 읽었다. 근거는 그것 하나였다.

몇 주 동안 이 값에 마크업을 곱해 상품을 등록했다.

그러다 내가 우연히 한 건을 눈으로 대조했다. Claude Code에게 이렇게 말했다.

가격 책정이 많이 이상해, 제품 하나만 봤는데, 국내 도매 사이트에서 25340 인데, 스마트스토어에는 52960이네.

이 말을 듣고 Claude Code가 전체 상품을 국내 도매 사이트 오픈API 값과 대조했다.

결과

조회 53건 · 일치 0건 · 불일치 53건
DB값 / 실제도매가 배율: 최소 1.608 · 중앙 1.608 · 최대 1.608

53건 전부 정확히 1.608배였고 예외는 없었다. 엑셀의 판매가는 도매 사이트가 이미 마진을 얹어 둔 권장 판매가였다. 우리는 거기에 마크업을 또 곱했고, 그래서 실제 도매가의 두 배 가격으로 팔고 있었다.

배송비와 제주·도서산간 추가비는 엑셀 값이 정확했다. 틀린 것은 도매가 하나뿐이었다. 그래서 더 알아채기 어려웠다.

이 일로 정리한 판단은 두 가지다.

관찰판단
컬럼 이름이 판매가컬럼 이름은 데이터가 아니다
53건이 모두 같은 배율로 틀림버그가 아니라 데이터를 읽는 방식이 틀렸다는 증거

53건 중 40건만 틀렸다면 데이터 품질 문제로 볼 수 있다. 하지만 53건이 모두 같은 배율로 틀렸다면 Claude Code가 데이터를 읽는 방식이 틀린 것이다.

진짜 도매가는 오픈API의 price.supply에만 있었고, 엑셀에는 처음부터 없었다. Claude Code는 구조를 이렇게 바꿨다.

구성 요소바뀐 동작
collector엑셀의 판매가를 listed_price로 따로 저장
sync_price.pyAPI에서 원가를 받아 도매가 칸에 채움
filters도매가가 0이면 판매가를 만들지 않고 상품을 탈락시킴

filters의 탈락 규칙은 0원짜리 판매가가 소리 없이 생기는 것을 막으려고 넣었다.

다음 행동

도매가는 API의 price.supply에서만 가져오고, 엑셀의 판매가는 listed_price로 따로 둔다.