getPuri๋ Puri ์ฟผ๋ฆฌ ๋น๋๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฉ์๋์
๋๋ค. ์ง์ SQL ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ฑฐ๋ UpsertBuilder๋ฅผ ์ฌ์ฉํ ๋ ํ์ํฉ๋๋ค.
ํ์ ์๊ทธ๋์ฒ
๋งค๊ฐ๋ณ์
which
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ฆฌ์ ์ ์ง์ ํฉ๋๋ค. ํ์ :DBPreset ("r" | "w")
"r": Read ์ ์ฉ (๋ณต์ DB, ์กฐํ์ฉ)"w": Write ๊ฐ๋ฅ (Primary DB, ์ฐ๊ธฐ์ฉ)
"r"๊ณผ "w"๋ ๋์ผํ DB๋ฅผ ๊ฐ๋ฆฌํฌ ์ ์์ต๋๋ค. ์ค์ ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค.๋ฐํ๊ฐ
ํ์ :PuriWrapper
Puri ์ฟผ๋ฆฌ ๋น๋ ๋ํผ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
PuriWrapper ๋ฉ์๋
table / from
ํ ์ด๋ธ์ ์ง์ ํ์ฌ Puri ์ฟผ๋ฆฌ ๋น๋๋ฅผ ์์ํฉ๋๋ค.transaction
ํธ๋์ญ์ ์ ์์ํฉ๋๋ค.UpsertBuilder ๋ฉ์๋
ubRegister
UpsertBuilder์ ๋ ์ฝ๋๋ฅผ ๋ฑ๋กํฉ๋๋ค.ubUpsert
๋ฑ๋ก๋ ๋ ์ฝ๋๋ฅผ Upsertํฉ๋๋ค.ubInsertOnly
๋ฑ๋ก๋ ๋ ์ฝ๋๋ฅผ Insert๋ง ํฉ๋๋ค (UPDATE ์์).ubUpdateBatch
๋ฑ๋ก๋ ๋ ์ฝ๋๋ฅผ ๋ฐฐ์น ์ ๋ฐ์ดํธํฉ๋๋ค.raw
Raw SQL์ ์คํํฉ๋๋ค.๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
์ง์ ์ฟผ๋ฆฌ ์์ฑ
๋ณต์กํ ์ฟผ๋ฆฌ
ํธ๋์ญ์ ์ฌ์ฉ
ํธ๋์ญ์ ์ฐ๋
์์ฒญํ preset์ ์ด๋ฏธ ํ์ฑ ํธ๋์ญ์ ์ด ์์ผ๋ฉดgetPuri๋ ํด๋น DB ํธ๋์ญ์
์ ์ฐธ์ฌํฉ๋๋ค. ํ์ฑ
ํธ๋์ญ์
์ด ์์ผ๋ฉด preset์ ์ค์ ๋ DB์ ์ ๊ทผํฉ๋๋ค.
@transactional ๋ด์์ ์ฌ์ฉ
์ค์ฒฉ ๋ฉ์๋ ํธ์ถ ์์ ์ฑ
ํธ๋์ญ์ ์์์ ํธ์ถํ ๋ฉ์๋๊ฐ ๊ฐ์ preset์ ์์ฒญํ๋ฉด ๋์ผํ DB ํธ๋์ญ์ ์ ์ฐธ์ฌํฉ๋๋ค.@transactional ์์์ ๊ฐ์ dbPreset์ผ๋ก ํธ์ถํ getPuri๋ ๋์ผํ DB ํธ๋์ญ์
์ ์ฐธ์ฌํฉ๋๋ค.
๊ฐ์ฅ ๋ฐ๊นฅ ๋ฐ์ฝ๋ ์ดํฐ ํธ์ถ์ด ์ปค๋ฐ๊ณผ ๋กค๋ฐฑ์ ๋ด๋นํฉ๋๋ค.์ค์ ์์
- ์ง๊ณ ์ฟผ๋ฆฌ
- Raw SQL
- ๋ฐฐ์น ์์
- ๋ณต์กํ ํธ๋์ญ์
getPuri vs getDB
getPuri
Puri ์ฟผ๋ฆฌ ๋น๋ + UpsertBuilder๋ฅผ ์ ๊ณตํฉ๋๋ค.getDB
์์ Knex ์ธ์คํด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.๋๋ถ๋ถ์ ๊ฒฝ์ฐ
getPuri๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ํ์
์์ ์ฑ๊ณผ UpsertBuilder ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค
"read uncommitted""read committed"(PostgreSQL ๊ธฐ๋ณธ)"repeatable read""serializable"
ํ์ ์์ ์ฑ
Puri๋ ์์ ํ ํ์ ์์ ์ฑ์ ์ ๊ณตํฉ๋๋ค.์ฃผ์์ฌํญ
1. ์ฝ๊ธฐ/์ฐ๊ธฐ ๊ตฌ๋ถ
์ฝ๊ธฐ ์์ ์"r", ์ฐ๊ธฐ ์์
์ "w"๋ฅผ ์ฌ์ฉํ์ธ์.
2. @transactional ๋ด์์ ์ฌ์ฉ
@transactional ๋ด์์๋ ํธ๋์ญ์
์ด ์๋์ผ๋ก ๊ด๋ฆฌ๋ฉ๋๋ค.
3. UpsertBuilder๋ ํธ๋์ญ์ ํ์
์ฑ๋ฅ ์ต์ ํ
1. ์ธ๋ฑ์ค ํ์ฉ
2. SELECT ํ๋ ์ ํ
3. ๋ฐฐ์น ์ฒ๋ฆฌ
๋ค์ ๋จ๊ณ
Puri ์ฟผ๋ฆฌ ๋น๋
Puri ์ฟผ๋ฆฌ ์์ฑ ๋ฐฉ๋ฒ
UpsertBuilder
UpsertBuilder ์ฌ์ฉ ๊ฐ์ด๋
@transactional
ํธ๋์ญ์
๋ฐ์ฝ๋ ์ดํฐ
ํธ๋์ญ์
์๋ ํธ๋์ญ์
๊ด๋ฆฌ