결론부터 말하겠다: ERP와 WMS 재고 수치가 몇 주씩 맞지 않을 때, 근본 원인은 거의 항상 동기화되지 않은 마스터 데이터다. 인터페이스는 정상이고, 네트워크도 정상이다. 두 시스템이 '같은 품목'의 의미에 대해 합의하지 않았을 뿐이다. 두 개의 장부를 조정하는 것이 아니다. 처음부터 정렬된 적이 없는 두 언어 사이에서 번역하고 있는 것이다.
나는 이 벽에 세 번 부딪혔다. 중국 남부의 3C 액세서리 유통업체, 중국 동부의 화장품 풀필먼트 창고, 그리고 가장 최근인 올해 6월의 포산 소형 가전 수출업체에서였다. 매번 증상은 동일했다. IT가 일일 조정을 돌렸고, ERP와 WMS는 수백에서 수천 단위까지 어긋났으며, 아무도 이유를 설명하지 못했다. 재무는 IT를 탓했고, IT는 현장을 탓했으며, 현장은 실물 재고가 맞다고 주장했다. 매번 뚜껑을 열어보면 같은 것이 있었다. 마스터 데이터 드리프트였다.
마스터 데이터 동기화 이탈이 모든 악의 근원인 이유
ERP에서 품목은 재무와 구매의 언어다. 품목 코드, 설명, 사양, 측정 단위, 바코드, 치수, 중량이다. WMS에서 같은 품목은 현장의 언어다. 같은 코드이지만 ABC 등급, 적치 규칙, 회전 로직, 포장 계층이 더해져 있다.
이 속성 중 하나라도 어긋나면 재고는 두 개의 현실로 갈라진다. 내가 가장 자주 보는 다섯 가지 실패 유형은 다음과 같다. 체크리스트처럼 확인하라. 거의 확실하게 그중 하나가 당신의 문제다.
| 증상 | ERP의 주장 | WMS의 주장 | 실제 근본 원인 |
|---|---|---|---|
| 같은 SKU가 항상 고정량만큼 어긋난다 | 케이스 단위로 장부에 올린다 | 낱개 단위로 피킹한다 | 케이스-낱개 환산 계수가 WMS에서 유지되지 않았다 |
| 신규 품목을 입고 시 스캔할 수 없다 | 바코드가 ERP에 존재한다 | 바코드가 WMS로 전송되지 않았다 | 동기화 매핑에 바코드 필드가 누락되었다 |
| 순환 실사가 결코 맞지 않고, 차이가 일부 SKU에 몰린다 | 품목 상태가 그저 '활성'이다 | WMS에는 품질 보류, 동결, 파손 상태가 있다 | 상태 사전이 정렬되지 않았다 |
| 피커가 계속 잘못된 변형을 집는다 | 사양이 자유 텍스트이다 | 현장은 바코드에 의존한다 | 사양 필드 정의가 시스템 간에 다르다 |
| 월말 마감이 악몽이다 | 로트 단위로 원가를 추적한다 | WMS는 혼합 팔레트를 보관한다 | 로트 관리 속성 정의가 다르다 |
주목하라: 이 중 소프트웨어 버그는 하나도 없다. 모두 마스터 데이터 정의 불일치다. 따라서 서버 업그레이드, 인터페이스 재구축, 미들웨어 교체는 돈 낭비다. 해결책은 마스터 데이터 거버넌스에 있다.
플레이북: 가동 전야 마스터 데이터 체크리스트
이것은 내가 매 가동 전에 실행하는 체크리스트다. 모든 항목에 체크가 될 때까지 서명하지 않는다.
1단계: 단일 진실 원천을 정하라.
문서로 결정하라. ERP가 품목 마스터 데이터를 소유하고, WMS는 이를 소비한다. WMS에서 수동 품목 생성 금지, 수동 편집 단위 금지, 수동 입력 바코드 금지. 모두가 킥오프 회의에서는 고개를 끄덕이고, 3주차가 되면 조용히 무시한다. 나의 조치: WMS의 품목 유지보수 권한을 완전히 회수하고, 읽기 전용으로 두며, 모든 신규 품목을 ERP 주도 동기화를 거치도록 강제한다. 이것은 정책이지 제안이 아니다.
2단계: 모든 필드를 하나씩 매핑하라.
양쪽 시스템에서 전체 품목 테이블을 추출하고 필드 매핑 시트를 만든다. 다음 여덟 필드를 매의 눈으로 주시하라. 품목 코드, 설명, 사양/모델, 기본 측정 단위, 대체 단위와 환산 계수, 바코드(낱개, 내포장, 외포장 상자), 포장 계층, 로트 관리 플래그. 각 필드마다 세 가지를 문서화한다. ERP에서의 명칭, WMS에서의 명칭, 그리고 동기화 방향과 빈도다. 환산 계수는 별도로 강조할 가치가 있다. 내가 조사한 수량 불일치의 대다수를 일으킨다. ERP에서 '1케이스 = 24단위' 계수가 바뀌었는데 동기화되지 않고, WMS가 12단위로 계속 입고하면, 그 차이는 당신을 미치게 할 것이다.
3단계: 동기화 리듬을 선택하라. 정기, 이벤트 기반, 또는 둘 다.
나의 표준: 품목 마스터 데이터는 일정에 따라 동기화한다(야간 전체 패스에 더해 신규 품목 생성 시 이벤트 기반 푸시). 재고 트랜잭션은 실시간으로 간다. 마스터 데이터가 몇 초 안에 도착할 필요는 없지만, 반드시 도착해야 한다. 모든 프로젝트에서 세 가지를 요구한다. (1) 실제로 읽을 수 있는 동기화 로그. 어떤 품목인지, 언제인지, 성공인지 실패인지. (2) 실패 시 자동 재시도 3회, 이후 IT 담당자에게 SMS. (3) 매일 아침 8시에 운영과 IT 모두에게 이메일로 발송되는 자동 '어제의 마스터 데이터 변경' 다이제스트다.
4단계: 가동 전에 전체 차이 비교를 실행하고 더러운 데이터를 정리하라.
양쪽 품목 마스터를 내보내고, 품목 코드로 조인해 모든 것을 비교한다. 나의 규칙: 불일치율이 5%를 초과하면 가동일이 미뤄진다. 먼저 정리하라. 미리 말해두지 않으면 몇 달 동안 불 끄기에 쫓긴다. 내가 본 최악의 사례: 품목의 거의 3분의 1에서 바코드가 불일치했다. 수년간의 수동 입력 오류였다. 출시 전 2주간의 정리 후, 3개월 연속 99% 이상의 재고 정확도를 기록했다.
5단계: 현장에 탈출구를 주되, 감사 추적과 함께.
현실과 접촉하면 어떤 프로세스도 살아남지 못한다. 도크에서의 긴급 출하, 아직 ERP에 등록되지 않은 품목. 나의 접근법: WMS는 '임시 품목'을 만들 수 있지만, 24시간 후에 만료된다. 그 시점에 정식 ERP 품목으로 교체되지 않으면 주문이 자동 잠금되고 창고 관리자에게 사본이 전달된다. 임시 품목에는 만료 기한, 소유자, 완전한 감사 로그가 있다. 공인된 탈출구가 없으면 현장은 자체 우회책을 만들어내고, 그것은 훨씬 더 나쁘다.

두 가지 실화
첫 번째 이야기: 동기화되지 않은 바코드, 낭비된 3개월의 순환 실사. 2023년 11월, 선전의 휴대폰 액세서리 고객. 가동 3개월 후에도 실사 차이가 줄지 않았다. 2개월의 조사 끝에 원인을 찾았다. 공급업체가 외포장 상자 바코드 규칙을 바꿨고, ERP는 업데이트됐지만, 인터페이스의 필드 맵에 '외포장 상자 바코드' 필드가 없었다. 맵을 만든 사람은 불필요하다고 생각했다. WMS는 옛 바코드로 계속 입고했고, 스캔은 실패했으며, 직원들은 코드를 손으로 입력했고, 손 입력 코드는 틀렸다. 해결책: 필드를 추가하고, 전체 재동기화를 실행하며, 3개월치 수동 입고를 재감사했다. 교훈: 매핑 시트에 필드 하나가 빠졌다는 것은 전혀 통합하지 않았다는 뜻이다.
두 번째 이야기: 재무가 절도 혐의를 받을 뻔한 환산 계수. 올해 6월 포산에서, 가전 제조업체가 주전자의 포장 구성을 케이스당 6단위에서 8단위로 바꿨다. 구매는 ERP를 업데이트했지만, WMS는 통보를 받지 못했다. WMS는 6단위로 계속 입고했고, ERP는 8단위로 장부에 올렸다. 한 달 만에 수만 단위가 떠돌았다. 월말 마감이 폭발했고, 일주일 동안 사람들은 조용히 내부 절도를 의심했다. 나는 현장에 가서 양쪽 환산 계수를 나란히 비교했고, 5분 만에 찾았다. 이제 그 고객의 모든 환산 변경은 양쪽 시스템 확인이 포함된 승인 워크플로를 거친다.
직관에 반하는 결론
대부분은 ERP-WMS 통합에서 가장 어려운 부분이 인터페이스 기술이라고 생각한다. 어떤 미들웨어인지, 어떤 프로토콜인지, 동시성을 어떻게 처리하는지. 30건 이상의 가동을 거친 뒤 솔직히 말하겠다: 기술은 결코 어려운 부분이 아니었다. 어려운 부분은 양쪽 사업 팀이 마스터 데이터 소유자에 합의하도록 하는 것이다.
IT는 소유하고 싶어 한다. 사업 측은 '매일 사용하지 않으니 이해하지 못한다'고 말한다. 구매는 현장이 읽을 수 없는 사양 설명으로 품목을 만든다. 재무는 로트 세분성을 원하고, 운영은 속도를 원한다. 그 합의에 서명되기 전까지, 세상에서 가장 예쁜 인터페이스도 장식에 불과하다. 그래서 내가 매 프로젝트 킥오프에서 가장 먼저 하는 일은 기술 설계가 아니다. 세 당사자 모두를 한 방에 모아 마스터 데이터 거버넌스 문서에 서명시키는 것이다. 먼저 서명, 그 다음에 이야기한다.
가동 전야 체크리스트: 마스터 데이터 편(인쇄해서 체크하라)
- 단일 진실 원천을 문서로 작성했다. WMS 품목 유지보수 권한을 회수했다
- 8개 핵심 필드 모두에 대한 필드 매핑 시트가 완성됐다. 환산 계수를 독립적으로 재검증했다
- 동기화 로그를 읽을 수 있다. 재시도+SMS 알림을 종단 간 테스트했다
- 출시 전 전체 차이 비교에서 불일치율 5% 미만. 더러운 데이터를 정리했다
- 임시 품목 프로세스를 설정했다. 24시간 만료, 기한 초과 시 자동 잠금, 감사 추적
- 세 단계 바코드(낱개/내포장/외포장)가 모두 동기화되고 있다. 50 SKU 표본 검사를 통과했다
- 일일 마스터 데이터 변경 다이제스트를 자동화했다. 소유자를 확인했다
'go live'를 누르기 전에 일곱 항목 모두에 체크하라. 하나라도 빠지면 일정을 미뤄라. 일주일의 지연이 3개월의 불 끄기보다 낫다. 나는 모든 프로젝트에서 이렇게 말한다. 귀 기울이는 고객은 그 후 잘 잔다.
Lin Xiao, WMS 구축 컨설턴트 지음
영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.







