R2DBC란

강동훈·2022년 7월 8일
0

R2DBC

다음은 Spring Data R2DBC 레퍼런스에 나와있는 R2DBC에 대한 설명이다.

R2DBC is the acronym for Reactive Relational Database Connectivity. R2DBC is an API specification initiative that declares a reactive API to be implemented by driver vendors to access their relational databases.

R2DBC는 비동기 프로그래밍과 함께 사용된다. 반면, JDBC는 동기적으로 동작하므로 별도의 조작 없이는 비동기 프로그래밍에서 사용하기 적절하지 않다.


동기/비동기 프로그래밍은 많이 들어봤지만 데이터베이스 계층에서의 구현도 동기/비동기로 나뉠 수 있다는 사실을, 그래서 목적에 맞는 데이터베이스 드라이버 구현체를 사용해야 한다는 사실을 오늘 처음 알았다.

비동기 프로그래밍을 공부하기 위해 개인 프로젝트에서 Spring WebFlux를 쓰는 중인데, 아무것도 모르고 Spring Data JPA를 쓰고 있었다.. 프로젝트가 시작 단계여서 Spring Data JPA를 Spring Data R2DBC로 바꾸는 데 오래걸리지는 않았다.

Spring Data R2DBC에 대해 알고 있는 사실은 아직 이것밖에 없다.

  1. JPA에서는 JpaRepository를 상속받았다면, R2DBC에서는 R2dbcRepository를 상속받는다.
  2. 메소드 이름은 다 똑같은 것 같고, 리턴 타입은 모두 Publisher 인터페이스의 구현체(Mono 또는 Flux)로 감싸져있다.

참고하면 좋은 글

리액티브 프로그래밍과 관계형 데이터베이스
JPA와 JDBC의 차이
JPA Repositories를 가지고 비동기 코드를 짜고 싶습니다
R2DBC를 통해 데이터에 접근하기

profile
안녕하세요, 강동훈입니다.

0개의 댓글