parseToLong 메서드 내에서 입력된 문자열이 비었는지 확인 후 0을 반환하는 로직으로 이해했는데, 한편으로 떠올려봤던 것은 빈 문자열은 상위 메서드인 splitInput 메서드에서 확인 및 처리가 가능할 것 같아 이곳에서 처리하고 return하여 효율성을 가져가는 것도 좋겠다는 생각을 해보았습니다..!
'''private static St...
>저는 메서드 호출(요청) == 책임 이라고 생각하지 않습니다. 객체지향은 객체들 간 메시지를 보내며 협력하는 구조를 갖는데, 송신자 객체 내부에서 수신자.메서드(요청 데이터)을 갖고 있는것이을 수신자의 책임을 갖고 있다는 관점에서 바라보면 가장 상위 계층에 존재해 프로그램의 진입점들이 되는 곳들은 서비스의 모든 책임을 갖고 있다고 바라봐야 하니까요....
역할 분배에서도 여러 관점이 있을 것 같은데요!
OutputHandler가 화면에 출력하는 역할을 전담하므로, 입력을 요청하는 메시지도 출력의 일환으로 간주하여 해당 클래스에 넣을 수도 있을 것 같은데,,
저는 개인적으로 입력과 관련된 모든 작업(`readInput()`, `printInputRequest()`)을 한 클래스에서 처리하면 역할이...
charList에 중복된 문자를 추가하지 않기 위해 검사하는 if문은 depth 4에 해당하는데요!
객체지향 생활체조 원칙에는 들여쓰기의 depth를 2 이상으로 두지 말라는 지침이 있습니다. 메서드 구조를 분리함으로써 한 단락은 하나의 일만 하도록 로직을 잘개 쪼개보는 건 어떨까요?
1주차 진행하시느라 고생 많으셨습니다.
객체 지향의 단일 책임 관점에서 몇 가지 개선점을 리뷰로 남겨보았습니다!
더불어, 테스트 코드 작성의 중요성을 깨닫고 갑니다. 상현님이 작성해주신 테스트 케이스 일부가 제 코드에서는 실패하더라고요. 코드의 안정성을 위해서는 테스트 코드 작성이 필수일 것 같아요,,🥹
1주차 진행하시느라 고생 많으셨습니다.
객체 지향의 단일 책임 관점에서 몇 가지 개선점을 리뷰로 남겨보았습니다!
더불어, 테스트 코드 작성의 중요성을 깨닫고 갑니다. 상현님이 작성해주신 테스트 케이스 일부가 제 코드에서는 실패하더라고요. 코드의 안정성을 위해서는 테스트 코드 작성이 필수일 것 같아요,,🥹
임시 변수를 만들지 않고 바로 인자로 넣어주면 코드 길이가 많이 줄을 것 같아요!
```suggestion
private void validateEdgeChar(String input) {
if (!Character.isDigit(input.charAt(0))) {
throw new IllegalArg...