| 로또 레포
과제 소요 시간 : 일~수 4일간 약 30시간 + 회고글 n시간
wakatime 으로 봤을 때, 7일간 IDE에 커서가 머무른 시간이 약 24시간이다.
(월요일 이전에 기록된 시간은 IDE를 켜놓고 설계해서 그렇다)
과제를 받은 목요일, 다음날인 금요일엔 병원 방문 이슈와 코드 리뷰로 인해 과제 확인도 못했고, 토요일과 일요일엔 뺄 수 없는 개인적인 일정으로 인해 일요일 밤에 한 조금의 설계를 빼곤 뭔가를 하지 못했다.
사진을 보면 알겠지만, 월요일 부터 코드 작성을 시작했다.
설계에 한 2시간 쓴 것 같고, 학습에 4시간 정도 사용한 것 같다. 구현할 시간이 부족했기에 새로운 뭔가를 많이 학습해서 적용해보지는 못했다. 최대한 1, 2주차 때 쌓은 경험과 지식으로 구현했던 것 같다.
기능 요구 사항, 프로그래밍 요구 사항, 과제 진행 요구 사항 전부를 만족했고, 테스트를 통과했다.
내가 작성한 전체 코드의 클래스 다이어그램이다.
다음 과제로 넘어갈수록 클래스와 계층, 패키지가 더더욱 많아지는 것 같다... 짧은 시간 안에 구현한 것 치곤 의존관계는 조금 깔끔한 것 같다.
진짜 TDD (정말 정석대로 테스트 코드 작성 -> 프로덕션 코드 작성 -> 리팩토링의 과정을 진행했다. TDD로 개발하다가 메인 로직 구현에서는 난이도와 시간 관계상 TDD를 사용하지 않았다.)
Supplier 함수형 인터페이스를 사용한 재입력 기능
BigDecimal
DecimalFormat
String.format() 안에 % 넣기
Optional
UnsupportedOperationException 에러 해결
...
위에서 말했듯이, 구현 시간의 부족으로 새로운 것을 많이 학습해서 적용해보지 못했다.
4주차 과제 딱 기다려...
아쉬움과 만족감이 공존하는 3주차였다.
많은 시간을 할애하지 못한 아쉬움이 있었고,
그럼에도 불구하고 구현을 잘 완료한 것에 대한 만족감이 있었다.
그리고 스스로 통제할 수 없는 상황(족저근막염으로 인한 병원 방문, 개인 일정 등) 을 만나고 프리코스에 대한 초심을 되찾게 되었다.
합격과 과제 구현에 대한 집착을 내려놓고, 1주차때의 마음으로 돌아가게 된 것이다.
장난감을 가지고 노는 어린 아이의 마음으로, 학습의 즐거움을 만끽했던 그 때의 마음으로...
난이도가 더 어려워질 마지막 4주차는, 더더욱 모든 것을 쏟아부어서 멋진 장난감을 만들어보려 한다.