1단계 자동차는 이름을 갖는다. 자동차는 0-9 사이 랜덤 값을 구한 후 4이상이면 전진, 3이하면 멈춘다. 3항 연산자를 쓰지 않는다. else 예약어, switch/case 허용하지 않는다. 메소드 길이가 15라인이 넘어가지 않도록 구현한다 메인 메소드를 만들지 않는다. 테스트 코드 작성한다. 2단계 n대의 자동차가 참여가능하다. 주어진 횟수동안 자동차 경주 게임을 완료한 후 누가 우승했는지 알 수 있다. 우승자는 한 명 이상일 수 있다. 나머진 1단계와 유사하다. 3단계 자동차에 이름 부여가능하고, 전진하는 자동차 출력할 때 자동차 이름을 같이 출력한다. 자동차 이름은 , 기준으로 구분하며 이름은 5자 이하만 가능하다. 메인 메소드를 추가한다. 4단계 모든 로직에 단위 테스트를 구현한다. mvc 패턴으로 리팩터링한다. 개인적 목표 주석이 없어도 읽기 좋은 코드를 짜보자. 메서드가 한가지 기능만 갖도록 분리하다가 따로 관리하는게 좋을 것 같으면 클래스로 구현하자. 단위 테스트 핵심 원칙을 따르자. 개념에 머무르고 있었던 객체 지향적 개념을 활용하여 코드를 작성해보자. 발생할 수 있는 예외 케이스를 고려하여 방어적인 코드를 작성하고, 이를 테스트 코드로 확인하자.