본문 바로가기

Spring5

Spring WebFlux Error Handling Spring WebFlux 의 Reactive Stream (Mono, Flux) 를 처리하다 보면 발생되는 예외 상황들을 어떻게 처리하면 좋을지 고민하게 된다. 발생되는 예외들을 throw 시켜서 GloabalExceptionHandler(Advice) 에서 통합적으로 처리해줄 수 있겠지만, 때론, 해당 예외들을 직접 처리해줘야 하는 경우도 있을 수 있다. 이번 게시글에선 해당 예외 등의 에러 처리를 어떻게 할 수 있을지 작성하고자 한다. onErrorReturn - 에러 발생 시 기본 값 사용하기 onErrorReturn 은 Reactive Stream 처리 과정 중 에러가 발생하였을 때 정해진 Fallback Value 를 반환하는 방식이다. public final Mono onErrorReturn.. 2021. 4. 12.
Spring Data R2DBC 연관관계 구현 - ManyToOne 지난 게시글은 OneToMany 연관관계 관계를 R2DBC 를 통해 어떤 식으로 구현할 수 있는지를 살펴보았다. 참고 - heesutory.tistory.com/34 Spring Data R2DBC 연관관계 구현 - OneToMany (2) 지난 번 작성된 R2DBC 에서 OneToMany 를 구현하는 부분을 이어서 작성한다. 지난 첫 게시글에선 DatabaseClient 로 별도의 Custom Repository 를 정의하였고, 해당 부분에서 Member 와 Order 를 JOIN 하여 처리하.. heesutory.tistory.com 이번 시간은 ManyToOne 관계를 한번 알아볼 수 있도록 해보겠습니다. 이번 게시글에서도 회원(Member) 와 주문(Order) 를 사용하여 구현해보도록 하겠습니다.. 2021. 4. 2.
Spring Data R2DBC 연관관계 구현 - OneToMany R2DBC 는 ORM 이 아니기 때문에 JPA 와는 다르게 지원되지 않는 기능들이 몇가지 있다. 대표적으로 연관관계 매핑이 그러하다. Spring Data R2DBC aims at being conceptually easy. In order to achieve this it does NOT offer caching, lazy loading, write behind or many other features of ORM frameworks. This makes Spring Data R2DBC a simple, limited, opinionated object mapper. JPA 사용자였다면, 다양한 연관관계를 어노테이션을 통해 명시해주고 JPQL, EntityGraph, QueryDSL 을 이용하여 조인하.. 2021. 3. 28.
Spring Data R2DBC 사용 Reactive Relational DataBase Connectivity (R2DBC) 는 기존 Blocking 기반의 RDB 를 Reactive 하게 사용할 수 있도록 API 를 제공한다. 기존 Spring WebFlux 에서 RDB 를 사용하는 경우 온전한 Reactive 한 구현을 하기 어려웠었다. (Blocking 기반 API 제공) 그렇지만, WebFlux 와 R2DBC 를 사용하는 경우 Reactive 한 느낌만 내는 것이 아니라, 애플리케이션이 온전히 Reactive 하게 동작할 수 있도록 지원한다. R2DBC 는 완전한 Reative RDB 사용을 위해 non-blocking I/O layer 위에 Database 유선 프로토콜 계층까지 완전히 새롭게 구현한 드라이버를 제공. R2DBC .. 2021. 3. 28.
Custom Validation 사용해보기 실제 애플리케이션을 개발하다 보면 어떤 객체의 값이 비었는지, 공백인지, 재대로 된 패턴에 맞는지 등의 유효성 검사를 빈번하게 사용해야 하는 경우가 많습니다. Spring 에서는 Java Bean Validation 을 이용하여 검사 대상 클래스에 어노테이션 기반 제약 조건을 선언하여 간결하게 유효성 검사를 할 수 있습니다. 의존성 ... dependencies { ... implementation("org.springframework.boot:spring-boot-starter-validation") ... } ... spring-starter-validation 의존성을 추가하여 사용 사용 예시 @NoArgsConstructor(access = AccessLevel.PRIVATE) public cla.. 2021. 3. 20.