Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 

Repository files navigation

기능 목록

1. 파일 입출력 관련

  • products.md 파일에서 상품 정보 로드
  • promotions.md 파일에서 프로모션 정보 로드

2. 상품 관리

  • 상품 정보 관리 (이름, 가격, 재고)
  • 프로모션 상품과 일반 상품 구분
  • 재고 수량 업데이트
  • 재고 부족 체크

3. 프로모션 관리

  • 프로모션 기간 체크
  • 프로모션 유형별 할인 계산 (1+1, 2+1)
  • 프로모션 재고 관리
  • 프로모션 적용 가능 여부 확인

4. 멤버십 할인

  • 멤버십 할인율 계산 (30%)
  • 최대 할인 한도 적용 (8,000원)
  • 프로모션 후 잔여 금액에 대한 할인 계산

5. 결제 처리

  • 총구매액 계산
  • 할인액 계산 (프로모션 + 멤버십)
  • 최종 결제 금액 계산

6. 입력 처리

  • 상품 구매 입력 처리 ([상품명-수량] 형식)
  • 프로모션 추가 구매 여부 입력 처리 (Y/N)
  • 정가 구매 여부 입력 처리 (Y/N)
  • 멤버십 할인 적용 여부 입력 처리 (Y/N)
  • 추가 구매 여부 입력 처리 (Y/N)
  • 입력값 유효성 검증

7. 출력 처리

  • 상품 목록 출력
  • 영수증 출력 (구매 내역, 증정 내역, 금액 정보)
  • 에러 메시지 출력
  • 안내 메시지 출력

클래스 구조

1. 도메인 계층

  • CopyProduct

    • 상품 기본 정보 관리
    • 재고 관리
    • 가격 정보 관리
  • Promotion

    • 프로모션 정보 관리
    • 프로모션 적용 가능 여부 확인
    • 할인 계산
  • Cart

    • 구매 상품 목록 관리
    • 총 금액 계산
  • Payment

    • 결제 금액 계산
    • 할인 적용
    • 최종 금액 계산
  • Store

    • 전체 상품 관리
    • 재고 관리
    • 프로모션 관리

2. 서비스 계층

  • CopyStoreService

    • 상품 조회
    • 재고 확인
    • 프로모션 적용
    • 결제 처리
  • PaymentService

    • 할인 계산
    • 멤버십 할인 적용
    • 최종 금액 계산

3. 입출력 계층

  • CopyInputView

    • 사용자 입력 처리
    • 입력값 유효성 검증
  • OutputView

    • 상품 목록 출력
    • 영수증 출력
    • 메시지 출력
  • FileIO

    • 상품 정보 파일 읽기
    • 프로모션 정보 파일 읽기

예외 처리

1. 입력 관련 예외

  • 잘못된 형식의 입력
  • 존재하지 않는 상품
  • 재고 초과 구매
  • 잘못된 Y/N 입력

2. 비즈니스 로직 관련 예외

  • 재고 부족
  • 프로모션 기간 외 적용 시도
  • 프로모션 재고 소진
  • 멤버십 할인 한도 초과

테스트 계획

1. 단위 테스트

  • 상품 관리 테스트
  • 프로모션 적용 테스트
  • 할인 계산 테스트
  • 재고 관리 테스트

2. 통합 테스트

  • 결제 프로세스 테스트
  • 파일 입출력 테스트
  • 할인 정책 통합 테스트

3. 경계값 테스트

  • 재고 소진 케이스
  • 최대 할인 한도 케이스
  • 프로모션 경계 케이스

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages