# install dependencies
npm install
# project start
npm start
야구 게임을 스텝 1 부터 3까지 만들었다. 😱 처음에 머리속으로만 team, game, score 객체가 있으면 되겠지? 일단은 어려우니 game 부터 만들어보자! 라고 생각하고 시작했는데 구현하다보니 생각처럼 분리되지 않았고 복잡해지기 시작했다.
테스트를 하는 과정도 문제가 있었다. 테스트 할 때 마다 9명의 투수를 입력하는 것이 어려워서 테스트 코드를 작성하려고 하니, 입력을 받는 곳과 로직을 수행하는 부분이 분리되어 있지 않아서 결국 작성하지 못했다. 이전에는 테스트 코드 작성의 필요성을 많이 못느꼈는데 9명의 투수를 입력하면서 테스트 코드의 필요성을 매우 많이 느꼈다. 다음에는 일단 설계부터 하고 어떻게 하면 의존성을 줄이면서 코드를 작성할 수 있을 지 고민해봐야 겠다. 테스트 코드를 함께 짜면서 개발하는 것이 도움이 될 것 같다.
게임을 진행하는 gameController와 게임을 수행하는 game 역활을 명확하게 나누지 못했다. 실제 시합 부분을 분리하고 싶었다. 그런데 투구할 때 마다 스킵 여부를 묻는 부분때문에 분리가 잘 안돼서 결국 throwball만 game에 주고 나머지는 gameController에서 수행하였다.
team 객체에서도 input을 받아서 team을 세팅하는데 입력값을 받는 부분과 팀을 구성하는 부분을 분리해서 수정하면 좋을 것같다. 그리고 중간중간 사용자 결과를 출력해 주는 로직이 복잡했다. 잘 눈에 들어오지 않아서 테스트 할 때마다 오류를 찾았다. 상황마다 출력하는 부분을 Printer 같은 객체를 만들어서 분리하면 더 좋을 것 같다.