본문 바로가기

강의/TDD, Clean Code with Java 12기

[로또] step3 - 로또(2등) - 26일차

프로젝트를 구현하는데 초점을 맞춰서 빨리빨리 PR을 요청하는 것 보다는

템포를 조절하면서 생각하는 것도 중요하다 판단하였다.

 

며칠동안은 여유롭게 즐기며 로또(2등) 프로젝트를 어떻게 만들지 생각해 보았다.

 

로또를 구매하고 결과를 맞춰보는 일련의 과정을 생각하면서 도메인을 좀 더 다양하게 구성해보았다.

 

일단 로또를 구매하는 고객이 존재한다.

이 고객은 (Customer) 로또 판매점에 있는 로또 기계에서(LottoMachine) 로또를 돈주고 구매할 것이며

로또 기계는 무작위 번호를 추출하여 로또를 발행하여 고객에게 준다.

발행한 로또를 보며 고객은 결과를 비교할 것이다.

 

위의 과정을 생각하며 코드를 작성해보았다.

코드 구조는 아래와 같다. '

 

구조를 다시 살펴보니 당첨 번호, 보너스 볼을 검증하는 부분이 Customer 도메인에 들어가는 것은 어떨까 생각해본다.

실제로 Customer에서 로또 당첨번호와 보너스 볼을 사용하기 때문에 객체가 사용되는 시점에 검증하는 것이 더 좋았을 것 같다.

이 부분을 멘토님과 다시 한번 얘기해 보도록 하겠다.