[내배캠 18일차] 키오스크 과제 회고 (+ 숙제 고봉밥)

말하는 감자·2025년 3월 14일

내일배움캠프

목록 보기
19/73

키오스크 과제 해설...............을 보고 참 많은 생각을 했다.
모자란 것도 많고 제대로 안된 것도 많은데 과제를 끝내부려서 아쉽다는 생각도 했다.


과제 내용

https://github.com/Ksr-ccb/Sparta-Kiosk
했던 내용을 계속 반복해서 쓰는 것도 햄드러서 그냥 깃허브 올린다. 리드미 진짜 정성스레 작성했기 떄문이다.


부족했던 것


먼저 클래스 구조다..
저번 TIL 에서도 키오스크가 너무많은 일을 해서 고민이 된다고 언급했던 점이 있었는데,

1. 🖥Kiosk 클래스 나누기

Kiosk를 KioskKioskService으로 나눠서 해도 좋았을 뻔 했다...........

Kiosk

  • 메인함수에서 만들어진다.
  • 쇼핑카트와 메뉴리스트 들을 받아온다.
  • 사용자의 입력에 따라서 알맞는 함수를 실행시키고 데이터를 관리한다. (장바구니 내역 같은?)

KioskService

  • 메인함수에서 만들어진다
  • 키오스크를 시작하는 함수를 내포하고 있다.
  • 사용자에게 보여질 출력과 키오스크 흐름을 관리한다.

2. 🛒장바구니 클래스 나누기

여기서는 MenuMenuitems처럼 객체 그자체와 그 객체를 관리하는 클래스로 나누어도 될듯하다..

Cart

  • 장바구니에 담는 데이터 그자체만 가진다.
  • getter, setter가 있음.

CartShopping

  • 장바구니 총 금액, 장바구니 총 갯수 등 데이터와 장바구니 객체 추가
  • 메뉴 수정 함수, 메뉴 리스트 출력 함수 등이 존재할 수 있다.

❤️‍🔥Map<Menuitem, Integer> 으로 장바구니 관리하기

저번에는 HashSet과 TreeSet에 대해서 알아봤었는데
이번엔 Map을 미처 생각하지 못했다..

[내배캠 6일차]자바 문법 종합반 1주차 / Git 2차 특강 / HashSet+TreeSet과 List 비교
Map에 대한 내용은 회고 작성이 끝나는대로 갈겨보겠다...

키값으로 오는 Menuitem의 중복을 제거해주고 Integer 로 수량을 관리한다..

그럼 이런식으로 분류되어야 겠지


코드 짤 때 설계팁 ( 튜터님이 언급하신 내용 )

1️⃣. 클래스를 작성하고 그 안에서 클래스가 해야 할 역할을 정리한다.

해당 객체는 어떤 역할을 하고, 어디서 생성이되고 누구랑 상호작용 할지 생각하자.

2️⃣. 역할을 지정 했으면 그 역할이 해야할 일을 주석으로 작성한다.

작성할 때는 위에서 부터 차례대로 진행되기 때문에
진행순서에 맞게 작성하고
조건문이나 반복문도 구분이 확실하게 되게 탭을 한번 더 넣어주는 방식으로 구분한다.

3️⃣. 주석을 구현한다.

<구현한 후에 꼭 확인해야할 것들>

  • 코드가 직관적으로 흘러가는 것이 잘 보이는가
  • 주석이 없어도 코드가 뭘 하고잇는지 잘 보이는가

1️⃣ ~ 3️⃣ 다시 클래스 추가작성 반복

구현을 다 하고나서 거기서 파생되는 기능이나 객체(서비스? 물건?)가 필요할 것이다
그럼 또 클래스 새롭게 만들어서 1번부터 반복해주면 된다.

패키징 이용하기

프로젝트 안에서 패키지를 용도별로 정리할 수 있다.
다음부터는 더 깔끔하게....만들어볼 수 잇을 것 같다...

profile
대충 데굴데굴 굴러가는 개발?자

0개의 댓글