R2DBC 를 PostgreSQL 을 주로 쓰는 이유

백엔드&인프라 추종자·2025년 4월 22일

좋은 질문입니다.
R2DBC 기반 시스템에서 PostgreSQL을 주로 사용하는 이유는 단순한 호불호가 아니라, 기술적인 안정성과 지원 수준에서 차이가 있기 때문입니다.


✅ PostgreSQL을 선호하는 이유 (특히 WebFlux + R2DBC 환경에서)

항목PostgreSQL (postgresql-r2dbc)MySQL (mariadb-r2dbc or mysql-r2dbc)
공식 지원✅ Spring 공식 지원⚠️ MariaDB는 커뮤니티 드라이버 수준
성능✅ R2DBC 최적화 잘됨❌ 일부 기능 제한, 성능 이슈 있음
드라이버 안정성io.r2dbc:r2dbc-postgresql 매우 안정⚠️ r2dbc-mysql, r2dbc-mariadb는 불안정 사례 있음
트랜잭션 지원✅ 트랜잭션, DDL/DML 대응 잘됨⚠️ 오토커밋, 세션 처리 이슈 많음
JSON / Full-text 등 기능✅ JSON, GIN Index, CTE, Window function 등 풍부❌ 일부 기능 미지원 또는 성능 부족
Reactive 커뮤니티 피드백✅ 자료 많음, 이슈 대응 빠름❌ 사용 사례 적음, 에러 처리 어려움

💡 실제 예시: MySQL R2DBC에서 자주 겪는 문제

  • TransactionRollbackException: Transaction already closed
  • NullPointerException on connection pool close
  • 오토커밋 해제 안됨
  • 일부 JOIN, CTE, RETURNING 같은 쿼리문 동작 안 함

🔧 Spring Data R2DBC 공식 문서에서도 추천

Spring 공식 문서

"현재 R2DBC는 PostgreSQL 드라이버가 가장 안정적이며, 상용에서도 우선 추천되는 선택입니다."
Spring Data R2DBC Docs


☑️ 결론

WebFlux + R2DBC 기반에서는 PostgreSQL이 기술적 안정성, 기능 지원 면에서 더 적합합니다.
MySQL이나 MariaDB는 가능은 하지만 실무에서 문제가 자주 발생하며,
트러블슈팅 비용이 PostgreSQL보다 훨씬 큽니다.


물론, MySQL을 꼭 써야 한다면 사용 방법도 안내해드릴 수 있습니다.
실제 사용 DB가 MySQL인가요? PostgreSQL로 전환 여지가 있을까요?

profile
AI 답변 글을 주로 올립니다.

0개의 댓글