유통 재고관리 시스템
매장별로 흩어져 있던 재고를 본사 기준으로 통합하고 실시간 동기화했습니다.

- 개발 기간
- 약 7개월
- 투입 인원
- 5명
- 지원 플랫폼
- 웹 · 서버
- 연동 시스템
- 기존 회계 시스템
배경
매장마다 재고 장부가 따로 돌고 있었다. 본사가 전체 재고를 파악하려면 매장에 전화를 돌리거나 엑셀을 취합해야 했고, 그 사이 실제 재고와 장부가 어긋나는 일이 반복됐다.
구현 범위
- 매장별 재고 입출고 등록
- 본사 통합 재고 조회
- 매장 간 재고 이동 요청·승인
- 재고 부족 임계치 알림
- 기존 회계 시스템 연동
- 매장 담당자용 모바일 화면
기술 선택
그 상황에서 무엇을 왜 골랐는지기존 회계 시스템은 그대로 두고 재고 데이터를 API로만 동기화
회계 시스템을 새로 만들면 세무 처리까지 다시 검증해야 해서 리스크가 컸다. 재고관리 영역만 새로 짓고 마감 시점에 회계 쪽에 필요한 수치만 API로 넘기는 편이 안전했다.
재고 변동을 상태 값 갱신이 아니라 입출고 이벤트로 기록
지금 재고가 몇 개인가만 저장하면 왜 그렇게 됐는지 추적이 안 됐다. 입고·출고·이동을 각각 이벤트로 쌓고 현재 재고는 그 합으로 계산하게 하니, 재고 불일치가 발생했을 때 어느 시점 어느 매장에서 어긋났는지 거슬러 올라갈 수 있었다.
기술 과제
문제
매장 직원이 재고 이동을 등록만 하고 상대 매장이 확인하지 않는 경우 장부와 실물이 어긋났다.
접근
이동 요청과 수령 확인을 별도 단계로 나누고, 수령 확인 전까지는 두 매장 모두의 재고에 이동 중 상태로 표시되도록 했다.
결과
이동 중인 재고가 어느 매장 소관인지 화면에서 바로 확인되어, 수령 누락으로 인한 장부 불일치를 줄일 수 있었다.
문제
기존 회계 시스템은 야간 배치로만 데이터를 받는 구조라, 재고 시스템에서 실시간으로 내보내는 이벤트와 주기가 맞지 않았다.
접근
재고 시스템 쪽에 일별 마감 스냅샷을 별도로 쌓아두고, 회계 시스템의 배치 주기에 맞춰 그 스냅샷만 전달하는 중간 계층을 뒀다.
결과
재고 시스템은 실시간 이벤트 구조를 유지하면서 회계 시스템은 기존 방식 그대로 데이터를 받을 수 있었다.
이관과 운영
매장 담당자용 사용 매뉴얼과 본사 관리자용 운영 가이드를 별도로 작성해 전달했다. 소스코드와 배포 인프라 구성을 인수인계하고, 초기 3개월은 매장 확장 시 발생하는 이슈에 한해 유지보수를 지원했다.