- 숫자 생성
- 중복되지 않는 숫자로 이루어진 3자리수 생성
- 힌트 제공
- 스트라이크 계산
- 볼 계산
- 포볼 or 낫싱 계산
- 계산된 힌트 출력
- 힌트 출력
- 정답 체크
- 정답 체크
- 선택지 제공
- 새 게임 or 게임 종료 선택지 제공 및 선택지 실행
- 입력값 제한
- 숫자'만' 입력 가능
- 중복된 숫자 입력 불가
- 예외처리에 대한 테스트 코드 또한 작성하도록 노력하자.
- 예외 케이스를 구분해서 테스트 코드를 작성하도록 노력하자.
- 테스트하기 어려운 코드들을 테스트하기 쉽도록 만들려면 어떻게 해야할지 고민해보자. DI - Dependency Injection 과 전략패턴(Strategy Pattern)에 대한 학습을 해보는게 좋을 것 같다.
- MVC 패턴에 대해서 고민하고 설계를 할 수 있도록 노력하자.
- 메서드 및 변수, 클래스들의 이름에 대해서 좀 더 고민하도록 하자.
- 코드의 논리적 흐름에 따라서 구분하는 공백을 추가하는 습관을 들이도록 하자.
- 상수를 활용하여 코드의 의도를 좀 더 분명하게 드러내도록 하자.
- 불필요한 변수 할당을 줄이도록 노력하자.
- nullPointerException에 대해서 공부하도록 하자. ex) equals, valueOf 메소드 등등.. 참고자료1 참고자료2