Package | Class | Description |
---|---|---|
Container | DependencyInjectionContainer | 의존성 주입 컴포넌트 컨테이너 |
Controller | PurchaseLottoController | 메인 로직 컨트롤러 |
Service | AmountService | `PurchaseAmount` & `ProfitAmount` 비즈니스 로직 처리 |
LottoService | `Lotto` & `Lottos` 비즈니스 로직 처리 | |
Model | PurchaseAmount | 로또 구입 금액 |
ProfitAmount | 로또 당첨 금액 | |
Bonus | 로또의 보너스 번호 | |
WinningLotto | 로또의 당첨 번호 & `Bonus`를 관리하는 일급 컬렉션 | |
Lotto | 로또의 숫자를 관리하는 일급 컬렉션 | |
PurchasedLottos | 구매한 `Lotto`(들)을 관리하는 일급 컬렉션 | |
Command | PurchaseAmountCommand | 로또 구입 금액 입력 검증 커맨드 |
LottoCommand | 로또의 당첨 번호 입력 검증 커맨드 | |
BonusCommand | 로또의 보너스 번호 입력 검증 커맨드 | |
View | View | 사용자 입/출력 처리 |
DTO | PurchaseAmountUserInput | 로또 구입 금액 사용자 입력 |
WinningLottoUserInput | 로또의 당첨 번호 사용자 입력 | |
BonusUserInput | 로또의 보너스 번호 사용자 입력 | |
MatchResult | `PurchaseLottos`의 당첨 결과 | |
MatchResults | `MatchResult`의 일급 컬렉션 | |
Exception | GlobalException | 전역 에러 처리 |
기능 | 컴포넌트 | 구현 | 브랜치 |
---|---|---|---|
예외처리 | GlobalException | ✅전역 예외처리 | exception |
InputException | ✅사용자 입력 관련 예외처리 | ||
AmountException | ✅금액 관련 예외처리 | ||
LottoException | ✅로또 관련 예외처리 | ||
로또 구입 금액 사용자 입력 | PurchaseAmountCommand | ✅`PurchaseAmount` 유효성 검증 | feat/purchase-amount-input |
View | ✅`PurchaseAmountUserInput` 사용자 입력 처리 | ||
PurchaseAmountCommand | ✅`PurchaseAmountUserInput` 반환 | ||
로또 구매 | Lotto | ✅1장 가격 상수 | feat/purchase-lottos |
LottoService | ✅`Lotto` 1장 가격 반환 | ||
AmountService | ✅`PurchasedLottos` 구매 | ||
PurchasedLottos | ✅`PurchasedLottos` 생성 | ||
LottoService | ✅`PurchasedLottos` 발행 | ||
Lotto | ✅`Lotto` 오름차순 정렬 | ||
리팩토링 | View | ✅`displayOutPut` 메서드 추가 | refactor |
ValidateCommand | ✅사용자 입력 재시도 로직 추가 | ||
Lotto | ✅`LottoTest` 통과 하기 위한 검증 로직 추가 | ||
당첨 번호 입력 | LottoCommand | ✅`Lotto` 당첨 번호 유효성 검증 | feat/winning-lotto-input |
View | ✅`WinningLottoUserInput` 당첨 번호 사용자 입력 처리 | ||
LottoCommand | ✅`WinningLottoUserInput` 당첨 번호 반환 | ||
LottoService | ✅`WinningLottoUserInput`를 `WinningLotto`로 변환 | ||
보너스 번호 입력 | BonusCommand | ✅`Bonus` 보너스 번호 유효성 검증 | feat/lotto-bonus-input |
View | ✅`Bonus` 보너스 번호 사용자 입력 처리 | ||
✅`Bonus` 반환 | |||
LottoService | ✅`WinningLotto`에 보너스 번호 추가 | ||
로또 당첨 조회 | LottoService | ✅`WinningLotto`와 `PurchasedLottos` 매칭 여부 | feat/match-winning-lotto |
LottoService | ✅`MatchResults` 반환 | ||
MatchResult | ✅`MatchResult` 생성 | ||
MatchResults | ✅`MatchResult` 추가 | ||
로또 당첨 통계 출력 | ProfitRate | ✅`ProfitRate` 수익률 생성 | feat/match-winning-lotto-output |
ProfitAmount | ✅`ProfitAmount` 수익 금액 생성 | ||
AmountService | ✅`ProfitRate` 반환 | ||
LottoProfitCommand | ✅`MatchResult` & `ProfitRate`당첨 금액 및 수익률 출력 커맨드 생성 | ||
View | ✅`LottoProfitCommand`로 수익률 출력 | ||
출력 리팩토링 | OutputCommand | ✅출력 로직 개선 | refactor-output |
로또 컨트롤러 | LottoController | ✅로직 조합 | dev/controller |
의존성 주입 | DependencyInjectionContainer | ✅컴포넌트 의존성 주입 | dev/dependency |
출력 포맷 리팩토링 | ValidateCommand | ✅개행문자 추가 | refactor-output-message |
✅구매 금액 자료형 변경 | |||
✅숫자 포맷 가독성 향상 | |||
LottoConstant | ✅상수 병합 | ||
Command | ✅패키지 수정 | ||