재고 '수량'을 버리고 '품절 여부'만 남겼다 — 3사 동기화에서 내린 반직관 결정
여러 쇼핑몰에 같은 상품을 팔면, 제일 골치 아픈 게 재고 동기화예요. 네이버에서 1개 팔리면 쿠팡·카페24 재고도 실시간으로 줄여야 하는데 — 이걸 '수량'까지 정확히 맞추려다 보면 지옥이 열립니다. 우리는 한참 데인 끝에 반대로 갔어요. 수량 동기화를 아예 포기하고, "품절이냐 아니냐"만 남겼습니다. 처음엔 "그래도 되나?" 싶었는데, 결과적으로 더 정확하고 더 단순했어요. 왜 그런지, 3사 등록·수수료에 이어 재고 편을 실전 그대로 풉니다.
👤 이런 분께 여러 몰에 파는데 재고가 자꾸 어긋나 초과판매·품절방치로 고생하는 1인 셀러.
- 수량 실시간 동기화가 왜 지옥인지(경합·지연·정합성)
- "품절 여부만"이 왜 더 정확한 지표인지
- 그 결정으로 얼마나 단순해지는지(자동화 관점)
🎯 전제 계정·거래처 정보 없이, "재고를 어떻게 관리했나"의 설계 판단만 공개합니다.
먼저 결론 — 고객이 겪는 사고는 '수량'이 아니라 '품절'이다
재고를 왜 맞추나요? 초과판매(품절인데 주문 받음)를 막으려고요. 그런데 고객이 실제로 겪는 사고는 "재고가 3개인 줄 알았는데 2개였다"가 아니라 "품절인데 주문이 됐다 → 취소 통보"입니다. 즉 중요한 건 정확한 숫자가 아니라 '품절 여부의 정확성'이에요. 그래서 우리는 지표를 그쪽으로 몰았습니다.

① 수량 실시간 동기화가 지옥인 이유
"네이버에서 1개 팔리면 3사 재고를 −1"—말은 쉬운데, 실제로는 아래가 동시에 터집니다.
| 문제 | 왜 터지나 |
|---|---|
| 경합(동시 주문) | 두 몰에서 거의 동시에 주문이 들어오면 마지막 1개를 두 곳이 다 받아버림 → 한쪽은 취소 |
| 플랫폼 지연 | 각 몰의 재고 반영·조회 API에 초~분 단위 지연이 있어, 내가 아는 재고와 몰이 아는 재고가 어긋남 |
| 기준 재고의 부재 | "진짜 재고"가 어디 있나? 도매 재고는 실시간으로 안 보이고, 몰마다 다른 숫자를 들고 있어 정답 숫자 자체가 없음 |
| 실패의 조용함 | 동기화 한 번 실패하면 표는 없이 조용히 어긋나고, 초과판매가 나서야 발견 |
정리하면 — 정확한 수량은 애초에 '알 수 없는 값'을 좇는 일이에요. 좇을수록 코드는 복잡해지고, 틀릴 구석만 늘어납니다.
② 우리가 내린 결정 — 핵심 지표를 '품절 정확성'으로
그래서 질문을 바꿨어요. "재고 숫자를 어떻게 맞추지?"가 아니라 "이 상품, 지금 팔 수 있나 없나?". 답은 둘 중 하나 — 판매중 / 품절. 이 2상태만 정확히 맞추기로 했습니다.
| 항목 | 수량 동기화 | 품절 여부만 |
|---|---|---|
| 맞춰야 할 값 | 3사 × 옵션별 정확한 숫자 | 판매중/품절 2상태 |
| 정답 존재? | 애매(몰마다 다름) | 명확(팔 수 있나 없나) |
| 경합 위험 | 큼(마지막 1개 다툼) | 작음(품절되면 3사 다 내림) |
| 코드 복잡도 | 높음 | 낮음 |
③ 그래서 단순해진 것
상태가 2개로 줄자, 재고 로직이 거짓말할 구석이 확 줄었어요.
🔧 품절 여부만 남기니 생긴 변화
- 판단 하나로 통일: "판매 옵션이 하나라도 살아있나?" → 다 죽었으면 품절, 하나라도 살아있으면 판매중.
- 품절되면 3사 동시에 내림: 숫자를 좇지 않으니 "어디는 −1, 어디는 지연" 같은 어긋남이 사라짐.
- 초과판매를 크게 줄임: 마지막 재고가 나가면 곧장 '품절'로 전환 → 두 몰이 동시에 받는 사고가 줄어듦.
- 복구가 쉬움: 동기화가 한 번 튀어도, 다음 주기에 "지금 팔 수 있나"만 다시 계산하면 스스로 정합.
④ 반직관이지만 맞는 이유
"재고 수량을 안 맞춘다고?" 하실 수 있어요. 그런데 되짚어 보면 — 수량의 정확도가 사업에 주는 이득이 생각보다 작습니다. 고객은 "재고 몇 개 남음"을 크게 신경 쓰지 않는 경우가 많아요(우리가 겪은 범위에서). 반면 "주문했는데 품절이라 취소"는 나쁜 경험으로 직결됩니다(우리 경험). 우리가 지켜야 할 건 후자였어요.
물론 예외는 있습니다 — 수량 자체가 상품 가치인 경우(한정판 "3개 남음" 마케팅 등)엔 수량 노출이 의미 있죠. 하지만 일반 의류·잡화의 대량 셀링에선 "품절이냐"가 훨씬 중요한 지표였습니다.
⑤ 자동화 관점 — 단순한 규칙이 덜 틀린다
자동화에서 제일 무서운 건 "가끔 틀리는데 조용히 틀리는" 로직이에요. 수량 동기화가 딱 그랬습니다. 품절 여부는 규칙이 하나라 검사도 쉽고, 틀려도 눈에 띄고, 다음 주기에 자가 교정됩니다.
| 원칙 1 | 핵심 지표는 품절 정확성. 수량 정합은 목표에서 내림 |
|---|---|
| 원칙 2 | 품절 판정은 '판매 옵션이 하나라도 살아있는가' 하나로 통일 |
| 원칙 3 | 주기마다 다시 계산(상태 재산출)해 튐을 자가 교정 — 누적 차감에 의존하지 않음 |
정리 — 맞출 수 없는 걸 좇지 마라
재고를 완벽히 맞추려던 시절엔 코드도 마음도 늘 불안했어요. "지금 3사 재고가 맞나?"를 확신할 수 없었으니까요. 맞출 수 없는 숫자(수량)를 버리고, 맞출 수 있는 것(품절 여부)에 집중하자 오히려 사고가 줄고 시스템이 조용해졌습니다. 핵심만 다시 담으면:
- 고객 사고는 '수량 오차'가 아니라 '품절 초과판매' — 지켜야 할 지표를 바꿔라
- 수량은 정답이 없는 값, 품절 여부는 명확한 2상태
- 단순한 규칙이 덜 틀리고 자가 교정된다
다음 편에선 이 '품절 판정'이 옵션(색·사이즈) 구조와 어떻게 엮이는지로 이어가 볼게요. 상품을 올리는 쪽은 3사 필드 비교, 남는 돈 계산은 수수료 비교에서 이어집니다. 배배였습니다.