SAGA Pattern
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์์ ์ฌ๋ฌ ์๋น์ค์ ๊ฑธ์ณ์๋ ๋น์ฆ๋์ค ํธ๋์ญ์ ์ ์์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋์์ผ๋ก SAGA ํจํด์ด ๋๋ฆฌ ์ฌ์ฉ๋๋ค.
SAGA๋ ํ๋์ ๊ธด ๋น์ฆ๋์ค ํธ๋์ญ์ญ์ ์ ์ฌ๋ฌ ๊ฐ์ ๋ก์ปฌ ํธ๋์ญ์ ์ ์ฐ์์ผ๋ก ๋๋์ด ์ฒ๋ฆฌํ๋ ํจํด
๊ฐ ๋ก์ปฌ ํธ๋์ญ์ ์ด ์ฑ๊ณตํ๋ฉด, ๋ค์ ํธ๋์ญ์ ์ ํธ์ถํ๋ ์ด๋ฒคํธ๋ฅผ ๋ฐํํ๋ ๋ฐฉ์์ผ๋ก ์ ์ฒด ํ๋ฆ ์งํ
ํต์ฌ ์๋ฆฌ - ๋ณด์ ํธ๋์ญ์
SAGA ํจํด์ ํต์ฌ์ ๋ง์ฝ ๋ก์ปฌ ํธ๋์ญ์ ์ค ํ๋๊ฐ ์คํจํ๋ฉด, ์ด๋ฏธ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ์ด์ ํธ๋์ญ์ ๋ค์ ์ทจ์ํ๋ ๋ณด์ ํธ๋์ญ์ ์ด ์ญ์์ผ๋ก ์คํ๋๋ค.
(T1)๊ฒฐ์ ์๋น์ค: ์นด๋ ๊ฒฐ์ ์ฑ๊ณต(T2)์ฌ๊ณ ์๋น์ค: ์ฌ๊ณ ์ฐจ๊ฐ ์คํจ(C1)๊ฒฐ์ ์๋น์ค: ์นด๋ ๊ฒฐ์ ์ทจ์ (T1์ ๋ณด์ ํธ๋์ญ์ )
์ด๋ฌํ ๋ณด์ ํธ๋์ญ์ ์ ์คํ์ ํตํด, ์ ์ฒด ์์คํ ์ ์ต์ข ์ ์ผ๋ก ์ผ๊ด๋ ์ํ๋ฅผ ์ ์งํ๊ฒ ๋๋ค. ์ด๋ฅผ ์ต์ข ์ ์ผ๊ด์ฑ(Eventual Consistency)์ด๋ผ ์นญํ๋ค.
๋ ๊ฐ์ง ๊ตฌํ ๋ฐฉ์
SAGA ํจํด์ ์ ์ด ๋ฐฉ์์ ๋ฐ๋ผ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์๋ค.
์ ์ด ๋ฐฉ์
๊ฐ ์๋น์ค๊ฐ ์ด๋ฒคํธ๋ฅผ ๋ฐํํ๊ณ ๊ตฌ๋ ํ๋ฉฐ ์์จ์ ์ผ๋ก ๋์
์ค์์ ์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ๊ฐ ์๋น์ค์ ํธ๋์ญ์ ์ ์ง์ ๋ฐ ์ ์ด
์ฅ์
์๋น์ค ๊ฐ ๊ฒฐํฉ๋๊ฐ ๋ฎ๊ณ ๊ตฌ์กฐ๊ฐ ๋น๊ต์ ๋จ์
์ ์ฒด ํ๋ฆ์ ์ค์์์ ๊ด๋ฆฌํ์ฌ ์ถ์ ๋ฐ ๋๋ฒ๊น ์ฉ์ด
๋จ์
์ ์ฒด ํ๋ฆ์ ํ์ ํ๊ธฐ ์ด๋ ต๊ณ , ์๋น์ค ๊ฐ ์ํ ์์กด์ฑ ์ํ
์ค์ผ์คํธ๋ ์ดํฐ์ SPoF
์ฌ์ธต์ ๊ณ ๋ ค์ฌํญ
SAGA ํจํด์ ์ ์ฉํ ๋๋ ACID ์์ฑ ์ค ์ผ๋ถ๋ฅผ ํฌ๊ธฐํ๋ ํธ๋ ์ด๋์คํ๋ฅผ ์ดํดํด์ผ ํ๋ค.
๊ฒฉ๋ฆฌ ์์ค(Isolation)์ ๋ถ์ฌ
SAGA๋
ACD(์์์ฑ, ์ผ๊ด์ฑ, ์ง์์ฑ)๋ ๋ณด์ฅํ์ง๋ง, ๊ฒฉ๋ฆฌ์ฑ ๋ณด์ฅ X์ฑ๊ณต(T1)๊ณผ ์คํจ(T2) ์ฌ์ด์ ์งง์ ์๊ฐ ๋์, ์ผ๋ถ ์๋น์ค๋ ์ค๊ฐ ์ํ๋ฅผ ๋ณผ ์ ์์
์ดํ ๋ณด์ ํธ๋์ญ์ (C1)์ด ์คํ๋์ด ์ผ์์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋ถ์ผ์นํ๋ ์ํ๊ฐ ์ธ๋ถ์ ๋ ธ์ถ๋ ์ ์์
๋ณด์ ํธ๋์ญ์ ์ ๋ฉฑ๋ฑ์ฑ ๋ณด์ฅ
๋คํธ์ํฌ ์ค๋ฅ ๋ฑ์ผ๋ก ์ธํด ๋ณด์ ํธ๋์ญ์ ์์ฒญ์ด ์ฌ๋ฌ ๋ฒ ์ ๋ฌ ๊ฐ๋ฅ
๋ณด์ ํธ๋์ญ์ ์ด ์ฌ๋ฌ ๋ฒ ์คํ๋๋๋ผ๋ ์์คํ ์ํ์ ์ํฅ์ ์ฃผ์ง ์๋๋ก ๋ฉฑ๋ฑ์ฑ(idempotency)์ ๋ณด์ฅํด์ผ ํจ
์ต์ข ์ ์ผ๊ด์ฑ
SAGA๋ ๋ชจ๋ ์ฐธ์ฌ ์๋น์ค๊ฐ ์ฆ์ ์ผ๊ด๋ ์ํ๋ฅผ ์ ์งํ๋ ๊ฐํ ์ผ๊ด์ฑ(Strong Consistency)์ ๋ณด์ฅํ์ง ์์
๋์ , ์คํจ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋ณด์ ํธ๋์ญ์ ์ ํตํด ๊ฒฐ๊ตญ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ผ๊ด๋ ์ํ์ ๋๋ฌํ๋ ์ต์ข ์ ์ผ๊ด์ฑ์ ๋ชฉํ
์ผ์์ ์ธ ๋ฐ์ดํฐ ๋ถ์ผ์น๋ฅผ ํ์ฉํ ์ ์๋ ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ์ธ์ง ๊ฒํ ํ์
Last updated
Was this helpful?