- ํ๋ก์ ํธ ์๊ฐ
- ์ฃผ์๊ธฐ๋ฅ
- ํธ๋ฌ๋ธ ์ํ
Custom-Shopping์ ๊ธฐ์กด 5์ธ ํ ํ๋ก์ ํธ๋ฅผ ๋ฆฌํฉํ ๋งํ์ฌ
๋๊ท๋ชจ ํธ๋ํฝ ํ๊ฒฝ์์ ์ํ ๊ตฌ๋งค ์๋น์ค์ ์ค์๊ฐ ์กฐํ์, ๋ญํน์ ์ ๊ณตํ๋์จ๋ผ์ธ ์ผํ๋ชฐ ์๋น์ค์
๋๋ค.
- ๋์ฉ๋ ํธ๋ํฝ ์ํฉ์์ ๋์์ฑ ์ด์ ์ ์ด.
- Redisson RLock์ผ๋ก ๋ฝ ์๋ ๊ด๋ฆฌ, ์์ ์ ์ธ ๋ฝ ๊ตฌํ.
- ์ํ์ ์กฐํํ ๋๋ง๋ค ์กฐํ์ UPDATE ์ฟผ๋ฆฌ๋ฅผ ์ถ๊ฐ๋ก ๋ ๋ ค์ผ ํ๋ ์ํฉ์ ๋ง๊ธฐ ์ํด ์บ์ฑ ํ์ฉ.
- ์๋ต์๊ฐ ์ฑ๋ฅ ํฅ์.
- ๊ฐ ์ํ๋ณ UPDATE ์ฟผ๋ฆฌ ์คํ ํ์๋ฅผ ์ค์ด๊ณ ๋คํธ์ํฌ, DB ๋ถํ ์ํ.
- UPDATE ์ฟผ๋ฆฌ๋ฅผ ๊ฐ๋ณ ์์ฑํ๋, ์ผ์ ๋จ์ (batch size)๋ก ๋ฌถ์ด ํ๋ฒ์ DB๋ก ์ ์ก.
- ์ํ๋ฅผ ์ ์ฅํ์ง ์๋ JWT์ ํน์ฑ ๋๋ฌธ์ ๋ก๊ทธ์์, ํ ํฐ ์ฌ๋ฐ๊ธ ๊ด๋ฆฌ๋ฅผ ์ํด Redis ํ์ฉ.
- Refresh Token์ ์ ์ฅํด ํ ํฐ ๊ฐฑ์ , ๋ก๊ทธ์์ or ํํด ์ access token ๋ธ๋๋ฆฌ์คํธ ์ฒ๋ฆฌ.
- ๋ฌธ์
- ๋ฝ ์ ์ฉ ํ ์ฃผ๋ฌธ ์์ฑ ,์ทจ์ ์ ์ฌ๊ณ ๋ถ์ผ์น ๋ฐ์
- ํธ๋์ญ์ ์ปค๋ฐ ํ ์ฌ๊ณ ํ์ธ์ด ๊ฐ๋ฅ
- ๋ฝ ํด์ ์์ ๊ณผ ํธ๋์ญ์ ํด์ ์์ ์ด ๋ง์ง ์์ ๋ค๋ฅธ ์ค๋ ๋์์ ์ฌ๊ณ ๋ถ์ผ์น ๋ฐ์
- ๋ฝ ์ ์ฉ ํ ์ฃผ๋ฌธ ์์ฑ ,์ทจ์ ์ ์ฌ๊ณ ๋ถ์ผ์น ๋ฐ์
-
ํด๊ฒฐ ๋ฐฉ์ 1
-
JPA๋ฅผ NativeQuery๋ก ๋ณ๊ฒฝ ์๋
- ํธ๋์ญ์ ์ด ์ปค๋ฐ๋์ง ์์ผ๋ฉด ์ฌ์ ํ ๋ค๋ฅธ ํธ๋์ญ์ ์์๋ ์ด์ ๊ฐ๋ง ์กฐํํจ.
-
Redisson ๋ฝ ํด์ ์์ ์กฐ์
- ๋ฝ์ ํธ๋์ญ์ ์ปค๋ฐ ํ์ ํด์ ๋๋๋ก TransactionSynchronizationManager๋ฅผ ํตํด ์ฒ๋ฆฌ
- ํ๋์ ์ค๋ ๋๊ฐ ํธ๋์ญ์ ์ปค๋ฐํ ํ ๋ค๋ฅธ ์ค๋ ๋๊ฐ ๋ฝ์ ํ๋ํ ์ ์๋๋ก ์ค์ .
-
-
ํด๊ฒฐ ๋ฐฉ์1 ๋ฌธ์ ์ ๋ฐ์
- Lock ํ๋์ด ํธ๋์ญ์ ๋ด๋ถ์ ์์ผ๋ฉด, Lock์ ์๋ช ์ฃผ๊ธฐ๊ฐ ํธ๋์ญ์ ๊ฒฝ๊ณ์ ์ข ์๋์ด์ผ ํ๋๋ฐ,
- Lock ํด์ ๋ ํธ๋์ญ์
Commit ํ์ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ฏ๋ก ์๋ช
์ฃผ๊ธฐ๋ฅผ ์ผ๊ด๋๊ฒ ๊ด๋ฆฌํ ์ ์๋ค
- ์ด๋ ๊ฒ ๋๋ฉด ๋ฐ๋๋ฝ, ๋ฐ์ดํฐ ๋ถ์ผ์น ๋ฑ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ํด๊ฒฐ ๋ฐฉ์ 2(์ ์ ์ฒ๋ฆฌ ์ํฉ)
- Lock ํ๋ ์์ ์ ํธ๋์ญ์ ์ ์ผ๋ก ํ์ฌ ํธ๋์ญ์ ๋ฒ์๋ฅผ ํ์คํ๊ฒ ์กฐ์ ํ์ฌ ๊ตฌ์กฐ์ ํด๊ฒฐ
-
๋์ ๋ฐฐ๊ฒฝ
- ํธ๋ํฝ์ด ๋ชฐ๋ฆฌ๊ณ ๋์ ๊ตฌ๋งค๊ฐ ๋ง์ด ๋ฐ์ํ๋ ์ํ์ ๊ตฌ๋งค๋ฅผ ์ ํํ ์ฒ๋ฆฌ
- ์ธ๊ธฐ ์ํ์ ์กฐํ์์ ๋ญํน์ ์ค์๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ ํ๋ ๊ธฐ๋ฅ ํ์
-
๊ธฐ์ ์ ์ ํ์ง
-
Redisson ๋ถ์ฐ ๋ฝ ์ ์ฉ
- ์ํ ์ฃผ๋ฌธ์ด ๋์์ ์ด๋ฃจ์ด์ง ๋ ํธ๋์ญ์ ์ปค๋ฐ ์์ ๊ณผ Synchronized ์ ์์ ์ฐจ์ด๋ก ์ํ ์ฌ๊ณ ๋ฐ์ดํฐ ์ ํฉ์ฑ ๊นจ์ง
-
Redis ์บ์ฑ
- ์ผ์ผ ์ค์๊ฐ ์ํ ์กฐํ์์ ๋ญํน ์ ๊ณต
- ์กฐํ์ UPDATE ์ฟผ๋ฆฌ๊ฐ ๋งค๋ฒ ์คํ๋์ด ๊ณผ๋ํ DB ์ ๊ทผ ์ํฉ ๋ฐ์
- ์ฌ๋ฌ ์ํ์ ์กฐํ์๋ฅผ ํ ๋ฒ์ ์ ๋ฐ์ดํธ ํ ์ ์๋ ์ฟผ๋ฆฌ ํ์
๊ฒฐ๋ก : Redisson ๊ธฐ๋ฐ ๋ถ์ฐ๋ฝ ์ ์ฉ, ์กฐํ์ ์บ์ฑ ๋ฐ batch๋ก UPDATE ์ฟผ๋ฆฌ ๋ฌถ์ด DB๋ก ํ๋ฒ์ ์ ์ก.
-




