Skip to content

[행성 로또] 정성욱 미션 제출합니다.#36

Open
SeongUk52 wants to merge 31 commits intowoowacourse-precourse:mainfrom
SeongUk52:SeongUk52
Open

[행성 로또] 정성욱 미션 제출합니다.#36
SeongUk52 wants to merge 31 commits intowoowacourse-precourse:mainfrom
SeongUk52:SeongUk52

Conversation

@SeongUk52
Copy link

@SeongUk52 SeongUk52 commented Jan 10, 2026

javascript-planetlotto-precourse

전체 기능목록

입력

  • 로또 구입 금액을 입력
  • 당첨 번호 입력
  • 보너스 번호 입력

출력

  • 발행한 로또 수량 및 번호를 출력
  • 당첨 통계 출력
  • 예외 발생시 에러 문구 출력

검증

  • 구입 금액, 로또 번호, 보너스 번호가 숫자인지 검증(문제에서 주어진 기능)

뷰는 이미 문제에 구현되어 있으므로 이를 활용해서 나머지를 구현해야함! 뷰에서 요구하는파라미터를 제공해야한다

실제 구현한 기능 목록

검증

  • 구입 금액 양수 or 0인지 검증
  • 당첨 번호가 1~30사이의 정수인지 검증
  • 로또 번호가 5개인지 검증
  • 보너스 번호가 1~30 사이의 정수인지 검증
  • 로또 번호와 보너스 번호에 중복이 없는지 검증

로또번호

  • 로또 번호는 5개의 중복되지 않는 1~30사이의 정렬된 랜덤으로 중복없이 생성된 숫자를 가짐
  • 로또 구입 금액에 따라 로또를 생성
  • 당첨번호와 보너스 번호를 입력받아서 등수를 반환
  • 모든 로또의 등수 목록(countsByRank)를 뷰에서 원하는 형식에 맞춰 반환

도전목록 (15:46 시작 종료시간 17:00)

최종테스트에서 도전은 리팩토링과 확장성을 고려한 하드코딩된 값 제거에 초점을 두었습니다.
승리 조건을 상수로 관리하여 핵심 로직(도메인, 리포지토리, 서비스)에 손대지 않고도 상수파일 변경만으로 승리 조건을 바꿀 수 있게 했습니다.

리팩토링 도전 (하드코딩 제거)

  • 에러 메시지 목록 파일로 분리 및 상수처럼 사용
  • 승리 조건 상수화 하고 중복제거 및 확장성 향상(승리조건 변형 가능)
  • 확장성을 고려하여 승리 조건을 컨트롤러에 주입하여 사용(보류, 필수아닌거같고 시간 오래걸리고 코드 지저분해짐)
  • 로또 가격 상수 분리
  • 로또 숫자 범위 상수 분리
  • 로또 개수 상수 분리
  • 최소구매금액 상수 분리(기본 0)
  • 로또번호 정렬 조건 상수화 (기본 오름차순, 함수의 상수화)

- 로또 번호는 5개의 중복되지 않는 수를 가짐
- 로또와 로또 저장소의 단위 테스트 작성 및 통과
- 서비스 레이어에서 구입 금액에 따라 500원으로 나누고 정수단위로 내림하여 로또 구입 개수 산정 후 그만큼 로또 번호 생성
- 단위 테스트 생성 및 통과
- 이후에 당첨 조건을 주입받아 확장성을 늘리기로 한다. (우선은 하드코딩으로 구현)
- 기존에 아무것도 반환하지 않았다
- 기본 테스트의 기능 테스트통과
- 검증을 제외한 모든 기능 연결
- TODO: 검증기능구현
- 잘못 작성된 TODO 수정
- 승리 조건을 변경하기 쉽도록 상수로 대체
- 숫자 개수에 등수조건 개수가 잘못 들어가 있었음
- TODO: 로또 숫자 개수 상수화
- 기본적으로 최소 구입 금액이 나와있진 않음
@SeongUk52 SeongUk52 changed the title Seong uk52 [행성 로또] 정성욱 미션 제출합니다. Jan 10, 2026
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

Comments