Optional을 둘 위치와 두지 않을 위치

부재를 반환 계약으로 표현할 때 가장 효과적이다.

위치권장이유
조회 method 반환사용caller가 부재 정책 선택
entity field지양직렬화·identity·중첩 상태 복잡
method parameter지양호출자가 container 생성 부담
collection element지양빈 collection과 element 부재 혼동

핵심: field와 parameter의 선택성은 별도 type, overload, builder 같은 domain 모델로 표현한다.