- 참여자 이름을 입력받는다.
- 쉼표 기준으로 구분한다.
- 5글자 이하인지 확인한다.
- 구분자가 연속해서 포함되지 않는다.
- 구분자로 시작하거나 끝나지 않는 지 확인한다.
- 공백을 입력하지 않는다.
- 사다리 높이를 입력받는다.
- 1이상인지 확인한다.
- 정수인지 확인한다.
- Integer범위 이내의 숫자인지 확인한다.
- 사다리를 생성한다.
- 한 층의 다리를 랜덤으로 생성한다.
- 사다리 높이만큼 생성한다.
- 사다리의 가로 라인이 겹치지 않도록 생성한다.
- 실행 결과를 출력한다.
- 테스트를 클래스 별로 분리하기
- OutputView 메소드 정리하기
- public 메소드 테스트 점검
- 테스트 displayName 추가
- 테스트 내 변수 final 적용
- 이름 중복 검증
- 원시값 포장
- dto 변환
- 일급 컬렉션
- 메소드 10라인
- final: 생성자 (로컬변수)
- 예외 메시지 작성
- enum 적용
- 예외 발생시 재입력
- outputView 개선 - 커비
- 참여자 이름으로 'all'을 입력받으면 예외 처리한다.
- 실행 결과를 입력받는다.
- 쉼표 기준으로 구분한다.
- 구분자가 연속해서 포함되지 않는다.
- 구분자로 시작하거나 끝나지 않는 지 확인한다.
- 공백을 입력하지 않는다.
- 5글자 이하인지 확인한다.
- 실행 결과의 수와 참여자 수가 일치하지 않으면 예외 처리한다.
- 사다리 하단에 실행 결과를 출력한다.
- 결과를 보고 싶은 참여자를 입력받는다.
- 참여자의 이름을 입력할 시 해당 참여자의 결과만 출력한다.
- 'all'을 입력했을 시 전체 참여자의 결과를 출력한다.
- 참여자의 이름이나 'all'이 아닌 값을 입력했을 시 예외 처리한다.
- 종료 시점 고민(예시에선 'all'을 입력한 뒤 종료)
- 일반 메서드의 파라미터에도 final 키워드가 효과적일까?
- 같은 맥락으로 컨트롤러의 모든 로컬 변수에 final 붙이는 이유에 대해서도
- readWithRetry 작동 원리 이해