README

[자동차 경주 게임] 김유빈 미션 제출합니다. by kyukong · Pull Request #394 · woowacourse/java-racingcar-precourse

과제 진행 소감

이번주에는 코드자체는 이전 방식과 수정된 것은 거의 없으나 그 외의 것을 신경썼습니다.

  1. 클래스 구조

지난 1주차 과제 소감에서 클래스 구조 짜는 것에 더 신경을 쓰고 싶다고 하였는데 이번 2주차 과제는 1주차와 비슷한 게임 형식이라 구조는 비슷하게 설정하였습니다. 지난번에는 연관있는 클래스끼리는 한 파일 내에 있는 것이 보기 편할듯하여 파일을 분리하지 않았으나 스크롤이 길어질수록 가독성이 떨어져보여 클래스별로 파일을 분리하였습니다. 어차피 하나의 패키지로 묶이는 파일이기 때문에 한 파일을 고집할 필요는 없어보였습니다.

  1. 메소드 정리

지난번에 아쉬웠던 점 중에 하나가 메소드를 분리할수록 메소드가 많아져 클래스 내 가독성이 떨어지는 점이었는데 1주차 공통 피드백에서 영감을 얻었습니다. 여러 피드백 중 '공백 라인을 의미 있게 사용해라'를 보고 게임을 실행시키는 play의 내부 메소드를 위해 만들어진 메소드들을 공백 라인으로 분리하였습니다. 매번 코드를 작성할 때에는 책을 읽는 것처럼 코드를 따라 쭉 읽어도 이해하기 쉽도록 신경썼었는데 공백 라인으로 분리함으로써 가독성을 높일 수 있었습니다.

  1. git 브런치 활용

배포를 할 수 있는 상태의 main, 개발을 진행하는 develop, 각 기능을 개발하는 여러 브런치 등으로 나누어 브런치를 체계적으로 활용해보았습니다. 지난번 구조는 개인 프로젝트로는 가능하나 협업에서는 개발을 진행하는 임시 브런치를 분리하는 것이 옳다고 생각하였습니다.

  1. 테스트코드 활용

지난 과제에서 주어진 테스트케이스를 제외하고 더 추가를 하고 싶었는데 시간부족으로 주어진 라이브러리를 분석하지 못했습니다. 우테코에서 개발한 테스트 라이브러리를 분석하기 위해 JUnit을 공부하였고 테스트코드를 추가해보았습니다. 아직 자바를 다루기 어려워 중복적인 코드가 많았지만 다음 과제에서는 더 깔끔하게 코드를 정리해보고 싶습니다.