R2DBC ํ๊ฒฝ์์ jOOQ generate ๋ Dao๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊น์?
๋จผ์ ์ข์ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค.ํด๋น ๋ฌธ์ ์ ๋ํด์ ์ ๊ฐ ์ ๊ทผํ ๋ฐฉ๋ฒ ๋ฐ ์๊ฐํ ๋ด์ฉ์ ๋ํด์ ๊ณต์ ๋๋ฆฝ๋๋ค.1. R2DBC ํ๊ฒฝ์์ Reactor Fetch ๋ฐฉ์์์ ๋ก๊ทธ๊ฐ ์ฐํ์ง ์๋ ๋ฌธ์ ์ฐ์ , ์ ๋ execute Listener์ ํตํด์ ์ฟผ๋ฆฌ์ ์๋๋ฅผ ์ธก์ ํ๋ ๊ฒ์ด ๋งค์ฐ ์ ์ฉํ๋ค๊ณ ์๊ฐํ์์ผ๋ฉฐ, ์ฟผ๋ฆฌ ๋ก๊ทธ์ ๋๋ถ์ด ํ์ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋์ง ์ฐพ์๋ณด์์ผ๋ฉฐ, ์๋์ FrameWork์ ์ฐพ๊ฒ ๋์์ต๋๋ค.https://github.com/r2dbc/r2dbc-proxyํด๋น FramWork์ ํตํด์ ConnectionFactory์ ProxyConnectionFactory์ผ๋ก Buildingํ๋ ๋ฐฉ์์ผ๋ก DB์ ํตํด ์ ๋ฌ๋๋ Query์ ์๋๋ฅผ ๋ก๊ทธ๋ก ์ฐ์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ์์ต๋๋ค.2. R2DBC ํ๊ฒฝ์์ jOOQ ์ฌ์ฉ ์ ์ฑ๋ฅ์ ์ด์(๊ฐ์ธ์ ์ธ ํ๊ฒฝ ๋ฌธ์ ์ผ ์๋ ์์ต๋๋ค.)R2DBC ํ๊ฒฝ์์ ํ์ด์ง ์ฒ๋ฆฌ, ์ฝ์
/์ญ์ ๋ฑ์ ๋ํด์๋ Database Client์ ํตํด์ Native Query์ ์คํํ๋ ๊ฒ๊ณผ๋ ์๋์ ์ผ๋ก ํฌ๊ฒ ์ฐจ์ด๊ฐ ๋์ง ์์์ต๋๋ค.2๋ง๊ฑด ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋์๋ jOOQ๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ๊ณผ Database Client์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์์ด์ ์๊ฐ์ ์ธ ์ฐจ์ด๊ฐ ์๊ฒผ์ต๋๋ค.๊ทธ๋์, ์๊ฐ์ ์ผ๋ก ์ฐจ์ด๊ฐ ๋ง์ด๋๋ ์กฐํ ์ฟผ๋ฆฌ์ ๋ํด์๋ jOOQ๋ณด๋ค ๊ธฐ์กด Database Client์ ํตํด์ Native Query๋ก ์์
ํ๊ณ ์์ต๋๋ค.(์ ๊ฐ ์์
ํ ํ๊ฒฝ์ ํน์์ฑ์ผ๋ก ์ธํ ์ด์ ์ผ ์๋ ์์ผ๋, ๊ฐ์ ํ๊ฒฝ์์ ํ
์คํธ ํด๋ณด์ ๋ค์ ์ฌ์ฉํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.)โป ๋ ์ข์ ๋ฐฉ๋ฒ์ ์๊ณ ๊ณ์ ๋ถ์ด ์์ผ๋ฉด ๊ณต์ ํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.