[1단계 - 행운의 로또 미션] 결(김윤진) 미션 제출합니다#87
Conversation
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
Co-authored-by: SangMin Song <ssmin940606@gmail.com>
|
안녕하세요 결! MVC 패턴 관련해서는 제가 예전에 스터디를 하면서 다른 분에게 공유받았던 내용 전달드릴게요! Q: model, view의 인스턴스는 어디에서 생성하는 것이 좋을까요 Q:model에서 private 필드를 이렇게 선언하는것이 옳은 것인지 고민했습니다 Q: 메서드내의 임시변수 제거 vs 가독성 있는 변수 생성에 대해 고민했습니다 Q:view이벤트, 로또구매나 토글 버튼의 이벤트 리스너를 제 개인적인 생각이기 때문에(저도 아직 부족해서 정답은 아닙니다!) 결은 어떻게 생각할지 궁금하네요! |
austinpark420
left a comment
There was a problem hiding this comment.
안녕하세요 결!!
이렇게 리뷰를 하게되서 정말 반갑습니다.
리뷰 관련해서 코멘트를 남겨놨습니다!
files changed에 남기기 어려운 리뷰는 conversation부분에 남겨놓았으니 확인 부탁드릴게요!
고생 많으셨습니다 😄
| font-weight: bold; | ||
| letter-spacing: 1.25px; | ||
| margin-left: 15px; | ||
|
|
There was a problem hiding this comment.
체크를 못했네요ㅜㅜ
앞으론 더 꼼꼼하게 체크하겠습니다!
| @@ -0,0 +1,132 @@ | |||
| html, | |||
There was a problem hiding this comment.
user agent sylesheet 고려하셔서 reset.css 파일을 생성하셨나 보네요 👍
| it("테스트 명세", () => { | ||
| expect(true).toBe(true); | ||
| }); | ||
| import { |
There was a problem hiding this comment.
줄바꿈이 일정하지 않는 것 같습니다. 규칙을 만들어서 동일하게 적용해보시면 어떨까요?ㅎ
There was a problem hiding this comment.
eslint 설정 바꾸면 수정을 깜빡했네요
수정완료입니다!
| - [x] 금액은 빈값으로 입력할 수 없다 | ||
| - [x] 금액은 음수를 입력할 수 없다 | ||
| - [x] 구입한 로또 금액만큼 로또를 발급할 수 있어야 한다 | ||
| - [] 발급 후 로또의 번호를 볼 수 없다 |
There was a problem hiding this comment.
발급 후 로또의 번호를 볼 수 없다, 번호 보기 토글 버튼을 클릭해 로또 번호를 볼 수 있어야 한다. 구현하신 것 같은데 체크가 안되어 있네요ㅎ
| @@ -0,0 +1,10 @@ | |||
| export const LOTTO = Object.freeze({ | |||
There was a problem hiding this comment.
LOTTO만 Object.freeze을 한 이유가 있을까요?ㅎ
There was a problem hiding this comment.
이 객체는 변경할 이유가 없는 값이기 때문에 불변객체로 만들었습니다
에러 메시지를 담은 객체에도 하면 좋을 것 같네요!
| return lottoNum; | ||
| } | ||
|
|
||
| #generateRandomNum() { |
There was a problem hiding this comment.
generateRandomNum함수가 LottoModel에서 가지고 있는 이유가 궁금합니다.ㅎ
There was a problem hiding this comment.
흠...generateRandomNum 메서드가 LottoModel에서 가지고 있는 이유는 로또 번호를 하나씩 반환하니까 로또 관련 데이터라고 생각해서 lottoModel에 있어야 한다고 생각했습니다
오스틴은 따로 함수로 빼는 것이 좋다고 생각하시나요?
오스틴의 의견이 궁금합니다!
There was a problem hiding this comment.
저는 단순히 generateRandomNum를 구하는 함수는 유틸에 가깝다고 생각했거든요.
반환된 숫자 자체는 LottoModel 모델이 가져가야하는 부분은 맞지만요ㅎ
이 부분은 관점차이인것 같아서 결의 생각이 궁금했습니다 ㅎ
| expect(lottoResult).toHaveLength(lottoCount); | ||
| expect(isCorrectLottoLength).toBe(true); | ||
| }) | ||
|
|
There was a problem hiding this comment.
토글도 구현했으니 그 부분에 대한 test 코드도 있으면 좋을 것 같습니다!
There was a problem hiding this comment.
토글은 css만 조작해서 유닛 테스트보다는 e2e테스트에 가깝다고 생각해서 구현하지 않았습니다
오스틴은 어떻게 생각하시나요?
There was a problem hiding this comment.
네 제가 잘못생각했네요 🙏
e2e테스트에서 적용해주시면 될것 같습니다 ㅎ
|
|
||
| submitPurchaseLotto(event) { | ||
| const purchaseMoney = event.detail; | ||
| if (!isValidPurchaseMoney(purchaseMoney)) { |
There was a problem hiding this comment.
잘못된 금액이기 때문에 input value 값은 날려도 괜찮을 것 같습니다! ux측면에서 어떻게 생각하세요?ㅎ
|
안녕하세요 오스틴, 소중한 리뷰 감사드립니다! 질문 사항
이슈 관련
감사합니다👍 |
|
Q: 제가 이해한 바로는 이 부분과 상충하는 것 같습니다 Q: 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 Model에서 받야아 한다. 추가로 roy-jung 님이 록바님께 쓴 리뷰 중에 MVC 패턴에 대해서라는 글을 읽어보시면 좋을 것 같습니다!! |
|
안녕하세요 오스틴 |
|
안녕하세요 결! 구조를 처음부터 다시 짜신다니 쉽진않은 결정이셨을텐데 대단하신 것 같아요. 👍 |
|
제가 조금 더 생각해 봤는데 지금 구조에 대해서만 너무 많은 고민을 하고계신듯 해요. |
|
오스틴의 의견 너무 감사합니다 |
austinpark420
left a comment
There was a problem hiding this comment.
step1 구현하시느라 고생많으셨습니다!
서로 이야기한 부분에 있어서는 step2에서 코멘트 남기도록 하겠습니다!
그럼 주말 잘보내세요! 👍
| expect(lottoResult).toHaveLength(lottoCount); | ||
| expect(isCorrectLottoLength).toBe(true); | ||
| }) | ||
|
|
There was a problem hiding this comment.
네 제가 잘못생각했네요 🙏
e2e테스트에서 적용해주시면 될것 같습니다 ㅎ
| return lottoNum; | ||
| } | ||
|
|
||
| #generateRandomNum() { |
There was a problem hiding this comment.
저는 단순히 generateRandomNum를 구하는 함수는 유틸에 가깝다고 생각했거든요.
반환된 숫자 자체는 LottoModel 모델이 가져가야하는 부분은 맞지만요ㅎ
이 부분은 관점차이인것 같아서 결의 생각이 궁금했습니다 ㅎ

안녕하세요 결이라고 합니다
mvc패턴을 사용해
전체 로직을 view, model, controller로 구분했습니다
view도 도메인별로 다시 한번 나누었습니다
코드를 페어와 함깨 짜다가 서로 의견은 달랐지만
정확히 어떤게 정답이다라고 판단하기 어려운 문제가 있어 답변 부탁드립니다
model, view의 인스턴스는 어디에서 생성하는 것이 좋을까요
현재 코드에서는 index.js에서 생성했지만 controller.js에서 생성하는 것과 고민했습니다
model에서 private 필드를 이렇게 선언하는것이 옳은 것인지 고민했습니다
메서드내의 임시변수 제거 vs 가독성 있는 변수 생성에 대해 고민했습니다
저는 임시변수를 제거할 수 있으면 최대한 제거하는 편이여서 의견이 상충했습니다
view이벤트, 로또구매나 토글 버튼의 이벤트 리스너를
controller vs view 어디에서 둥록하는 것이 옳은지 고민했습니다
감사합니다😀
데모페이지