# 깃허브 주소
https://github.com/leeugun123/kotlin-lotto-6-test
GitHub - leeugun123/kotlin-lotto-6-test
Contribute to leeugun123/kotlin-lotto-6-test development by creating an account on GitHub.
github.com
# 3주차 우테코 로또 후기
2주차 프리코스 자동차 경주 게임을 진행하면서
내가 너무 코드를 정리정돈 없이 개판으로 짠다는 것을 깨닫게 됐다.
다른 분들의 코드를 보니 각 패키지별로 모듈을 나누어 클래스를 작성하고,
MVC 패턴으로 아키텍처를 구성하여 유지보수가 용이하도록 코드를 만드셨다.
사실 기존 안드로이드는 아키텍처를 구성할때 MVC패턴으로 분리하는 것이
여려워 MVVM 패턴으로 구성하였는데
안드로이드가 아닌 프로그램으로서 MVC패턴을 구성하니
안드로이드의 MVVM과 어떤 차이가 있는지 알게 되었다.
https://sheep1sik.tistory.com/52
MVC 패턴
안녕하세요 공공돌🧸 입니다 !! 오늘은 MVC란 무엇인지에 대해서 알아보겠습니다. 제가 알고 있던 MVC 패턴이란 Model, View, Controller로 나누어서 코딩을 한다는 정도로 알고 있었지만, 이번 3주 차
sheep1sik.tistory.com
공공돌님의 블로그를 보면서 MVC패턴을 더욱 확실하게 익히게 되었다.
# 깃허브 PR 주소
https://github.com/woowacourse-precourse/kotlin-lotto-6/pull/34/files
[로또] 이유건 미션 제출합니다. by leeugun123 · Pull Request #34 · woowacourse-precourse/kotlin-lotto-6
github.com
HaHyunKang님의 피드백처럼
winningNumber(당첨번호)와 bonusNumber(보너스 번호)를
List로 관리하는 것이 아닌 Model 패키지에 따로 data class를 작성하여
유지보수에 용이하게 만들었다.
winningNumber가 6개의 숫자로 이루어진 변수형이지만,
추가적인 기능 도입 시 List<Int>로 변수를 선언하는 것은
뭔가 향후 유지보수에 매우 힘들겠다는 생각이 들었다.
또한 SeoYeonn05님의 피드백도 많이 고민해봤는데,
코드를 테스트할때 5개의 당첨번호 + 보너스 번호와
6개의 당첨번호의 입출력은 확실히 구분되어 나왔다.
어떤 부분에서 else 값으로 넣으면 다른 값이 들어갈때
모두 FIVE_MATCH가 나오는지에 대한 로직이 잘 이해가 가지 않았다.
https://jake-seo-dev.tistory.com/155
코드의 매직 넘버 (Magic Number) 란 무엇일까?
매직 넘버란? 개발서적 등을 읽다보면 '매직 넘버(Magic Number)' 라는 말이 나온다. 이 말의 뜻은 무엇일까? 간단히 설명하자면, '의미 있는 이름의 상수로 대체될 수 있는 숫자' 를 말한다. 이를테면
jake-seo-dev.tistory.com
처음에는 왜 굳이 매직 넘버를 사용하여 코드를 작성하는데
번거롭게 하는 거지?라는 생각이 들었지만 위 블로그의 포스트를 읽어보니
매직넘버가 아닌 숫자와 문자를 그대로 입력하면 협업 시
다른 프로그래머가 그 상수의 의도를 모르고 값을 변경할 수도 있다.
그렇기 때문에 숫자를 코드에 넣을 시 반드시 const val과 함께 대문자로
어떤 목적으로 변수가 사용되는지 이름을 지어야 한다.
특히 대표적으로 로또 당첨 번호의 범위와 몇개를 무작위로 뽑는지는
로또 당첨 프로그램에서 꽤 중요한 요소이기 때문에 반드시 매직넘버로 만들어야 한다.
코드 작성 시 MVC패턴의 개념을 이해하지 못한채로
프로그램을 만들었기 때문에 UI와 Controller가 혼용하는 문제가 발생했다.
깃허브에 들어가보면 알 수 있겠지만, UI부분과 Controller 부분을 따로
모듈화 하여 작성하였으며 기존 LottoUI에서 로또 당첨 흐름을 시작하는 것을
수정하여Controller에서 LottoUI를 제어하고 Model를 가져오는 등
Controller답게 View와 Model의 중간자 역할을 하도록 프로그램을 개선하였다.
'우테코 프리코스' 카테고리의 다른 글
우테코 프리코스 4주차 후기 : 크리스마스 프로모션 (안드로이드) (1) | 2024.02.05 |
---|---|
우테코 프리코스 2주차 후기 : 자동차 경주 게임 (안드로이드) (0) | 2024.01.22 |