- 재고 관리
- 재고 관리 클래스 (싱글톤 패턴 필요)
- (상품명 - 재고 수량) 으로 구성된 Map? 필요
- 재고 상태 입력(불러오기) 기능 (products.md 파일을 읽고 반영)
- 재고 최신화 기능 (차감 시 즉각 반영)
- 재고 확인 기능
- 프로모션 입력 기능?
- 프로모션 할인
- 오늘 날짜 확인 기능
- 프로모션 데이터 입력(불러오기) 기능 (promotions.md 파일 읽고 반영)
- 적용 가능한 프로모션 확인 기능
- 프로모션 적용이 가능한 상품에 대해 고객이 해당 수량보다 적게 가져온 경우, 필요한 수량을 추가로 가져오면 혜택을 받을 수 있음을 안내하는 기능
- 프로모션 재고가 부족하여 일부 수량을 프로모션 혜택 없이 결제해야 하는 경우, 일부 수량에 대해 정가로 결제하게 됨을 안내하는 기능
- 멤버십 할인
- 할인 기능
- 영수증 출력
- 영수증 클래스
- 구매 상품 내역 저장
- 증정 상품 내역 저장
- 금액 정보 저장
-
입력 형식 예외
- 입력 형식이 적절하지 않은 경우 (구매할 상품과 수량 입력 형식 오류, Y/N에서 다른 값 입력)
- 불러오는 파일의 형식에 오류가 있는 경우 (products.md, promotions.md 파일)
-
입력 값 예외
- 존재하지 않는 상품을 입력한 경우
- 구매 수량이 재고 수량을 초과한 경우
- String.format 을 적극적으로 이용하면 좋을 것 같다.
- 정규식을 사용하면 편할 것 같다.
- 유효성 검사를 각자 하도록 만들어보자.