[Effective Java] item 55. 옵셔널 반환은 신중히 하라 메서드가 특정 조건에서 값을 반환할 수 없을 때 자바 8 이전의 방식의 단점 예외를 던진다. 예외는 진짜 예외적인 상황에서만 사용해야 한다. 예외를 생성할 때 스택 추적 전체를 캡쳐하므로 비용도 만만치 않다. null을 반환한다. null을 반환할 수 있는 메서드를 호출할 때는, (null이 반환될 일이 절대 없다고 확신하지 않는 한) 별도의 null 처리 코드를 추가해야 한다. 자바 8부터 생긴 Optional Optional는 null이 아닌 T 타입 참조를 하나 담거나, 혹은 아무것도 담지 않을 수 있다. 아무것도 담지 않은 옵셔널은 '비었다'고 말한다. 반대로, 어떤 값을 담은 옵셔널은 '비지 않았다&#..