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

[2단계 - 웹 기반 로또 게임] 초코(강다빈) 미션 제출합니다. #327

Merged
merged 32 commits into from
Mar 12, 2024
Merged
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
62baebc
feat: README.md에 기능 목록 작성
00kang Feb 26, 2024
dd41dab
feat: 스타일 가이드에 맞게 기본 속성 설정
00kang Feb 26, 2024
4f41559
feat: header, vody, footer 구조 만들기
00kang Feb 26, 2024
ac429f0
feat: 구입할 금액 입력 UI 구현
00kang Feb 27, 2024
d42a7c7
feat: 구입할 금액 입력 동작 구현 및 구입 버튼에 이벤트 추가
00kang Feb 27, 2024
981d8fe
feat: step2 전용 로또 컨트롤러 생성
00kang Feb 28, 2024
7c09a47
feat: 구입금액에 따른 로또 발행 css 구현
00kang Feb 28, 2024
c2ff8dd
feat: 구입 금액에 따른 로또 발행 컨트롤러 연결
00kang Feb 29, 2024
88ffc94
feat: 구입 금액에 따른 로또 티켓 발행
00kang Feb 29, 2024
e055ac1
feat: 당첨번호, 보너스 번호 입력 및 결과 확인하기 버튼 구현
00kang Feb 29, 2024
1d3cf9a
feat: 결과 확인하기 버튼 클릭시 나오는 모달 ui 구현
00kang Feb 29, 2024
daae585
feat: 모달 창 내의 결과값 컨트롤러 연결
00kang Feb 29, 2024
79403d1
feat: 모달창 닫기, 모달창에서 재시작 기능 구현
00kang Feb 29, 2024
065f781
feat: 구입 금액에 대한 유효성 검사 미통과시 에러 메시지 출력 구현
00kang Feb 29, 2024
c13e5c7
feat: 구입 금액에 대한 유효성 검사 추가
00kang Mar 1, 2024
d42f37d
refactor: 로또 발행 갯수 메서드 분리 및 OUTPUT_MESSAGE 활용
00kang Mar 1, 2024
63e1378
refactor: 로또 발행 및 출력 메서드 eslint(max-per-lines) 오류에 따라 분리
00kang Mar 1, 2024
449345e
refactor: 메서드명 일관성 부여 및 eslint(max-lines-per-function) 오류 해결을 위해 메서드 분리
00kang Mar 1, 2024
e7599a5
style: 에러 메시지 영역 확보를 위한 스타일링 수정
00kang Mar 1, 2024
2157f3d
feat: 당첨번호 및 보너스 번호 입력 구현
00kang Mar 3, 2024
5df0790
fix: 당첨번호와 보너스 번호 각각 유효한 값일 경우에만 결과 확인하기 가능하도록 수정
00kang Mar 3, 2024
211e979
feat: 게임 출력 결과 모달창 수정
00kang Mar 4, 2024
d5a85bd
feat: 게임실행 파라미터 eslint(max-params) 오류 해결을 위해 {}로 묶기 및 모달창 닫기 추가 구현
00kang Mar 4, 2024
978151a
style: css 선택자 간결화
00kang Mar 4, 2024
761dcba
feat: README.md 업데이트
00kang Mar 4, 2024
6cd14e1
feat: 빌드 스크립트 추가
00kang Mar 4, 2024
6c2a2d7
feat: README.md에 배포 링크 추가
00kang Mar 4, 2024
08a54ca
refactor: html 주석 제거 및 모달 css 분리
00kang Mar 6, 2024
86e59f3
refactor: event 객체로 접근
00kang Mar 7, 2024
a6119e6
refactor: 실행 방법 window.onload에서 DOMContentLoaded로 변경
00kang Mar 7, 2024
f6556c9
refactor: 구입 금액 입력값 숫자로 변환하는 메서드 분리
00kang Mar 7, 2024
4b3c9d2
refactor: 모듈에서 직접 호출 방식으로 변경
00kang Mar 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/util/validation/PurchaseAmountValidator.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,16 @@ class PurchaseAmountValidator {

static validate(purchaseAmount) {
this.validateIsNumber(purchaseAmount);
const numberInput = parseInt(purchaseAmount, 10);
const numberInput = this.convertToNumber(purchaseAmount);
this.validateIsInteger(numberInput);
this.validateIsAtLeast(numberInput, OPTIONS.LOTTO.price);
return numberInput;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

사실 const numberInput = this.convertToNumber(..) 이 부분이 아예 validate 밖으로 나가길 기대했어요.
validate이라는 함수를 호출할 때 저라면 순수하게 validate을 해주는 역할만 기대할 것 같습니다.
값이 유효하지 않을 때 에러를 던져주거나 값이 유효한지 아닌지 boolean을 반환하는 동작을 기대할 것 같아요.
내가 넣은 값을 어떤 방식으로는 parse해서 반환해주는 동작을 기대할 것 같지는 않아요.
제가 말씀드린 예측 가능성이 여기서 나옵니다. 물론 이벤트 핸들러 같은 아이들까지 모든 동작을 함수 이름에 명시하기는 어렵겠지만 validate같이 작은 아이들 만큼은 그 이름으로 예측할 수 있는 일만 하도록 작성해주세요!


static convertToNumber(purchaseAmount) {
return parseInt(purchaseAmount, 10);
}

static validateIsNumber(value) {
if (!/^\d+$/.test(value)) {
throw new Error(`${ERROR_MESSAGES.prefix}${ERROR_MESSAGES.isNotNumber(this.name)}`);
Expand Down