옵셔널 반환은 신중히 하라 자바 8 전에는 메서드가 특정 조건에서 값을 반환할 수 없을 때의 선택지가 두 가지 있었다. 예외 - 스택 추적 전체를 캡처하므로 비용이 만만치 않다, 진짜 예외적인 상황에서만 사용해야 한다. null을 반환하면 별도의 null처리 코드를 추가해야 한다. 자바 8로 올라가면서 선택지가 생겼다. Optional이다. null이 아닌 T타입 참조를 하나 담거나, 혹은 아무것도 담지 않을 수 있다. 아무것도 담지 않은 옵셔널은 '비었다'라고 한다. 반대로 어떤 값을 담은 옵셔널은 '비지 않았다'고 한다. 옵셔널은 원소를 최대 1개 가질 수 있는 '불변' 컬렉션이다. Optional가 Collection를 구현하지는 않았지만, 원칙적으로는 그렇다. 보통은 T를 반환해야 하지만 특정 조..