01. 입고 관리 — 5단계 상태 추적 ASN
예정 → 도착확인 → 하역 → 분류완료 → 적치완료까지 ASN 단위로 진행 상태를 관리합니다. 단계별 건수를 실시간으로 집계해 어느 구간에 물량이 묶여 있는지 즉시 드러냅니다.
01. Background & core mission
많은 현장에서 입고 예정은 메일과 엑셀로, 재고는 별도 장부로, 출고 진행은 담당자의 기억으로 관리됩니다. 숫자가 맞지 않는 순간 어디서 어긋났는지 되짚을 방법이 없다는 점이 가장 큰 비용이었습니다.
02. Core modules architecture
예정 → 도착확인 → 하역 → 분류완료 → 적치완료까지 ASN 단위로 진행 상태를 관리합니다. 단계별 건수를 실시간으로 집계해 어느 구간에 물량이 묶여 있는지 즉시 드러냅니다.
예정, 신규, 피킹대기, 피킹완료, 포장까지 출고 진행을 단계별로 나누어 처리합니다. 피킹 대기 건수를 별도 지표로 노출해 당일 마감 물량을 놓치지 않도록 했습니다.
SKU별 재고 수량과 창고 동별 분포를 집계하고, 스케줄러가 주기적으로 안전재고 미달 SKU를 검사해 경고를 발생시킵니다. 처리 결과는 활동 로그에 남아 추적이 가능합니다.
관리자, 창고 운영자, 조회자 역할로 기능 접근을 분리하고, 화주·품목·로케이션 등 기준정보를 한 곳에서 관리합니다. 담당자별 입고·출고·재고·품질 업무 배정도 함께 다룹니다.
03. Engineering challenges
입고·출고·재고·지연 항목 카드가 각각 독립 집계를 수행하면서, 데이터가 쌓일수록 첫 화면 로딩이 눈에 띄게 느려졌습니다.
해결: 동일 기준 시각으로 묶은 집계 결과를 Redis에 캐시하고 변경 이벤트 발생 시에만 무효화 — 대시보드 응답을 상수 시간에 가깝게 고정
여러 작업자가 같은 로케이션의 재고를 동시에 잡으면 수량이 음수로 떨어지거나 이중 할당되는 문제가 있었습니다.
해결: 재고 차감 구간을 Redis 분산 락과 원자적 갱신으로 감싸고, 실패 건은 재시도 큐로 분리해 작업 흐름을 끊지 않도록 처리
지연 여부를 화면마다 다른 기준으로 계산하면서 같은 건이 목록별로 다르게 보이는 혼선이 있었습니다.
해결: 예정일 대비 경과일 판정 로직을 서버 단일 지점으로 모으고, 모든 카드가 같은 기준 시각을 공유하도록 응답 구조를 통일
Next project or inquiry
도메인 모델링과 상태 흐름 설계에 대한 의사결정을 더 자세히 이야기할 수 있습니다.