Summary
- 주제 : 패스트푸드 매장을 위한 고객용-매장용 키오스크 시스템 제작
- 개발기간 : 2020-11 ~ 2020-12
- 참여인원 : 5명
- 프로젝트 목표 : 고객주문모듈, 주문관리모듈, 매출관리모듈, DB로 구성된 패스트푸드 매장용 키오스크 시스템을 구축하면서 폭포수 개발 모델을 체험한다.
- 깃허브 링크 : https://github.com/aroundthistime/kiosk_clone
Stack
(본인이 사용한 스택에 한해 Bold 처리하였습니다.)
- Pug
- Scss
- Gulp
- MongoDB (mongoose)
- Express
- NodeJS
Content
주문진행을 하는 고객용 키오스크와 주문처리·매출관리·메뉴관리를 하는 매장용 키오스크, 그리고 완료된 주문을 알려주는 알림판 크게 세 가지 시스템을 웹 페이지를 통해 구현하였으며 메뉴 및 로고는 버거킹 공식 사이트로부터 차용하였습니다. 그 중 고객용 키오스크·알림판의 프론트엔드 및 관련 API 구현, DB스키마 설계, 조원들의 코드 리뷰를 담당하였습니다. 본 프로젝트는 개발보다는 폭포수모델 개발 프로세스를 경험하는 데 중점을 둠에 따라 COCOMO 방식의 비용계산, 작업 분할 구조도 작성, CPM 네트워크 차트, 간트 차트 등의 방식을 프로젝트 과정에서 도입하였습니다.
Features
(담당한 부분에 한해 Bold 처리하였습니다.)
- 메뉴 확인 및 주문 진행
- 언어 변환(영어, 한글)
- 실시간 주문 처리 (확인/완료/취소)
- 완료된 주문번호 알림 (실시간 음향 알림)
- 메뉴 관리(등록, 삭제, 품절처리 등)
- 매출 분석 및 특이사항 기록
Images










Takeaway
- 브루트포스가 아닌 개발 프로세스 경험
본 프로젝트는 '무엇을' 개발할지보다 '어떻게' 개발할 지에 초점을 맞춘 프로젝트였습니다. 따라서 브루트포스가 아닌 폭포수 모델을 채택하여 개발을 진행하였으며 그에 따라 프로젝트 계획서, 요구분석 명세서, 설계 사양서, 테스트 보고서를 작성하였습니다. 테스트는 경계 값 분석, 조건·분기·분기/조건 검증 기준 화이트 박스 테스트, 기본 경로 테스트 등의 방법을 통해 이루어졌으며 개발과정에서 버그리스트를 공유함으로써 함께 문제 해결을 시도하고 유사한 오류가 재발하는 것을 방지할 수 있었습니다.
- 실시간 네트워킹에서 HTTP가 보여주는 한계
주문알림, 처리 등과 관련된 실시간 처리 기능을 구현하는 과정에서 팀원들의 기술 역량 문제로 Polling 방식을 채택하였습니다. 이후 프로젝트가 종료되는 과정에서 콘솔 출력을 통하여 해당 방식으로인해 서버 측에서 발생하는 오버헤드를 직접 체감할 수 있었습니다. 해당 프로젝트는 실제 배포를 진행하지 않았고 동시 접속자 수 역시 많지 않다는 점에서 이러한 방식이 전체 시스템의 성능을 저하시킬 정도의 부하를 발생시키지는 않겠지만 추후에 규모가 큰 프로젝트를 진행할 때 실시간 처리능력으로써 HTTP가 가질 한계를 파악할 수 있었습니다. 따라서 이를 극복하기 위해 또 다른 실시간 네트워킹 기술인 Websocket을 학습하고 이후에 진행하는 프로젝트들에 도입하였습니다.
- 효율적인 커뮤니케이션의 중요성
팀원 간 기술 역량의 차이가 심하고 코로나로 인해 모든 회의가 기존의 팀 프로젝트와 다르게 비대면으로 대체되면서 이전에 경험한 어떤 프로젝트보다 팀원 간 커뮤니케이션의 중요도와 난이도가 높았던 프로젝트였습니다. 따라서 팀원 간 원활한 커뮤니케이션과 참여도를 유도하기 위해 의사 결정 과정에서 각 팀원의 이름을 직접 호명하며 의견을 묻거나 매 회의 종료 과정에서 그 결론을 정리하는 방법을 도입했습니다. 그럼에도 '주방', '매장' 등과 같이 동일한 대상에 대해 통일되지 않은 용어를 사용하면서 팀원들의 소스코드간 변수·함수 이름에 통일성이 없는 문제, 회의가 종료된 이후에 일부 팀원들이 회의에서 다뤄진 내용을 제대로 인식하지 못함에 따라 개발이 원활히 진행되지 않거나 동일한 회의 내용이 반복적으로 다뤄지는 문제 등이 발생하였습니다. 이러한 경험을 통해 협업 과정에서의 커뮤니케이션이 가지는 중요도를 다시금 느낄 수 있었으며 유사한 문제가 재발하는 것을 방지하기 위해 해당 실패 사례로부터 도출해낸 커뮤니케이션 스킬들을 이후 프로젝트인 '딜리버리쉐어'에 적용하였습니다. (자세한 내용은 해당 프로젝트 페이지 참고)
'프로젝트 (잡다한)' 카테고리의 다른 글
투두 애플리케이션 (0) | 2022.02.22 |
---|---|
게임 전적조회 사이트 (리그오브레전드) (1) | 2022.02.22 |