노락

황현중·2026년 5월 8일

[제목] ERP 결산의 적! DB 트리거로도 막지 못한 '시점재고 마이너스(-)'의 비밀과 해결책

안녕하세요! 오늘은 ERP를 도입한 많은 제조/유통 기업에서 월말 결산 때마다 담당자들의 뒷목을 잡게 만드는 단골 문제, 바로 '시점재고 마이너스(-)' 현상에 대해 파헤쳐 보려고 합니다.

"우리 회사는 DB에 마이너스 재고 차단 트리거(Trigger)를 강력하게 걸어놨는데, 왜 과거 날짜로 재고 현황을 조회하면 마이너스가 뜨는 걸까요?"

개발자와 현업 담당자 모두를 귀신 홀린 듯하게 만드는 이 현상! 시스템 오류일까요? 결론부터 말씀드리면 시스템은 죄가 없습니다. 현장의 '전표 입력 시차'와 '예외 처리 악용'이 만들어낸 완벽한 합작품입니다. 그 이유를 3가지 핵심 단서로 명쾌하게 정리해 드립니다.

🕵️‍♂️ 1. 트리거(Trigger)는 '타임머신'이 아닙니다
시스템에 걸어둔 마이너스 방지 트리거는 전표를 저장하는 '지금 이 순간'의 총재고만 검사하는 문지기입니다. 반면, 시점재고(과거 재고)는 현재 재고에서 과거의 입출고 내역을 거꾸로 더하고 빼는 '역산(타임머신)' 방식으로 계산됩니다.

여기서 맹점이 발생합니다.

상황: 5월 1일에 100개가 입고되었습니다. 작업자가 5월 2일에 출고를 잡으면서, 실수로(또는 고의로) 수불 날짜를 '4월 25일'로 쳤습니다.

트리거의 판단: "지금 창고에 100개 있으니까 출고 통과!"

시점재고의 계산: 4월 30일 기준으로 장부를 조회하면? 5월 1일 입고는 아직 일어나지 않은 미래의 일이고, 출고는 4월 25일에 발생했으니 장부는 마이너스(-) 가 찍힙니다.

즉, 실물이 아무리 넉넉해도 '전표 상의 입고 날짜보다 출고 날짜가 더 과거로 잡히면' 시점재고는 무조건 마이너스를 뱉어냅니다.

🕵️‍♂️ 2. 깐깐한 LOT 관리를 뚫는 마법의 단어, '가짜 LOT'
마이너스 재고가 터지는 두 번째 이유는 현장의 '귀찮음'에서 비롯됩니다.
보통 강력한 통제를 위해 'LOT 관리 품목'에만 깐깐한 마이너스 차단 로직을 걸어두는 경우가 많습니다. 출고할 때 정확한 LOT 번호를 지정해야만 전표가 넘어가도록 말이죠.

하지만 바쁜 현장 작업자들은 정확한 LOT 번호를 찾는 대신 꼼수를 발휘합니다.

99991231 같은 가짜(더미) LOT 번호를 입력하거나,

LOT 번호 칸을 아예 빈칸(Blank) 으로 둔 채 저장을 때려버립니다.

트리거는 이런 비정상적인 데이터(빈칸 등)를 만나면 "이건 예외 품목인가 보네?" 하고 검사를 건너뛰어 버립니다. 결국 진짜 재고는 그대로 묶여있고, 있지도 않은 가짜 LOT에서 재고가 무한대로 빠져나가며 장부 밑바닥을 파고 들어가게 됩니다.

🕵️‍♂️ 3. 월말 결산의 대환장 파티, '실사 조정(J 전표)'의 늪
이렇게 가짜 LOT로 출고를 잡다 보면 4월 30일 월말 마감 때 사단이 납니다. 자재팀이 수불부를 뽑아보니 재고가 안 맞는 거죠.

"어? 99991231 LOT는 마이너스 35개고, 진짜 LOT에는 30개가 남아있네?!"

부랴부랴 장부를 실물과 똑같이 맞추기 위해 점심시간에 '재고 조정 전표'를 칩니다. 마이너스가 난 가짜 LOT에 수량을 채워 넣고, 원래 빼야 했던 진짜 LOT에서 물건을 털어냅니다.

마감일 당일에 마이너스와 플러스를 오가며 억지로 숫자를 끼워 맞췄으니, 그 이전 날짜로 시점재고를 돌려보면 누적된 마이너스 적자가 화면에 그대로 노출될 수밖에 없습니다.

💡 그럼 어떻게 해결해야 할까? (솔루션)
이 문제는 DB 트리거만으로는 완벽히 막을 수 없습니다. 전산팀과 현업 부서가 함께 움직여야 합니다.

[전산팀] 화면 단의 철통 방어 로직 추가

출고/투입 전표 입력 화면(UI)에서 LOT 관리 대상 품목일 경우, 99991231 같은 더미 번호나 빈칸이 들어오면 아예 '저장(Save)' 버튼이 눌리지 않도록 스크립트를 추가해야 합니다.

[현업팀] 실시간 전표 입력 및 PDA 도입

입고보다 출고가 먼저 잡히는 '수량 역전 현상'을 막기 위해서는 실물 흐름과 전산 흐름이 1:1로 일치해야 합니다. 바코드/PDA를 도입하여 현장에서 즉시 수불을 잡는 것이 가장 완벽한 예방책입니다.

결산 때마다 시점재고 마이너스 리스트를 뽑아들고 범인을 찾으러 다니셨다면, 오늘 당장 DB 수불원장을 열어 '입고 없는 출고 데이터'와 '가짜 LOT 데이터'를 색출해 보세요! 원인을 알면 시스템의 구멍을 완벽하게 막을 수 있습니다.

Tags: #ERP #시점재고 #결산마감 #재고관리 #데이터베이스 #트리거 #스마트팩토리 #ERP개발 #전산실무

0개의 댓글