1주차 미션은 시험 기간 이슈로 시간이 부족해서 완성도가 높지 않고, 코드 리뷰도 충분히 하지 못했기 때문에 2주차 미션부터 회고록을 작성한다!
PR 링크
https://github.com/woowacourse-precourse/java-racingcar-6/pull/2096
2주차 목표와 앞으로 3주차 목표를 간단하게 정리하자. 앞으로 이 부분을 염두에 두고 다음 프로젝트를 진행해야 한다.
2주차
1. 함수를 분리하기
2. 각 함수별로 테스트를 작성하는 것
3주차
1. 클래스(객체)를 분리하는 연습
2. 도메인 로직에 대한 단위 테스트를 작성하는 연습
2주차 공통 피드백에 대한 self 점검 시간
1. README.md 상세히 작성하기
- 해당 프로젝트가 어떤 프로젝트인지 설명하는 부분이 미흡했다. -> 다음주에 반영
- 마크 다운 문법을 어느정도 사용했으나, 아직 다양한 문법을 활용하지는 않았다. -> 다음주에 반영
2. 기능 목록 재검토
- 기능 목록을 너무 자세하게 적지 말고(클래스/메서드 설계 등) 기능 위주로 적기 -> 어느 정도 반영
- 예외 상황도 기능 목록에 자세하게 적어야 하는데 이 부분을 강조하지 못했다. -> 다음주에 반영
3. 기능 목록 업데이트
- 처음부터 완벽하게 작성하려고 생각하지말고, 구현 중에 업데이트 해라 -> 어느 정도 반영
- 죽은 문서가 아니라 살아있는 문서를 만들어라. -> 내 최신 상황을 계속 반영하도록 업데이트 필요
4. 값 하드 코딩 금지
- 문자열, 숫자 등의 값을 하드 코딩 하지말고, 상수로 관리하라 -> 미흡한 부분이므로 즉시 해결 방안 모색, 2주차 refactoring에 참고
5. 구현 순서도 코딩 컨벤션에 포함
- 상수, 멤버 변수, 생성자, 메서드 순으로 작성 -> 어느 정도 지키고 있으나 다음부터 더 신경쓰기
6. 변수 이름에 자료형 사용 금지
- 변수 이름에 자료형, 자료 구조를 사용하지 마라 -> 어느 정도 지키고 있으나 다음부터 더 신경쓰기
7. 한 함수가 한 가지 기능만 담당하게 만들기
- 함수 길이가 길어진다면 여러 가지 기능을 한 번에 처리하려고 하는 것이므로 분리해라 -> 아직 미흡함, 2주차 refactoring에 참고
8. 함수가 한 가지 기능만 담당하고 있는지 확인 기준 세우기
- 함수가 특정 길이(ex. 15줄) 이상으로 길어지면 함수 분리 고민하기 -> 이 조언을 참고하여 함수 분리를 계속 모색하기
9. 테스트 작성 이유에 대해 본인의 경험을 토대로 정리
- 테스트는 즉각적으로 내 코드에 대한 피드백을 받을 수 있는 기능이다. 학습 도구로도 활용할 수 있다. -> 테스트의 의미를 이렇게 확장해서 생각해보지 못했음. 테스트 코드의 미흡함을 보고 함수 위주로, 나의 코드 작성 경험을 토대로 더 많이 만들어 보는 연습이 필요
10. 처음부터 큰 단위의 테스트 만들지 않기
- 작은 단위부터 큰 단위로, 문제를 작게 나누고 핵심 기능에 가까운 부분부터 테스트 만들기 -> 미흡한 부분. 나는 그동안 예외 처리나 중요하게 판단해야 하는 로직만 테스트가 필요하다고 생각했는데, 테스트에 대한 인식이 바뀌고 확장되는 계기가 되었다.
2주차 코드 리뷰를 통해 더 공부해야 할 목록을 만들었다.
1. 자바 컬렉션 (일급 컬렉션, HashSet 등)
- https://jojoldu.tistory.com/412 (일급 컬렉션에 대해서 공부할 수 있고, 예시가 소개된 글이다.)
2. 상수 처리 (하드 코딩 하지 않기, 다른 분들의 상수 처리 코드 참고하기)
- https://techblog.woowahan.com/2527/ (Java Enum 에 대해서 배울 수 있는 글이다.)
3. 메서드 네이밍 규칙 (일반적으로 통용되는 규칙, 반환형에 따른 메서드 네이밍 규칙)
- https://tecoble.techcourse.co.kr/post/2020-04-26-Method-Naming/ (각 상황에서 추천되는 네이밍 기법이 담겨 있다.)
4. 전반적으로 코드 길이 줄이고 깔끔하게 짜는 것 신경 쓰기
- gpt의 도움을 받아서 줄이거나, 깔끔하게 짜신 다른 분들의 코드를 참고하여 내 것으로 흡수하는 방법
5. stream() 메서드 사용법 배우기
- https://hbase.tistory.com/171 (stream의 생성 - 사용법에 대해 설명된 글이다.)
6. 문자열 반복 메서드 repeat() 사용법 배우기
- https://velog.io/@chosj1526/JAVA-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B0%98%EB%B3%B5-%EB%A9%94%EC%84%9C%EB%93%9C-repeat (for문을 사용하는 대신 repeat()를 사용하면 원하는 횟수만큼 문자열을 반복할 수 있다.)
7. MVC 패턴
https://velog.io/@jiihyun/MVC-%ED%8C%A8%ED%84%B4%EC%97%90-%EB%8C%80%ED%95%B4