1. 동기
문뜩 연락온 친구의 말
"회사에 창고가 있는데 바코드 리더기를 활용한 재고관리 프로그램을 도입하고 싶은데 금방 만들지?"
> "해볼게"
2. 환경
1) 현재 창고 앞에 쓰이지 않는 노트북 존재 (최악의 사양)
2) 사내 재고 관리로 보안 필요할수도? > 웹은 후순위
3) 노트북 내 공유 폴더에 엑셀로 관리하면 모두가 확인할 수 있을 것 같다. (※사용자가 어르신이 많다)
4) 바코드 리더기를 써서 만들면 있어 보일 것 같다. (어르신이 좋아함)
3. 기능 설계
1) 바코드 리더기를 활용한 엑셀 재고관리 프로그램으로 결정
2) 품목별 리스트를 데이터화 하도록 친구에게 요청 (품목별 고유ID 부여, QR코드 생성)
3) 정리된 qr코드 북 제작
> 입·출고 등록 페이지 이동
> ID가 포함된 qr코드를 리더기로 조회
> 품목 리스트에서 해당 항목 존재 확인 및 상세 데이터 조회
> 입·출고 등록페이지 리스트 추가 (default 수량 1, 입·출고일자 오늘)
> 해당 목록 삭제 및 데이터 수정가능
> 입·출고 등록
> 입·출고 히스토리 페이지 저장(고유id를 key값으로 입·출고 별도 저장)
> 해당 입출고를 참고하여 기본 품목 리스트에 현황 재고 반영
4. 후기
1) 엑셀 vba를 활용한 제작은 처음으로 낯설었지만 GPT를 활용해 7시간 정도 소요해 제작
2) 엑셀이라고 무시할 게 아니라 통신이 굳이 필요 없거나 엑셀이 편리한 사용자에게 괜찮은 프로그램인 것 같다.
3) 바코드 리더기를 사용해 본 적이 없어 작동 원리에 대해 걱정했지만 실제로는 리더기가 정말 단순하게 해당 바코드에 저장된 데이터를 읽어 연결된 기기에 String 형식 키보드로 입력한 것과 같은 인식으로 작동되어 간편히 제작 가능했다.
4) 대신 키보드 입력과 같은 인식으로 엑셀에선 특정 셀에 포커스를 맞춰줘야 했다. 그래서 입·출고 등록 페이지에 해당 셀을 따로 생성하였는데 약간 부자연스럽기는 하다.
5) 웹으로 제작시엔 바코드를 인식할 수 있는 코드를 활용해 실제 pos기계 처럼 제작 가능할 것 같다.
// 리더기 인식 script
$(document).scannerDetection({
timeBeforeScanTest: 200,
startChar: [120],
endChar: [13],
avgTimeByChar: 40,
onComplete: function(barcode, qty) {
alert(barcode);
}
});
6) 현재 간단하게 엑셀로만 제작해 전달하였는데 필요시 웹이나 앱으로 제작해 볼 예정
7) 궁금해서 당일 바코드 리더기 당근에서 구매해서 테스트했다.
스크린샷
댓글