다음은 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에 대해 알고 있는 사실은 아직 이것밖에 없다.
리액티브 프로그래밍과 관계형 데이터베이스
JPA와 JDBC의 차이
JPA Repositories를 가지고 비동기 코드를 짜고 싶습니다
R2DBC를 통해 데이터에 접근하기