Spring WebFlux map vs flatMap
Spring WebFlux에서 Reactive Stream 내 데이터 변환에는 map 메서드와 flatMap 메서드가 사용됩니다. 이번 시간에는 데이터 변환에 사용되는 두 메서드의 차이에 대해 정리해보고자 합니다. map map 메서드는 데이터를 동기적으로 변환하기 위해 사용됩니다. Stream, Optional과 비슷하게 내부의 데이터...
Spring WebFlux에서 Reactive Stream 내 데이터 변환에는 map 메서드와 flatMap 메서드가 사용됩니다. 이번 시간에는 데이터 변환에 사용되는 두 메서드의 차이에 대해 정리해보고자 합니다. map map 메서드는 데이터를 동기적으로 변환하기 위해 사용됩니다. Stream, Optional과 비슷하게 내부의 데이터...
Java Streams의 filter 메서드는 Predicate를 인자로 받아 false를 반환하는 element를 거르는 기능을 수행합니다. 예를 들어 모바일 기기의 요금제를 추천할 때, 시니어 요금제 중 5만원 이하이며 4G 네트워크 인 요금제를 찾는 코드를 Stream으로 작성하는 경우 public record Plan(Ta...
불변 객체는 상태 관리가 쉬우며 thread-safe하다는 장점이 있기 때문에 자주 사용됩니다. Java에서 14버전부터 도입된 Record로 쉽게 불변 객체 생성 가능 하지만 불변 객체의 특성상 Setter를 사용할 수 없기 때문에 특정 프로퍼티만 변경된 새로운 객체를 생성할 때 수고스러움이 존재합니다. 예를 들어 Client Cre...
비즈니스 로직을 구현하다 보면, 정상적인 흐름도 존재하지만 Exception을 발생시켜야 하는 상황이 생깁니다. 또한 I/O Exception 등을 처리하지 않게 된다면 500 에러가 발생하므로 잡아주는 작업이 필요합니다. 이번 시간에는 Exception을 보다 효율적으로 핸들링할 수 있도록 Custom Exception을 만들고 Exception...
백엔드를 개발하다 보면 MSA 환경에서 타 Service의 리소스를 요청하거나 Open API를 사용하는 등, 타 Server로 API 호출은 자주 이뤄집니다. 따라서 HTTP 클라이언트는 자주 사용되는, 서버 개발에 필수적인 요소입니다. Java 기반인 Spring Framework를 사용하는 경우 다음 HTTP 클라이언트 라이브러리를 고려할 수...