1. 시도 횟수 음수 검증 및 테스트

src/main/java/racingcar/domain/Attempt.java

package racingcar.domain;

public class Attempt {

원시값을 포장하여 유의미한 객체를 만드셨네요👏

다만 해당 객체에서 시도 횟수의 경우 음수는 불가능한 것으로 보이는데, 요 부분에 대한 Validation과 테스트도 함께 추가해주면 좋을 것 같아요.

→ Input 에서 사용자 입력에 대한 검증을 거친 후 시도 횟수 객체를 생성합니다. 입력에 대한 검증을 지나와도 객체 생성 시 별개의 검증 과정을 거치는 것이 좋을까요?

  1. 상수화의 기준

리뷰어님께서 피드백해주신 상수화의 기준에 대해 고민해보았습니다. 피드백을 받기 전에는 언제 어떤값을 수정할지 모르니 모든 값을 상수화해야한다 라고 생각했습니다. 리뷰어님께 지적을 받고 상수화 기준에 대해 고민해보았고 제 나름의 결론을 내렸습니다.

  1. 검증 로직 분리

테스트 시 입력에 대한 테스트가 필수였는데 Input 에서 입력 및 검증을 모두 맡다보니 제가 테스트 해야하는 메소드들은 private 으로 선언되어 테스트를 할 수 없었습니다. 그러자 프리코스 때 작성했던 코드가 생각나 참고하였습니다. 바로 InputValidator 를 분리하는 것입니다. 프리코스 당시에는 클래스를 모두 분리해야 한다! 에 사로잡혀 의미도 모르고 분리했었다면, 이번에는 나름의 기준이 있습니다. 클래스도 하나의 역할만을 하도록 분리하는 것이 맞다고 생각되고 테스트를 위해 입력값을 검증하는 메인 메소드를 public으로 만들기 위해 분리하는 것이 불가피하다 느꼈습니다... 를 좀 더 이쁘게 풀어쓰기ㅠ