쉽게 매장을 관리할 수 있는 편의점 키오스크 (Java)

😂흑... 김테이가 드디어 첫 프로젝트를 했습니다~!!

비로소 개발자가 된 기분!

 

아무튼 진짜 후기 들어갑니다


JAVA Semi Project

기간 : 2월 8일 ~ 2월 14일
주제 : Vending machine
단, 오직 java만 사용할 것! DB 사용X


🛒 주제 선정

팀원들과 많은 고민 끝에 ...
[ 무인 편의점 키오스크 ] 로 선정하였다.

 


🛒 선정한 이유
언택트 시대에 맞춰 무인매장 확대가 예상되어
무인 편의점 키오스크를 기획하려 했습니다!

.. 도 있지만
사실은 우리끼리의 궁극적인 목표는
자바의 여러 기능을 활용할 수 있는 것이었기 때문에
기발한 주제보다는 기본에 충실할 수 있는 주제를 택했습니다.



🛒 역할

팀장 세부 코딩 및 전체 총괄
팀원1 & 김테이 이용자 기능 + 공통 기능
팀원2 & 팀원3 & 팀원4 관리자 기능 + 공통 기능

 



🛒 기능

공통 기능 상품 구매 (상품 선택 → 카테고리 선택 → 재고 선택)
장바구니 (장바구니 확인, 구매, 비우기)
결제 (현금결제, 잔액결제) ... 잔액결제는 회원만 가능!
영수증 출력
주민번호 유효성 검사
성인 인증
 
이용자 모드 기능 회원가입
로그인
잔액 충전
 
관리자 기능 관리자용 로그인
프로그램 종료 (오직 이 기능으로만 종료할 수 있다)
매출 관리 (전체 매출, 카테고리별 매출)
재고 관리 (상품 추가, 수량 변경, 삭제)

 



🛒 플로우차트 (Flowchart)

내가 그린 플로우차트
이렇게 그려보니까 한 눈에 구조를 알 수 있어서 이해하기에도 엄청 도움이 되었다!!

+ 쌤한테 칭찬받았따 히히

✔ 플로우차트는 여기서 그리면 편하다!
https://go.gliffy.com/

 

Gliffy Online

go.gliffy.com




🛒 프로젝트 진행 방식

 

 

zoom (수업 때), discord (수업 이후, 주말) 활용하여
화면 공유를 하며 회의를 하면서 진행했다.

각자 맡은 부분을 만들고 다 같이 한 화면을 보면서
합쳐보는 방식으로 진행하고 오류가 발생할 시
다 같이 머리를 모아서 해결해나갔다!

 

 

 



🛒 후기 (깨달은 것)

1. 이론과 실습은 완전 완전 완전히 다르다.
2. 각자의 코드를 합쳐보는 것도 사전에 많은 걸 정해야 안전하다.
3. 데이터를 유지시키거나 수정하고 저장하는 걸 구조적으로 신경을 많이 써야겠다.
(예를 들면 로그인을 하고 장바구니를 추가, 로그아웃하고 비회원의 장바구니를 들어갔더니 물건이 남아있다던가 ...)
(장바구니에 넣어둔 걸 비웠는데 재고가 준다던가 ..)
4. 상속과 인터페이스, 클래스를 굳이 왜 하는지 궁금했는데 정말 편리한 기능이었다.
(3번의 문제를 거의 여기서 문제가 있었고 여기서 해결을 했다.)
5. 그럼에도 여전히 어렵다. 공부를 더 열심히 해야겠다.



🛒 아쉬웠던 점 + 구현하지 못한 것
1. 뒤로가기를 제대로 구현하지 못한 것
구조적으로 막혀있는 부분은 없지만
로그인으로 들어가고 로그인을 안 하고 메인페이지로 가려면
뒤로가기는 없고 로그인을 다섯 번 틀려야 자동으로 메인페이지로 가게 되는..
그런 번거로운 부분이 아쉬웠다.

이용자 : 앗! 실수로 로그인으로 들어왔네! 나가야지 ...

프로그램 : 응~ 다섯 번 틀릴 때까지 못나가 ~

2. 너무 기본 기능에만 충실했다. 재밌는 이벤트나 서비스를 추가했으면
재밌는 프로그램이 되었을 것 같다.
예를 들면 .. 쿠폰발급이나 선물하기, 원플러스원 ...
(물론 잠은 못 잤겠지만! ^0^)

3. 협업이 미숙했다는 점!
아무래도 다들 처음이라 협업이 미숙했다.
모두가 열심히 했지만 파일 공유할 때
누군가 코드를 짜고 전체 파일을 압축해서 공유 ..
또 누가 수정을 하면 그걸 압축해서 공유 ..
이 과정에서 열심히 수정하고 보니까 예전 파일이라던가 하는 문제점들이 있었다.

물론 이것도 과정을 거쳐서
폴더명을 통일하기로 하여 체계가 잡혀 갔지만
압축하고 공유하는 부분은 여전히 번거로웠다.

나는 test로 진행하다가 다 같이 날짜_시간 으로 파일 명을 바꿨다.
한 시간 단위로 폴더 자체를 공유했는데
이게 가벼워서 다행이지 현업에서 무거운 폴더들을 다룬다면 ... ㅎㄷㄷ

 

+ 이 문제를 완전히 해결해줄 수 있는 Git이라는 걸 알게되었다!

 


발표 후 피드백
1. 클래스 내부에서 냅다 인스턴스 생성하는건 피하자
2. 기능에 대한 구현을 하고 코드 보여주기 (변경 값은 비포, 애프터 확인해주기)
3. 피티할 때는 완급 조절 잘하자


소감
세미 프로젝트를 진행해 보니
처음엔 모두가 뭐부터 시작해야 할지를 몰라서 막연했던 게
이제는 어떻게 진행되는 알 수 있었고 팀원들 모두의 실력도 발전하는 게 보였습니다.

또한 DB와 Git에 대한 갈증을 느낄 수 있었습니다.
어려웠고 힘들었지만 코딩의 재미를 느낄 수 있었던 첫 프로젝트였습니다!