스프링 부트 프로젝트에서 클라이언트 요청을 처리하는 메소드를 작성할 때, map() 메소드와 orElseGet() 메소드를 자주 사용한다.
map()은 stream 클래스의 메소드다
간단히 요약하면, 스트림을 매개변수로 받고 함수(메소드)를 적용해 스트림을 반환하는 함수이다.
DB에서 데이터를 꺼내고 처리할 때 많이 사용한다.
orElseGet()은 Optional 클래스의 메소드다. 스프링에선 DB에서 데이터를 꺼낼 때, 찾는 데이터가 없을 경우가 있기 때문에 Optional 타입으로 꺼낸다.
Optional 타입 데이터가 null 값을 갖는 경우, 전달된 함수를 실행시키고, 그 리턴값을 저장한다.
두 메소드의 사용 예. DB에서 데이터를 꺼내 처리할 때 사용한다. 람다식을 통해 데이터를 처리하고 반환한다
Optional<User> optional = userRepository.findById(id)
.map(user -> Header.OK(user))
.orElseGet(() -> Header.ERROR("데이터 없음"));
'study > java' 카테고리의 다른 글
객체가 담긴 List 정렬 - stream을 활용해서 복잡한 정렬하기. (0) | 2021.05.13 |
---|---|
자바 코딩 테스트 삽질 - 마침표로 split 하기 (0) | 2021.04.30 |
엉터리 정리 - java.util.Optional<T> (0) | 2021.03.25 |
자바/JAVA JAR (0) | 2021.03.15 |
자바/JAVA 스트림(Stream) (0) | 2021.03.13 |