2025.04.24~2025.05.01
- Java
- 별도의 클래스 없이 App에 모든 코드를 작성
- 메뉴 아이템은 String[]으로 선언되어 이름, 가격, 설명이 한 문장으로 이루어져있다.
- 메뉴 아이템의 이름, 가격, 설명을 속성으로 가지는 클래스 생성
- Lv1과 달리 각 메뉴아이템들이 하나의 객체로 선언되어 있다.
- List을 속성으로 가지며 메뉴를 관리
- Lv2의 App에서 메뉴판을 출력하고 메뉴 선택을 받는 반복 과정을 Kiosk 클래스의 start() 메서드로 구성하도록 변경
- List과 이름을 속성으로 가지며 메뉴를 카테고리 별로 관리
- Kiosk 클래스는 List를 속성을 가지도록 변경하여 여러 카테고리별 메뉴를 관리
- MenuItem, Menu 그리고 Kiosk 클래스의 속에 직접 접근하지 못하도록 설정
- Getter와 Setter 메서드를 사용해 데이터를 관리
- 메뉴를 입력 받으면 이를 저장한 클래스들을 생성
- CartItem 클래스는 MenuItem과 수량을 속성으로 가져 주문한 메뉴별 개수를 관리
- Cart 클래스는 List과 총가격을 속성으로 가져 장바구니의 기능을 한다.
- Enum Discount를 생성하면 장바구니 주문 시 할인 기능을 추가
- Menu 클래스의 MenuItem을 출력할 때 스트림을 사용하도록 수정
- 장바구니 취소 시 이름을 직접 입력받아 스트림을 활용해 인덱스를 찾고 삭제하는 기능 추가
- App 실행 시 메뉴판 출력 → 메뉴 선택 → 선택한 메뉴 재출력 (무한 반복, 메뉴로 0 선택 시 종료)
- App 실행 시 카테고리 먼저 출력 → 메뉴 선택 → 선택한 메뉴 재출력
- 카테고리 선택 → 메뉴 선택 → 주문 여부 확인 → 장바구니에 추가
- (장바구니에 메뉴가 있다면) 카테고리에서 주문 취소 옵션 선택 가능
- 주문 시 할인 항목 선택 가능
- 장바구니 메뉴 직접 입력하여 취소 가능