인프런 커뮤니티 질문&답변

spc_pok님의 프로필 이미지
spc_pok

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

선생님 optional<>관련 질문이 있습니다.

작성

·

425

0

선생님 강의 시청도중 궁금증이 생겨서 질문남깁니다.

자바 8부터 객체 리턴시에 null이 리턴되어 참조되는걸 방지하고자 optional을 사용한다고 말씀하셨는데요

optional로 감싼 객체는 1회용으로 거기서 원래 객체를 꺼내면 메모리에 남은 optional객체는 gc가 수거해야할 쓰레기가 되는건가요?

그렇다면 무분별한 optional남용은 오버헤드를 초래할 수 있을 것 같은데요 메소드명에 OrNull을 추가해서 명시적으로 해당 메서드에서는 null이 리턴될 가능성이 있다고 알리고 사용하는 쪽에서 null값을 리턴받은경우에 대한 예외처리를 분기문등으로 진행하는게 낫지 않나요?

정확히 optional을 사용할때의 어떤 장점때문에 오버헤드의 가능성을 감수하고 사용하는 건가요?

답변 1

2

Optional과 관련하여 정리된 블로그 링크를 남깁니다.

모든 getter에 Optional 남용은 자바측의 의도가 아니라고 하네요.

- 하지만 세상만사가 모두 개발자의 뜻대로 흘러가는것도 아니죠 (미소)

Optional 제대로 활용하기 - Increment (latera.kr)

김영한님의 프로필 이미지
김영한
지식공유자

codesweaver님 좋은 링크 감사합니다!

김영한님의 프로필 이미지
김영한
지식공유자

spc_pok님

codesweaver님이 남겨주신 링크로 공부해보시면 오버해드보다 얻는 이점이 훨씬 더 많습니다.

사실 이정도 오버헤드는 전체 애플리케이션 관점에서 보면 백사장의 모래알 정도로 이해하시면 됩니다.

(암달의 법칙)

감사합니다.

spc_pok님의 프로필 이미지
spc_pok
질문자

두분모두 소중한 답변 주셔서 감사합니다. 올려주신 링크 확인했습니다. 좋은 사용예제대로 적절하게 상황에따라 사용하겠습니다!

spc_pok님의 프로필 이미지
spc_pok

작성한 질문수

질문하기