RacingCar
넥스트스텝 - 레이싱 카 2단계
넥스트스텝 - 레이싱 카 2단계
2022.01.30개요 기존 1단계에서 MVC 패턴으로 구조화하는 작업을 진행한다. 데이터를 전달할 때는 DTO를 이용한다. 프로젝트 구조 객체 InputDTO 입력과 파싱에 대한 필드를 저장한다. OutputDTO 출력과 관련된 필드 및 메소드가 작성되어 있다. CarMoveBehavior 전략 패턴을 사용한다. 여기에는 몇 가지 이유가 존재하는데 테스트 코드 작성 시 랜덤 넘버를 받기 때문에 테스트 코드 작성 시 어려움을 갖는다. 코드의 유지보수가 좋아진다. Cars Cars 객체의 목적은 Car 객체를 Wrapping 하기 때문에 일급컬렉션으로서 역할이 충분하다고 생각한다. 그 외 기능은 필요하지 않다. FixNumberBehavior 무조건 갈 수 있다. RandomNumberBehavior 랜덤 넘버 제너레이트 ..
넥스트스텝 - 레이싱 카 1단계
넥스트스텝 - 레이싱 카 1단계
2022.01.29개요 계산기 미션 다음에는 레이싱카 미션이다. 총 2단계로 구성되어 있으며, 1단계에서는 페어 프로그래밍을 2단계에서 MVC로 구조 전환을 수행하는것이다. 프로그램은 다음 플로우로 흘러간다. 1. 자동차, 횟수 입력한다. 2. 랜덤 넘버를 받아와서 4이상이면 전진할 수 있다. 단, 전진하는 경우 상태값을 콘솔에 출력한다. 3. 가장 많이 전진한 자동차를 우승자로 선정한다. 우승자는 복수가 될 수 있다. 프로젝트 구조 프로젝트 구조에서도 조금 아쉬운것은 domain package에 많은 객체가 포함되어 있다. 굳이 쪼갠다면 entity pacakge 정도 하나 더 둘 수 있을것 같다. Helper 클래스는 Racing 클래스 쪽으로 합칠 수 있을것 같다. 관련 비즈니스 로직이 명확하게 domain pack..