티스토리 뷰
보다 나은 객체지향 실력을 위해 토이 프로젝트를 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
링크
TAG
- 디자인 패턴
- Spring Boot
- 이팩티브 자바
- 클린 코드
- node.js
- JPA
- 이펙티브 자바
- 디자인패턴
- MSA
- Java
- programmers
- 프로그래머스
- 코테
- kotest
- 정규표현식
- Kotlin
- Effective Java
- BOJ
- 객체지향
- Spring
- 백준
- BAEKJOON
- 알고리즘
- 클린 아키텍처
- 테라폼
- kkoon9
- AWS
- Algorithm
- C++
- Olympiad
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함