들어가며public String getBookTitle(Long id) { Book book = bookRepository.findById(id); return book.getTitle(); // book이 null이면?} Spring Data JPA의 findById()는 Optional를 반환합니다. 위 코드처럼 직접 엔티티를 반환받으려 하면 컴파일 에러가 나죠. 이 글에서는 왜 JPA가 Optional을 선택했는지, 그리고 이를 어떻게 활용해야 하는지 정리합니다. Optional이란?Optional은 "값이 있을 수도 있고 없을 수도 있다"를 명시적으로 표현하는 컨테이너입니다. 맞습니다. 슈뢰딩거의 고양이입니다. 컴파일러는 값의 존재 여부를 알 수 없으니, 런타임에 조치하라고 강제하는 ..