Skip to Content
Step1Q7. 에러 처리 위치

Q7. 에러 처리와 유효성 검증 로직은 어디에 위치해야 하나요?

선배 크루의 질문

“유효성 검사를 Controller에서 해야 하나 Model에서 해야 하나 페어와 의견 충돌이 있었습니다. 페어는 코드의 모듈화를 위해 외부(Controller)에서 검증을 한 후 Model에 데이터를 넣자는 의견이었고, 저는 코드의 확장성과 재사용성을 위해 Model 내에서 검증을 하자는 의견이었습니다.” — PR #167 (링크 )

“유효성 검사를 지금은 여러 클래스에서 별다른 규칙없이 하고 있는데, 유효성 검증 로직은 누가 들고 있어야 할까요?” — PR #173 (링크 )

“입력 유효성 검사의 위치가 미션을 진행하면서도 고민입니다.” — PR #183 (링크 )

AS-IS 코드

class LottoGameController { submitPurchase(input) { if (isNaN(input)) { alert('숫자를 입력해주세요.'); return; } if (input < 1000) { alert('1000원 이상 입력해주세요.'); return; } if (input % 1000 !== 0) { alert('1000원 단위로 입력해주세요.'); return; } this.lottoGame.purchase(input); } } class Lotto { constructor(numbers) { this.numbers = numbers; } }

Last updated on