티스토리 뷰

보다 나은 객체지향 실력을 위해 토이 프로젝트를 TDD로 개발해보려고 합니다.

토이 프로젝트에서는 다음 책이나 사이트에서 배운 것들을 무조건 혹은 최대한 반영하려고 합니다.

  • 클린 코드
  • 이펙티브 자바
  • 객체지향 생활 체조

이번에 할 토이 프로젝트는 레이싱 카입니다.

요구사항은 다음과 같습니다.

  • 주어진 경기수 동안 n대의 자동차는 전진 또는 멈출 수 있다.
  • 사용자는 몇 번의 이동을 할 것인지를 입력할 수 있어야 한다.
  • 전진하는 조건은 0에서 9 사이에서 random 값을 구한 후 random 값이 4이상일 경우 전진하고, 3이하의 값이면 멈춘다.
  • 매 경기마다 자동차들의 전진한 횟수를 “-”로 출력해야 한다.

위 요구사항을 보고 어떠한 도메인을 도출해내는 게 중요합니다.

도메인 도출 후 여러 테스트 케이스를 도출해내야 하는데, 두 가지 케이스가 존재합니다.

  • 해피 패스(happy path) : 요구사항을 보고 예상 가능한 케이스
    • ex) 자동차의 이름을 출력한다.
  • 엣지 케이스(edge case) : 요구사항을 보고 예상하기 어려운 케이스
    • ex) 자동차의 이름이 중복된다면 예외를 던진다.

저는 다음과 같은 도메인과 테스트 케이스를 도출해냈습니다.

### 난수 생성기
- [ ] 0 ~ 9 사이에 난수를 생성한다.

### 자동차
- [ ] 전달받은 값이 4 이상이면 전진한다.

### 경주
- [ ] 참가 자동차 수와 경기수를 입력받아 경주를 시작한다.

### 출력기
- [ ] 매 경기가 끝나면 각 자동차들의 전진 횟수를 "-"로 출력한다.
🐻
테스트 케이스는 개발 도중 추가 혹은 변경될 수 있습니다.

깃 허브 주소입니다.

 

GitHub - friendly-oop/racingcar

Contribute to friendly-oop/racingcar development by creating an account on GitHub.

github.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함