Post

자바(Java) Swing UI + 네트워크 소켓으로 만든 학식(학생식당) KIOSK (유사 프로그램)

깃허브 

https://github.com/ayaysir/pseudo-kiosk-haksik

 

제작 연도

2018

 

사용기술

Java(Swing UI + 네트워크 소켓), CSV

 

제작 목적

프로그래밍 학습과 더불어, POS 및 KIOSK 원리 파악의 목적을 위해 제작하였습니다.

 

프로젝트 구조

[caption id=”attachment_3180” align=”alignnone” width=”255”] 클라이언트 : 고객(KIOSK 기계)[/caption]

 

[caption id=”attachment_3182” align=”alignnone” width=”227”] kiosk.properties 예제[/caption]

 

[caption id=”attachment_3181” align=”alignnone” width=”243”] 클라이언트 : 주방[/caption]

 

[caption id=”attachment_3183” align=”alignnone” width=”254”] 서버 : 영양사실[/caption]

 

주요 특징 및 스크린샷

  • 학식(학생식당)에서 사용할 수 있는 KIOSK 머신용 프로그램과 주방 프로그램, 관리 서버로 구성됨
  • Swing UI와 네트워크 소켓을 사용하여 제작
  • 인터페이스 구현 방식 채택 - 메소드 기능 오버라이딩 가능
  • 스레드의 동기화(synchronized) 적용으로 잘못된 주문 방지
  • 여러 대의 키오스크 설치 가능
  • 서버가 설치된 사무실(영양사실)에서 메뉴 관리 및 정산
  • 자주 나오는 메뉴 세트를 CSV로 저장 및 불러오기 기능
  • 주방에서 주문 메뉴 확인 가능
  • 주방 구역(분식구역, 한식구역, 양식구역 등) 설정 기능
  • 식권 출력(발매) 기능
  • 거스름돈 기능
  • 메뉴 수량(재고) 관리 기능
  • 메뉴 홍보 기능

 

[caption id=”attachment_3168” align=”alignnone” width=”800”] 키오스크 화면 - 메뉴 주문, 합계 표시, 메뉴 홍보[/caption]

 

[caption id=”attachment_3169” align=”alignnone” width=”798”] 식권 발매 성공 화면[/caption]

 

[caption id=”attachment_3170” align=”alignnone” width=”797”] 가상 현금결제 상황 구현 - 기계와 연동한 경우 실제 현금결제 가능[/caption]

 

[caption id=”attachment_3171” align=”alignnone” width=”328”] 거스름돈 제공 알고리즘 구현[/caption]

 

[caption id=”attachment_3172” align=”alignnone” width=”1026”] 식권 발매 - 프린터가 연결된 경우 실제 출력 가능[/caption]

 

[caption id=”attachment_3174” align=”alignnone” width=”278”] 수량 제한 기능, 재고 알림 기능[/caption]

 

[caption id=”attachment_3175” align=”alignnone” width=”800”] 결제가 완료된 경우 키오스크 화면 초기화 및 재고상황 반영[/caption]

 

[caption id=”attachment_3176” align=”alignnone” width=”800”] 주방 관리 프로그램 - 남은 수량 및 진행상황 반영 기능[/caption]

 

[caption id=”attachment_3177” align=”alignnone” width=”664”] 요일별 메뉴 (CSV) 파일 불러오기[/caption]

 

[caption id=”attachment_3178” align=”alignnone” width=”800”] 수량 관리 기능 및 판매 통계, 정산 기능[/caption]

 

[caption id=”attachment_3179” align=”alignnone” width=”450”] 메뉴 CSV 파일[/caption]

This post is licensed under CC BY 4.0 by the author.