Skip to content

Conversation

@pleasebelieveme
Copy link
Owner

@pleasebelieveme pleasebelieveme commented Nov 5, 2025

  • 입력 메시지도 포함하므로 ViewMessages가 더 적절
  • InputView, OutputView import 수정
  • README에 상수 관리 현황 추가"

Summary by CodeRabbit

릴리스 노트

  • Documentation

    • 상수 관리 현황 및 설계 원칙 관련 문서 추가
  • Bug Fixes

    • 에러 메시지 일관성 개선 및 표준화
  • Refactor

    • 하드코딩된 메시지를 중앙화된 상수로 통합 관리
    • 사용자 인터페이스 메시지 및 출력 형식 최적화
  • Tests

    • 출력 뷰 동작 검증을 위한 테스트 추가

@pleasebelieveme pleasebelieveme merged commit 4d29b74 into main Nov 5, 2025
@coderabbitai
Copy link

coderabbitai bot commented Nov 5, 2025

Caution

Review failed

The pull request is closed.

🎯 분석

Walkthrough

상수 관리를 중앙화하기 위해 ErrorMessages.javaViewMessages.java 신규 상수 클래스를 도입하고, 기존 도메인, 파서, 뷰, 검증자 클래스들을 리팩토링하여 하드코딩된 메시지를 대체한다. LottoResult.calculateProfitRate()의 반환 타입을 String에서 double로 변경한다.

Changes

Cohort / File(s) 요약
상수 정의 및 문서화
README.md, src/main/java/lotto/common/ErrorMessages.java, src/main/java/lotto/common/ViewMessages.java
신규 상수 클래스 도입: ErrorMessages (20개 에러 메시지 상수), ViewMessages (8개 UI 메시지 상수). README에 상수 관리 현황 및 설계 원칙 문서 추가 (일부 중복 콘텐츠).
도메인 클래스 리팩토링
src/main/java/lotto/domain/Lotto.java, src/main/java/lotto/domain/LottoTickets.java, src/main/java/lotto/domain/WinningLotto.java
내부 상수 제거 및 ErrorMessages, LottoConstants 정적 임포트 적용. 검증 메시지를 중앙화된 상수로 대체.
LottoResult 변경
src/main/java/lotto/domain/LottoResult.java
calculateProfitRate() 반환 타입을 String에서 double로 변경. 검증 메시지를 LOTTO_RESULT_PURCHASE_AMOUNT 상수 사용.
파서 클래스 리팩토링
src/main/java/lotto/parser/BonusNumberParser.java, src/main/java/lotto/parser/PurchaseAmountParser.java, src/main/java/lotto/parser/WinningNumbersParser.java
로컬 에러 메시지 상수 제거 및 ErrorMessages 정적 임포트. 모든 검증 메시지를 공통 상수로 통합.
검증자 클래스 리팩토링
src/main/java/lotto/validator/InputValidator.java
LottoConstants (LOTTO_PRICE), ErrorMessages 정적 임포트. 구매 금액 검증 메시지를 중앙화된 상수 사용.
뷰 클래스 리팩토링
src/main/java/lotto/view/InputView.java, src/main/java/lotto/view/OutputView.java
ViewMessages 정적 임포트. 로컬 메시지 상수 제거. 출력 형식을 printf 기반으로 정리. OutputView에서 Collectors 제거 및 toString() 직접 호출.
테스트 업데이트
src/test/java/lotto/domain/WinningLottoTest.java, src/test/java/lotto/view/OutputViewTest.java
WinningLottoTest 에러 메시지 갱신. OutputViewTest 신규 추가 (4개 테스트: 로또 구매, 당첨 통계, 수익률, 에러 메시지 출력 검증).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • 주의 필요 영역:
    • LottoResult.calculateProfitRate() 반환 타입 변경에 따른 모든 호출 지점 검토 필요 (OutputView.printProfitRate 등)
    • README.md의 중복된 문서화 섹션 확인 (동일 콘텐츠 2회 삽입)
    • OutputView의 출력 형식 변경이 기존 테스트와 일치하는지 검증
    • 새로운 OutputViewTest의 테스트 커버리지 적절성 확인

Possibly related PRs

  • PR #16: LottoConstants 도입 — 현재 PR에서 사용되는 공유 상수 클래스와 직접 연결
  • PR #5: LottoResult 클래스 초기 구현 — calculateProfitRate() 메서드 변경으로 직접 영향
  • PR #3: 도메인 클래스(Lotto, WinningLotto) 초기 구현 — 내부 상수 및 검증 메시지 리팩토링의 대상

Poem

🐰 상수들을 한곳에 모아,
흩어진 메시지 정리하고,
중복 제거해 깔끔하게!
코드 정원을 다시 가꾸네,
재사용과 유지보수의 희망! ✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch pleasebelieveme

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 151f660 and 35ca8eb.

📒 Files selected for processing (15)
  • README.md (1 hunks)
  • src/main/java/lotto/common/ErrorMessages.java (1 hunks)
  • src/main/java/lotto/common/ViewMessages.java (1 hunks)
  • src/main/java/lotto/domain/Lotto.java (4 hunks)
  • src/main/java/lotto/domain/LottoResult.java (3 hunks)
  • src/main/java/lotto/domain/LottoTickets.java (2 hunks)
  • src/main/java/lotto/domain/WinningLotto.java (2 hunks)
  • src/main/java/lotto/parser/BonusNumberParser.java (2 hunks)
  • src/main/java/lotto/parser/PurchaseAmountParser.java (2 hunks)
  • src/main/java/lotto/parser/WinningNumbersParser.java (3 hunks)
  • src/main/java/lotto/validator/InputValidator.java (2 hunks)
  • src/main/java/lotto/view/InputView.java (1 hunks)
  • src/main/java/lotto/view/OutputView.java (1 hunks)
  • src/test/java/lotto/domain/WinningLottoTest.java (1 hunks)
  • src/test/java/lotto/view/OutputViewTest.java (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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.

2 participants