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

도연님의 프로필 이미지
도연

작성한 질문수

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

회원 서비스 테스트

MemberServiceTest join() 부분 질문

작성

·

477

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

 

강의 5분쯤에 나오는 memberService.findOne(saveId).get()

과 memberSrvice.findOne(saveId)의 차이점이 뭘까요 .. ?

반환이 둘 다 Optional 로 감싼 member라고 생각 했는데

get()으로 값을 꺼내면 optional의 value 값이 나오는 걸까요 .. ?

optional을 잘 이해를 못해서 그런건지 이 부분 잘 이해가 안 가는데 어떤 내용을 더 학습해야 이해에 도움이 될까요 ...

답변 1

0

안녕하세요. 도연님, 공식 서포터즈 코즈위버입니다.

MemberService의 findOne() 메서드가 Optional<Member>를 반환하도록 정의되어 있지요? Optional로 감싼 객체는 그대로 사용할 수 없고, 내부에 담긴 객체를 꺼내어 사용해야 합니다. 꺼내는 명령이 Optional.get() 메서드 입니다.

Optional 은 결과 값이 null일 수도 있을 경우 NullPointerException을 방지하기 위한 안전장치로 사용하는 경우가 많은데, 과도하게 남발되는 경향도 있긴 합니다. Optional을 내부의 값이 null인지 확인하는 방법을 제공하며, null 일 경우의 처리방법 등도 제공합니다.

감사합니다.


도연님의 프로필 이미지
도연

작성한 질문수

질문하기