- 과연 사용자에게 입력받을 문자열을 따로 클래스로 관리해야할것인가?
- 클래스로 관리를 하지 않고 main메서드에서 변수로 간단하게 구현이 가능하다. 클래스로 관리를 한다면 확장 가능성에 대해 유연하게 반응할 수 있고 해당 클래스 내에서 숫자를 분리하는 로직을 구현 가능하기 때문에 이번 주차 과제에서는 사용자에게 입력받을 문자열을 클래스로 분리하여 관리하려고 한다.
- 에러를 처리하는 과정에서 main 메서드에서 처리할 것인가 아니면 따로 에러헨들링 클래스를 만들어서 처리할 것인가?
- 에러도 동일하게 클래스로 관리를 하지 않고 main메서드에서 try-catch문으로 에러 핸들링이 가능하다. 하지만 클래스로 에러핸들러를 관리한다면 어떤 에러가 발생했는지 로직을 구현하여 정확한 메세지를 설정할 수 있다. 하지만 이번 주차 과제에선 기능 요구 사항에 적혀있듯이 사용자가 잘못된 값을 입력하면 IllegalArgumentException을 발생시킨 후 애플리케이션을 종료되어야 한다고 하여 입력값을 확인하는 과정에서 이상이 있다면 IllegalArgumentException을 발생시키고 끝내려고 한다.
- 입력받는 문자열을 단순히 String으로 처리할 것인가, Queue로 처리할 것인가, 배열로 처리할 것인가 어떤것을 선택하는 것이 좋을까?
- build.gradle파일을 보면 의존성에 존재하는 우테코 라이브러리를 확인할 수 있는데, 해당 주소로 들어가 소스코드를 확인해본다면 사용자 입력을 받을 때 사용하는 Console.readLine() 메서드는 String타입을 반환하는 것을 알 수 있다. 따라서 입력받는 문자열은 String타입으로 처리하는것이 문법적으로 올바르다고 생각된다.
- 객체라는 관점에서 입력값을 받아오는 클래스에 구분자, 숫자 등 다양한 것들을 멤버변수로 만들어서 구분자를 분리하고, 숫자 부분을 분리하는 로직을 통하여 변수에 저장해두고 로직마다 필요할 때 해당 객체에서 꺼내서 사용하려 했는데 굳이 이렇게 저장해두고 사용해야하나? 라는 의문점이 생김. 뭔가 코드가 더 더러워진다는 느낌을 받았음
- 위 방식을 해결하기 위하여 굳이 저장하고 꺼내서 사용하지 말고 구분자와 숫자 부분을 구분하고, 계산하는 과정을 서로 체인처럼 연결되도록 구현하려고함