이번주에 추가된 프로래밍 요구사항
- 메소드당 15라인 제한
- else 예약어 금지
- Java Enum 적용
- 도메인 로직에 단위 테스트 구현
라이브러리 적용 사항
- camp.nextstep.edu.missionutils.Randoms.pickUniqueNumbersInRange()
- camp.nextstep.edu.missionutils.Console.readLine()
Lotto 클래스 제한
- 제공된 Lotto 클래스 사용
- 매개변수 없는 생성자 추가 금지
- numbers의 접근 제어자인 private 변경 금지
- Lotto에 인스턴스 변수 추가 금지
- 패키지 변경은 가능
과정
- 과제 입출력문보고 만만해보였음. 그래서 기능목록 작성하는데 고민할수록 끝도 없이 나옴
- 생각할수록 클래스 분할과 메소드 분할이 어려웠고 저번주 과제인 숫자야구 코드리뷰를 하면서 레이어단으로 나눈코드를 보면서 적용해보고 싶었는데 좀 아쉬운듯.
- 메소드 당 하나의 기능을 가지게 분할했다가 테스트를 위해서 클래스에 게터, 세터를 추가하기도 하면서 조금 더 변경없이 테스트가능하게 만들어야겠다는 생각.
- 예제 테스트의 List.of를 바로 Collections.sort()로 정렬했다가 UnsupportedOperationException을 만나면서 Immutable Collection을 공부할 수 있었음.
- 모든 예외 테스트를 통과하고 1등을 뽑아보고 싶어 뽑았다가 double의 지수표현식과 백자리 콤마, 나누어 떨어질때도 소수점 한자리를 표현하기 위해 DecimalFormat을 공부할 수 있었고 앞으로 테스트를 조금 더 다양하게 생각을 해야한다는 깨달음.
- 당첨 내역을 계산하는 로직이 너무 하드코딩적인 요소가 많았다. 다양한 자료구조를 활용해서 조금 더 소프트하게 만들필요가 있음