리뷰어 휴가 README.md 파일의 기능구현 목록에 체크박스 적용을 제안해, 적용해보았다.
구현이 완료된 것들과 아직 완료되지 않은 것들이 직관적으로 구별되어 구현 진행과 관리가 더욱 편해졌다.
모든 이름들을 영어 문법을 지키면서 최대한 구체적으로 자세하게 지으려다 보니, 지나치게 길어지고 중복되는 부분들이 생겨, 오히려 의미전달력이 떨어지는 현상이 발생했다.
리뷰어 휴가 공유해 준 영어권에서 작성된 글을 참고하여 최대한 직관적으로 명확하게 알아볼 수 있도록 이름을 지으려고 노력했다.
문법을 지킨 길고 자세한 이름들 보다, 더욱 직관적으로 알아보기 쉬워졌고, 코드가 깨끗해졌다.
코치 제이슨이 로또번호 객체 캐싱을 제안하여, 이를 적용했다.
반복되어 사용되는 객체(로또번호)들을 캐싱하여 재사용하였다.
new 연산자를 통해 계속 생성할 필요 없이, 캐싱되어있는 로또번호들을 가져다가 쓰니 메모리도 절약되고, 코드도 깔끔해졌다.
리뷰어 휴가 원시값에 대한 유효성 검사 시, 예외에 Custom Exception을 적용해볼 것을 제안해, 적용해보았다.
예외가 더욱 명확해져, 다른 예외들과 직관적인 구분이 가능해졌다.
리뷰어 휴의 제안으로 Integer.valueOf() API 를 참고하여 캐싱 방식을 개선했다.
LottoNumber.valueOf() 와 같이 API 사용 형식이 더욱 깔끔하고 명확해졌다. 의미 전달력도 매우 향상되었다.
수익률 소수점 계산에서 BigDecimal API 사용이 필요했다.
사용법을 제대로 숙지하지 않은 채 사용해, 소수점 셋 째 자리에서 반올림이 되지 않는 버그가 발생했다.
BigDecimal API 문서 와 구글링을 참고하고, 학습 테스트 를 통해 정확한 API 사용법을 익혀 버그를 고쳤다.
맨 처음 구현할 때, 구글링을 통해 찾은 잘못된 자료 를 참고해서 코드를 작성했다. 사용법이 애매할 때는 학습 테스트 로 제대로 익힌 뒤에 사용해야 겠다.