우아한 테크 코스 프리코스 2주차 후기

우아한 테크 코스 프리코스 2주차 후기

2020, Dec 04    

자동차 경주 게임 🚙

링크 : https://github.com/lns13301/java-racingcar-precourse/tree/lns13301

회고록

  1. 코드 구현

    • 지난 과제에서 부족하다고 느끼고 새롭게 적용한 것들

    • 일급 컬렉션 사용
      • 일급 컬렉션 이용하여 클래스를 포장해서 코드 구현을 해보았다.
    • Input 분리
      • 지난 과제에서는 Application 에서 Input 을 처리했다면 이번 미션에서는 scanner 인자를 InputView 에 넣어서 사용하는 방식의 프로그램을 구현했다.
    • Validator 분리
      • 기능별 Validator 의 클래스를 분리했다.
      • 런타임 예외 처리를 구현해보았다.
  2. 느낀점

    • 지난 미션에서 부족하다고 느낀점들을 보완하고 새롭게 코드에 적용시켰으면 하는 것들을 적용해보는 시간을 가졌다.
    • README.md 에 구현할 기능을 세분화하여 나열하고 해당 순서에 맞춰서 코드를 구현하는 방식을 선택했다.
    • 이 방법으로 코드를 구현하니 확실히 기능단위로 코드를 구현하는 것이 가능했다.
    • 그렇지만 클래스 분리는 쉽지 않았는데, 기능단위 분리 후 기능에 대해 생각하고 클래스를 분리했다.
    • 그리고 Car 객체들을 효율적으로 관리하기 위해서 일급 컬렉션(Collection을 Wrapping 하면서, 그 외 다른 멤버 변수가 없는 상태)을 활용하여 구현하는데에 초점을 두었다.
    • 모든 기능을 분리하고 구현을 완료한 후 리팩토링을 했다.
    • 리펙토링 해야할 내용이 많지는 않았지만 그래도 생각보다 해야할 부분이 많이 눈에 띄였다.
    • 여러가지 사항들을 유의하며 코드를 짜다보니 긴장이 많이되었지만, 프로그램을 완성하고 나니 어느정도 감이 잡히는 것 같다.
    • 다음 미션에서는 지금까지 해왔던 부분들을 확실하게 다지고 간다면 충분히 좋은 결과를 낼 수 있을 것 같다.
    • 무엇보다 깔끔한 코드를 짜는 것도 중요하지만 빠른 시간안에 요구한 기능을 구현하는 것을 많이 연습 하도록 해야겠다.