티스토리 뷰

2주차 미션은 자동차 경주 미션이였다.

 

자세한 미션 내용과 필자의 소스를 보고 싶다면 하단의 링크를 참조하면 된다.

 

https://github.com/0bliviat3/java-racingcar-6/tree/0bliviat3

 

GitHub - 0bliviat3/java-racingcar-6: 자동차 경주 미션을 진행하는 저장소

자동차 경주 미션을 진행하는 저장소. Contribute to 0bliviat3/java-racingcar-6 development by creating an account on GitHub.

github.com

 

간단히 정리만 하고 넘어가자면 구현한 프로젝트의 구조는 다음과 같다.

 

SRC
├─main
│  └─java
│      ├─controller
│      │      GameController.java
│      │      
│      ├─domain
│      │      Car.java
│      │      
│      ├─exception
│      │      GameInputException.java
│      │      
│      ├─game
│      │      RacingGame.java
│      │      
│      ├─message
│      │      GameMessage.java
│      │      
│      ├─racingcar
│      │      Application.java
│      │      
│      ├─service
│      │      CarService.java
│      │      
│      └─view
│              GameView.java
│              InputView.java
│              
└─test
    └─java
        ├─car
        │      CarTest.java
        │      ImplTest.java
        │      
        ├─racingcar
        │      ApplicationTest.java
        │      
        └─study
                StringTest.java

 


 

 

2주차 미션 부터는 추가된 요구사항과 공통 피드백이 있었는데

먼저 공통 피드백을 정리하자면 다음과 같다.

 

  • 요구사항을 정확히 준수한다.
  • 커밋 메시지를 의미있게 작성한다.
  • git을 통해 관리할 자원에 대해서도 고려한다.
  • Pull Request를 보내기전 브랜치를 확인한다.
  • PR을 한번 작성했다면 닫지말고 추가 커밋을 한다.
  • 이름을 통해 의도를 드러낸다.
  • 축약하지 않는다.
  • 공백도 코딩 컨벤션이다.
  • 공백라인을 의미있게 사용한다.
  • space와 tab을 혼용하지 않는다.
  • 의미 없는 주석을 달지 않는다.
  • IDE의 코드 자동 정렬기능을 활용한다.
  • JAVA 에서 제공하는 API를 적극 활용한다.
  • 배열 대신 JAVA Collection을 사용한다.

 

앞으로의 미션에도 또 앞으로의 개발에 있어서도 공통되는 피드백이 아닐까 싶다.

 

또 별도로 추가된 요구사항은 다음과 같다.

 

  • 인덴트 3미만
  • 삼항연산자 금지
  • 단일 책임의 원칙 준수
  • JUnit 5, AssertJ를 사용한 테스트 코드 사용

 

인덴트 3미만의 요구사항은 소스의 가독성을 위함과 동시에 단일 책임의 원칙을 준수하라는

요구사항에도 해당하는 것같다. 이번 주차의 미션에서는 그리 어렵지 않았으나

1까지만 허용한다면 꽤나 어려운 요구사항이 될 듯 싶다.

 

또 테스트 코드 작성하는 작업은 꽤나 흥미로운 작업이였다.

내가 작성한 기능이 정상적으로 동작하나를 검증하기위한 단위테스트이니 만큼 

각 기능의 구현이 완료될때마다 단위테스트 코드를 작성해주어야 해서 그 만큼의 시간이 더 오래걸렸지만

그만큼 체계적이고 유지관리와 확장이 용이한 코드를 생산해낼수 있단 점에서 매우 흥미로운 작업이였다.

 

꼭 프리코스에만 해당하는것이 아닌 앞으로 개발하는것들에 있어서도 

단위테스트를 거쳐가며 개발을 하게 될 듯 싶다.

 

 


 

2주차에서는 미션만 진행된것이 아닌 1주차때 진행했던 미션에 대해 자율적으로 코드리뷰를 하는 시간을

갖게되었다. 난 미션보다는 코드리뷰에 좀 더 시간을 할애한듯 싶다.

 

코드리뷰가 처음이라 많이 어려운 부분이 있었지만 다른 사람들이 하는 코드리뷰를 보며

어떤 식으로 이루어지는지 알 수 있었고 또 다른 사람들의 소스를 보면서 조금씩은 코드리뷰를 달 수 있게 되었다. 다른 사람들과 시야를 공유하며 여러 개발자들의 시야를 알 수 있단것은 꽤 좋은 경험이 되었다.

또 앞으로의 미션을 모두 통과하여 계속 코드리뷰를 이어나가고 싶단 동기부여도 되었다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함