products.md파일에서 상품 정보 로드promotions.md파일에서 프로모션 정보 로드
- 상품 정보 관리 (이름, 가격, 재고)
- 프로모션 상품과 일반 상품 구분
- 재고 수량 업데이트
- 재고 부족 체크
- 프로모션 기간 체크
- 프로모션 유형별 할인 계산 (1+1, 2+1)
- 프로모션 재고 관리
- 프로모션 적용 가능 여부 확인
- 멤버십 할인율 계산 (30%)
- 최대 할인 한도 적용 (8,000원)
- 프로모션 후 잔여 금액에 대한 할인 계산
- 총구매액 계산
- 할인액 계산 (프로모션 + 멤버십)
- 최종 결제 금액 계산
- 상품 구매 입력 처리 (
[상품명-수량]형식) - 프로모션 추가 구매 여부 입력 처리 (Y/N)
- 정가 구매 여부 입력 처리 (Y/N)
- 멤버십 할인 적용 여부 입력 처리 (Y/N)
- 추가 구매 여부 입력 처리 (Y/N)
- 입력값 유효성 검증
- 상품 목록 출력
- 영수증 출력 (구매 내역, 증정 내역, 금액 정보)
- 에러 메시지 출력
- 안내 메시지 출력
-
CopyProduct
- 상품 기본 정보 관리
- 재고 관리
- 가격 정보 관리
-
Promotion
- 프로모션 정보 관리
- 프로모션 적용 가능 여부 확인
- 할인 계산
-
Cart
- 구매 상품 목록 관리
- 총 금액 계산
-
Payment
- 결제 금액 계산
- 할인 적용
- 최종 금액 계산
-
Store
- 전체 상품 관리
- 재고 관리
- 프로모션 관리
-
CopyStoreService
- 상품 조회
- 재고 확인
- 프로모션 적용
- 결제 처리
-
PaymentService
- 할인 계산
- 멤버십 할인 적용
- 최종 금액 계산
-
CopyInputView
- 사용자 입력 처리
- 입력값 유효성 검증
-
OutputView
- 상품 목록 출력
- 영수증 출력
- 메시지 출력
-
FileIO
- 상품 정보 파일 읽기
- 프로모션 정보 파일 읽기
- 잘못된 형식의 입력
- 존재하지 않는 상품
- 재고 초과 구매
- 잘못된 Y/N 입력
- 재고 부족
- 프로모션 기간 외 적용 시도
- 프로모션 재고 소진
- 멤버십 할인 한도 초과
- 상품 관리 테스트
- 프로모션 적용 테스트
- 할인 계산 테스트
- 재고 관리 테스트
- 결제 프로세스 테스트
- 파일 입출력 테스트
- 할인 정책 통합 테스트
- 재고 소진 케이스
- 최대 할인 한도 케이스
- 프로모션 경계 케이스