중대한 버그가 터져서 원인을 확인해보았다.
원인은 일주일전 내가 만든 프로그램.
재고를 폐기하는 프로그램인데, 이 프로그램이 문제가 발생한 것이었다.
문제는 이 프로그램은 그야말로 완벽한 경우의 수를 모두 동원해서 오류가 생길 가능성을 틀어막았다고 생각한
프로그램이었는데 (테스트 과정에서도 문제가 없었다.) 오류가 발생했다는 점에서 당혹감을 감출 수 없었다.
그런데 확인하다보니 구멍이 드러났다.
이 프로그램은 기본적으로 [창고입력] -> [품목입력] -> [수량입력] 과정을 거치는데
여기서 수량을 입력하여 재고가 변동되면, 창고를 다시 바꿔 기존 재고가 틀어지지 못하도록 차단하는 기능이 있었다.
이렇게 재고의 안정성을 유지하는 기능이었는데, 수량을 다시 0처리하고 창고를 바꿔도 그에따라 재고를 유지하는데,
여기서 특수창고라는 기능이 문제였다.
아무튼 자세한 설명은 생략하고..............
사용자는 이 단 하나 특수창고쪽의 정말 작은 부분을 눈치챘는지 그부분으로 우회입력을 시켜버려서
죄다 틀어져 버린 것이다.
테스트 할때는 상상도 못했는데... 대단하다......
그래서 창고 변경 기능 자체를 틀어막아 버렸다.
못바꿔 이놈들아.