조회 결과를 Optional로 받는 이유
·
Backend/Spring
JPA를 사용하다 보면 findById() 같은 조회 메서드의 반환 타입이 Optional인 것을 자주 보게 된다.처음 보면“그냥 엔티티를 바로 주면 되는 것 아닌가?”라는 생각이 들 수 있다.하지만 조회라는 작업은 본질적으로 결과가 있을 수도 있고, 없을 수도 있는 작업이다.바로 이 점 때문에 Optional이 필요하다. 조회는 항상 성공하는 것이 아니다데이터베이스 조회는 개발자가 기대한 대로 항상 값을 찾는 것이 아니다.예를 들어 다음과 같은 경우를 생각할 수 있다.사용자가 존재하지 않는 게시글 번호를 요청한 경우이미 삭제된 데이터를 조회한 경우잘못된 파라미터가 전달된 경우아직 저장되지 않은 식별자로 조회한 경우이런 상황에서는 조회 결과가 없을 수밖에 없다.즉, 조회 메서드는 구조적으로 다음 두 가지..