introduction

뭐든지 적당히가 어려운법이다. 게으름을 부리며 일을 미루고 미루다 대충만든 퀄리티 떨어지는 코드도 문제지만, 반대로 너무 과한 의욕과 욕심도 오히려 코드를 못생기게 만드는 것 같다.

우아한 테크코스 프로 프리코스


1주차 과제를 제출하고 2주차 미션으로 자동차 경주 미션을 받았다.

자동차경주 게임 기능 요구사항

자동차경주 게임 기능 요구사항

야구게임과 같이 미션자체는 학부생때 콘솔I/O를 이용해서 만들어볼만한 주제다.

하지만, 여기에 객체지향 프로그래밍 원칙과, 클린코드 규칙들이 들어가고 TDD기반으로 바뀐다면 미션의 난이도는 훌쩍 뛰어오른다.

사실, 나는 이 미션을 작년 NextStep TDD, Clean Code with Java과정에서 이미 진행했고 통과도 했었다.

그래서 미션을 받을당시에는 금방하고 리팩토링만 조금 더 하면되겠다는 생각을 했는데...

내가 일신우일신(날마다 계속하여 정도나 수준이 높아짐) 까진 아니더라도 꾸준히 공부를 쉬진 않았기에 눈높이가 달라졌는지 몰라도 코드의 미진한부분들이 많이보였고, 그래서 처음부터 하는마음으로 다시 설계를 시작했다.

이번 미션에서 요구한 클린코드 규칙은 다음과 같다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b1480343-7319-447a-990d-46a2ed2fd824/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7809ea8b-ab46-4000-aff4-be8820266ca6/Untitled.png