Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[크리스마스 프로모션] 강승구 미션 제출합니다. #4

Open
wants to merge 91 commits into
base: main
Choose a base branch
from

Conversation

Win-9
Copy link

@Win-9 Win-9 commented Nov 15, 2023

  • Service

이벤트 플래너의 자세한 로직을 담당합니다.

  • Controller

서비스층의 메소드를 이용하여 전체 흐름에 관여합니다.
또한 가져온 데이터에 대해 view로 넘겨주어 view가 해당 데이터를 사용할 수 있습니다.
입력 오류 시 try-catch를 통해 재입력을 요구합니다.

  • error

발생하는 에러에 대한 에러 정리를 하였습니다.

  • view

콘솔의 입력, 출력을 담당합니다.

  • Utils

직접적인 흐름에 관여하지 않고, 사용자 입력에 대한 valid체크와 파싱을 담당합니다.

  • Domain

플래너 수행에 있어서 행위의 객체들을 정리하였습니다.

  • Type

연관성 있는 단위로 정리한 Enum입니다.

3주간 미션을 수행하면서 얻었던 피드백과 지식들을 바탕으로 가장 공들인 미션수행입니다.
자세한 비즈니스 로직과 도메인에 해당하는 로직의 경계와 객체들의 관계에 대해
깊은 고민을 하고 구현하였습니다.

사용할 Enum타입 정리 및 추가
주문 시 음식을 저장하는 음식객체 추가
음식타입을 enum으로 분리
주문에 따라 맞는 음식을 분리
사용자의 정보를 저장하는 클래스 추가
사용자의 정보 저장시 검증
입력시, 출력시의 역할 클래스 분리
방문 날짜를 입력하려 이를 저장한다.
방문 날짜를 입력하는 전체 흐름 사용
메뉴를 입력받고 이를 검증 후 리스트로 변환
메뉴와 갯수를 입력 후 이를 저장
날짜 선언부분 제거
주문에 따른 메뉴 출력
음식 계산 시 총 금액을 더하도록 변경
할인 전 금액을 계산하여 출력
주말, 특별 날짜의 Enu타입과 포함여부 메소드 추가
날짜에 따른 크리스마스 이벤트 할인 합계 로직 구현
헤택에 대한 텍스트 Enum 추가
Map을 이용하여 혜택 내용들을 저장
구매하지 않은 내역은 put하지 않도록 변경
양식에 따라 혜택내역을 출력
혜택리스트를 Map으로 저장
과중된 로직으로 메소드 분리
출력 양식에 따라 controller 메소드 정리
1미만의 메뉴 입력시 에러 처리와 동시에 메소드 분리
메소드의 역할 분리로 Valid로 이동
길이를 줄이기 위하여 반복을 진행하는 로직으로 변경
에러 발생시 에러를 보여주고 입력을 다시 받도록 변경
정상과 예외에 대한 날짜 테스트 구현
음식 주문시 정상과 예외테스트 구현
같은 객체를 참조하도록 외부에서 주입 변경
정상 입력에 대한 테스트 추가
평일, 주말에 따른 혜택 금액 테스트 추가
혜택과 할인 테스트를 각각 진행
실제 입력에 따른 날짜 예외 테스트 추가
실제 입력에 따른 날짜 예외 테스트 추가
양식과 다른주문 입력과 존재하지 않는 음식, 중복 입력에 대한 테스트 추가
주문에 따라 주문 내역을 출력
음료만 여러개 주문하는 경우 오류를 잡지 못하는 경우를 해결
음료만 주문시의 예외 테스트 구현
금액에 따라 달라지는 할인적용, 증정 유무 출력 테스트
금액에 따라 옳바른 배지를 지급하는지 테스트
혜택이 아무것도 없을 시 '없음'을 출력
자바 컨벤션에 따라 포매팅 수정
MeanOfRedStone referenced this pull request in MeanOfRedStone/java-christmas-6 Nov 22, 2023
1. ChristmasController
- int reservation 변수로 날짜 저장

2. InputView
- readDate()
1 ~ 31 사이의 날짜를 입력할 때까지 입력 반복
- validateDate()
1 ~ 31 사이의 날짜를 입력하지 않으면 IllegalArgumentException 발생

3. InputException
- dateInputError()
날짜 입력 잘못했을 때의 출력문구
MeanOfRedStone referenced this pull request in MeanOfRedStone/java-christmas-6 Nov 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant