PartsClub
수입차 부품 ERP
수입차 부품 유통 전문 AI-ERP. 50,000+ SKU를 대상으로 딥러닝 수요 예측 엔진이 리드타임·계절성·이상 수요를 반영해 최적 발주량을 자동 산출. pgvector 기반 시멘틱 검색이 OEM 번호·차종·모델명 혼용 쿼리를 처리하며 B2B 대리점 포털과 B2C 몰을 단일 재고 레이어 위에 통합 운영.
Architecture Overview
PostgreSQL 단일 재고 원장 위에 FastAPI 백엔드가 수요 예측 서비스·시멘틱 검색 서비스·채널별 가격 엔진을 오케스트레이션. B2B 대리점 포털과 B2C 몰은 동일 API를 공유하되 price_rules + visibility_policy 테이블로 상품·가격을 채널 분리.
pgvector ivfflat · klue/roberta-base 임베딩 · XGBoost 시계열 앙상블 · 단일 재고 원장 CQRS
Technical Problems
OEM·차종·모델명 혼용 쿼리 처리 불가
수입차 부품 검색은 "BMW 5시리즈 E60 브레이크패드"처럼 OEM 번호·차종·연식·한글명이 뒤섞인다. LIKE 검색은 표기 변형에 무력하고 전문 검색 엔진도 도메인 문맥을 이해하지 못한다.
수요 예측 학습 데이터 희소성
긴 꼬리 SKU는 월 1~2건 판매 데이터만 존재해 딥러닝 단독 적용 시 과적합. 리드타임 변동·계절성·이상 수요(리콜·단종 예고) 요인이 복합 작용한다.
B2B·B2C 이중 채널 재고 동시 접근
대리점 선할인 예약과 B2C 장바구니가 동시에 같은 SKU에 접근할 때 초과 판매 방지와 채널별 가격 노출 분리가 필요하다.
Engineering Approach
pgvector ivfflat + klue/roberta-base 파인튜닝
`parts.embedding VECTOR(1536)` 컬럼, klue/roberta-base 모델을 부품 도메인 코퍼스로 파인튜닝해 OEM 번호·차종·한글명을 동일 벡터 공간에 임베딩. ivfflat 인덱스(probe=32)로 50K SKU p95 40ms 이내 시멘틱 검색 구현.
XGBoost 앙상블 + 유사 부품 군집 prior
3년 판매 이력에 리드타임·계절 지수·이상치 플래그를 피처로 추가한 XGBoost 앙상블. 희소 SKU는 유사 부품 군집 평균을 Bayesian prior로 사용해 cold-start 해결. 일 1회 Cloud Run 배치 재학습, MAPE 12% 달성.
단일 재고 원장 + PostgreSQL MVCC 동시성
`inventory_ledger` 단일 테이블, SELECT FOR UPDATE로 선점 잠금. `price_rules(tier, customer_id, sku_id, rate)` + `visibility_policy(channel, sku_id, visible)` 테이블로 채널 분리. 분산 잠금 없이 PostgreSQL MVCC만으로 동시성 제어.
Measurable Outcomes
40ms
검색 p95
50K SKU ivfflat 시멘틱 검색
−62%
재검색률
부품명 혼용 쿼리 정확도 향상
12%
예측 MAPE
XGBoost 앙상블, 희소 SKU 포함
2.1x
재고 회전율
자동 발주 제안 수락률 78%
Tech Stack
Visual Architecture
System Architecture
Semantic Search Pipeline
OEM 번호 · 차종 · 한글명 혼용 쿼리 — 동일 벡터 공간에서 크로스-모달 매칭
Demand Forecasting
Cold-start: Bayesian prior from similar SKU cluster · Cloud Run daily batch
Channel Architecture — Single Inventory Ledger
SELECT FOR UPDATE · PostgreSQL MVCC · no distributed lock needed
Project Specs
Year
2026
Duration
6개월
Capability
Commerce & Platforms
Status
ActiveTechnologies