orElseGet으로 오류처리중 아무리 해도 안됨
그래서 다시 찾아보니 orElseGet은 null일시에 해당 메서드나 명령문을 실행하는건 맞음
하지만 예외처리는 orElseThrow로 처리해야함
구멍가게 코딩단의 코드에 신세를 많이 졌지만 이제 isPresent()-get()에 관해서는 orElse(), orElseThrow()로 바꾸려고 노력하고 있음
Optional<Member> result = repository.getWithRoles(username);
if (result.isEmpty()) {
throw new UsernameNotFoundException("이메일이나 소셜 로그인을 여부를 다시 확인해주세요.");
}
Member member = result.get();
Member member = checkMember(username);
private Member checkMember(String username) {
return repository.getWithRoles(username).orElseThrow(() -> new UsernameNotFoundException("아이디가 없습니다."));
}
물론 이 코드도 완벽한게 아니기 때문에 항상 더 좋은 방식을 생각해봐야겠다