📝 오늘의 Todo 리스트 체크
- 코드 리팩토링
- 모든 요구 사항 체크 ✅
- MVC 디자인 패턴 설계 업데이트 ✅
- 클래스 다이어그램 설계/그리기 ✅
목차
- 한 함수가 한 역할만 하기
- MVC 디자인 패턴 업데이트
- 클래스 다이어그램
- 예제 테스트 결과 : 예기치 못한 오류로 인하여 실행에 실패하였습니다.
한 함수가 한 역할만 하기
이번 3주차 미션 프로그래밍 요구 사항 중에 가장 힘들었던 것이 "함수(또는 메서드)의 길이가 15라인을 넘어가지 않도록 구현한다."가 였던 것 같아. 특히 로또 등수에 따라 몇개 당첨 됐는지 확인하는 로직에서 시간이 제일이 많이 소비됐다.
다음과 같이 처음에 구현했다.
하지만 이 메서드를 for문이든 collection이든 스트림 API든 어떤 방법을 사용해도 15줄 이내로 줄이기 힘들었다...
그래서 이 메서드를 서로 역할이 다른 2개 메서드로 한 번 더 분리해서 구현하는 방식을 선택했다. 하지만 그 역할을 정하는게 쉽지 않을 작업이었다. 결국에 당첨 순위가 1등부터 5등까지니까 상위 3등안에 몇개 나왔는지와 하위2등안에 몇개 나왔는지 출력 하는 2 메서드로 분리했다.
MVC 디자인 패턴 업데이트
설계단계 때도 충분히 길었지만 더 길어진 MVC 디자인 패턴 😅
대부분의 추가는 상수와 Enum 클래스 그리고 이번에 도입하게된 팩토리 클래스이다.
클래스 다이어그램
이번 3주 차 미션부터는 클래스들도 많아졌고 클래스들 사이의 관계도 복잡해졌다. 그래서 이번 미션 클래스 다이어그램은 Model클래스들 사이의 관계와 Model 클래스와 메인Controller 클래스의 관계를 클래스 다이어그램에 담아보았다.
1)클래스 간의 관계 설명
2) Lotto클래스와 Lottos클래스의 관계
3) WinningNumbers클래스와 WinningStatistic클래스의 관계
4) Money클래스와 TotalPrice클래스의 관계
5) Model클래스들과 메인Controller 클래스와의 관계
예제 테스트 결과 : 예기치 못한 오류로 인하여 실행에 실패하였습니다.
내가 지금 새벽까지 아직도 자러 가지 못한 이유... 오늘의 주인공 "예제 테스트 결과 : 예기치 못한 오류로 인하여 실행에 실패하였습니다."
이런 오류는 빌드 실패 또는 프로그램 요구 사항을 위반했을 때 발생한다고 하던데, 그래서 나도 해결하려고 많은 시간과 노력을 쏟아부었지만 결국에 오늘은 해결하지 못했다...
뭐가 문제일까ㅠㅠ
내일 Todo 리스트
- 오류 해결 🔳
- 3주 차 미션 회고 작성 🔳
- 마지막 검토 및 제출 🔳
끝.
'우아한테크코스' 카테고리의 다른 글
"프리코스 22일차" 4주 차 미션 분석 및 기능 목록 작성, 일주일 plan 설정 (1) | 2024.11.06 |
---|---|
"프리코스 3주 차 회고" 지식 공유와 성장의 발자취 (4) | 2024.11.04 |
"프리코스 19일차" 코드에 팩토리 클래스와 다양한 Exception의 유형 적용 (0) | 2024.11.02 |
"프리코스 18일차" 클래스 간에 강한 결합의 해결책: 팩토리 클래스 (1) | 2024.11.01 |
"프리코스 17일차" 설계 방식에 대해 고민해보기, 3주 차 미션 MVC 구조 설계 완료 (3) | 2024.10.31 |