주니어 개발자는 Java 명령줄에서 사용자 입력을 읽고 처리하는 방법을 배우고 싶어 했습니다. Robert의 팀에는 확고한 의견과 멘토링 접근 방식으로 알려진 시니어 개발자가 있습니다. 이 시니어는 개념을 설명하기 위해 예제 애플리케이션을 제공했습니다. 코드는 main 메서드와 헬퍼 함수를 가진 ScannerTool 클래스를 정의합니다. main 메서드는 사용자 입력을 처리하기 위해 복잡한 맵 구조를 초기화합니다. do-while 루프를 사용하여 사용자에게 반복적으로 입력을 요청합니다. 루프의 조건은 초기화된 맵 내의 정교한 조회에 의존합니다. nextCharacter 함수는 입력 줄을 읽고 첫 번째 문자를 포함하는 Optional 또는 입력이 비어 있으면 빈 Optional을 반환합니다. 제공된 솔루션은 Scanner를 광범위하게 사용하는데, 이는 단순히 문자를 읽는 데는 과도하다고 간주됩니다. 과잉 공학의 핵심은 메시지와 루프 제어 로직을 관리하기 위해 튜플을 생성하려고 시도하는 Map.Entry 객체의 Map에 있습니다. 이 복잡한 구조는 멘토링 예제로 제시되었지만, 기본적인 작업을 상당히 복잡하게 만들었습니다. 저자는 시니어 개발자의 솔루션의 복잡성에 대해 당혹감을 표현합니다.
main메서드와 헬퍼 함수를 가진ScannerTool클래스를 정의합니다.main메서드는 사용자 입력을 처리하기 위해 복잡한 맵 구조를 초기화합니다.do-while루프를 사용하여 사용자에게 반복적으로 입력을 요청합니다. 루프의 조건은 초기화된 맵 내의 정교한 조회에 의존합니다.nextCharacter함수는 입력 줄을 읽고 첫 번째 문자를 포함하는Optional또는 입력이 비어 있으면 빈Optional을 반환합니다. 제공된 솔루션은Scanner를 광범위하게 사용하는데, 이는 단순히 문자를 읽는 데는 과도하다고 간주됩니다. 과잉 공학의 핵심은 메시지와 루프 제어 로직을 관리하기 위해 튜플을 생성하려고 시도하는Map.Entry객체의Map에 있습니다. 이 복잡한 구조는 멘토링 예제로 제시되었지만, 기본적인 작업을 상당히 복잡하게 만들었습니다. 저자는 시니어 개발자의 솔루션의 복잡성에 대해 당혹감을 표현합니다.