랜덤값 1~9 기준으로 4이상 일시에 경주할 자동차가 전진하고 이하 일시 정지를 시동 횟수에 따라서 레이싱을 경주하여 최종 우승자를 가리는 콘솔 게임입니다.
1주차에는 메소드를 서로 분리하는 연습을 했다면 이번 과제는 클래스를 분리하는 목표로 진행하게 되었습니다.
README.md 에 대하여 피드백을 받은 사항에는
README.md 파일을 작성하면서 클래스를 기준으로 너무 상세하게 작성한 것 같습니다.
클래스 이름과 메소드의 input/output은 언제라도 변한 다는 것을 인지 하지 못하고 기능 구현 목록 정리에 집중을 하지 못 한것 같습니다.
MVC 패턴으로 나누보려고 했습니다.
기능을 구현한 car 클래스와 cars 클래스가 view로직도 같이 담당하여 너무 많은 책임이 부담 되었습니다. outView 클래스를 새로 만들어 model을 담당하는 car과 cars의 출력 메소드들을 나누어서 분산 시키고 Game 클래스 즉 컨트롤러에 더 많은 로직을 구현 해야 됬는 데 MVC 패턴을 좀 더 자세히 학습해야 할 것 같습니다. 책임과 역할 등을 제대로 분배를 못 해준 것 같아서 아쉽습니다ㅠㅠ
그리고 1주차와 동일한 피드백인 원시값과 문자열을 하드 코딩하지 말라는 피드백을 듣고 똑같은 하드 코딩을 한 것 같습니다. 3주차 과정에서는 완벽히 하드코딩을 제외하려 노력 해 보아야겠습니다.
메소드명과 변수명등이 아직 의미가 추상적인 면이 많은 것 같습니다. 옛날에는 그냥 지나쳐버렸던 변수명이나 메소드명이 이렇게 가독성에 중요한 역할을 하는 지 이번 프리코스에 깨달았습니다.
명명을 축약적인 것은 원래 지양하는 편 이었지만 추상적인 메소드와 변수를 많이 사용했던 것 같습니다. 아직도 사용하는 것 같아서 많이 고쳐야할 것 같습니다....
java api 또한 잘 활용을 하지 못한 것 같습니다. stream과 같은 api를 활용해 보고 싶었지만 개념이 이해가 되지않아 로직을 많이 길어진 것 같습니다.
그리고 마지막 피드백으로 객체에게 메시지를 보내라는 피드백은 아직 이해가 되지않아서 자세히 공부해서 3주차 과제에 적용을 해보고 싶습니다.
마지막 과제만을 남겨 두었는 데 정말 짧은 시간이었던 같습니다. 후회 없이 노력 했는 지 되돌아 보았는 데 아쉬운 부분들이 조금 남은 것 같습니다. 남은 기간 최선을 다해서 후회 없이 오프라인 테스트까지 치루었으면 좋겠습니다!