#๋ํ
#์์ธํ
#์์ฌ
๋ฌด์๋ฌผ ๋ ๊ฐ ์ฌ์ด์ ๋ํ๋ฅผ ๊ตฌ์ํฉ๋๋ค.
์ค๋ซ๋์ ์ฌ์ฉ๋์ด ๋ฒ๋ ค์ง๊ฒ ๋ ๋ก์ ์ฐ์ฐ๊ณผ, ๋ฐฉ๊ธ ๊ตฌ๋งค๋ ์๋ก์ด ๋น๋ฐฉ์ธ์ด ๋งบํ์ง ์๋ ์ ๋ฐ์ด ์ฒ์ ๋ง๋๋ ์ฅ๋ฉด์ ๋ํ์ฒด๋ก ์์ฑํ์ธ์. ์๋ก์ ๋ํ ๋ถ๋ง์ด๋ ์งํฌ, ํน์ ์กฐ์ธ์ ์ฃผ๊ณ ๋ฐ๊ฒ ํ์ธ์.
#์๊ธฐ์๊ฐ
#์๋ฌธ
#๋ชจ์
์๋ก์ด ์ทจ๋ฏธ ๋ํธ๋ฆฌ๋ฅผ ์ํด ์บ์ฃผ์ผํ ์๊ธฐ์๊ฐ ๊ธ์ ์์ฑํด ์ฃผ์ธ์.
์๋ก์ด ๋
์ ๋ชจ์์ ์ฐธ์ฌํ๊ธฐ ์ํ ์บ์ฃผ์ผํ ์๊ธฐ์๊ฐ ๊ธ์ ์์ฑํด ์ค. ๋ด ์ด๋ฆ์ ๋ฏผ์ง์ด๊ณ , ์ถ๋ฆฌ ์์ค์ ์ข์ํ๋ค๋ ๋ด์ฉ์ ํฌํจํด ์ฃผ์ธ์.
#์๊ธฐ์๊ฐ
#์ธ์ฌ
#๊ธฐ๋ณธ
์ด๋ฆ, ๋์ด, ์ฌ๋ ๊ณณ์ ๋ํด ๊ฐ๋จํ ์๊ฐํ๋ ๋ฌธ์ฅ์ ๋ง๋ค์ด ๋ณด์ธ์.
์๋
ํ์ธ์? ์ ์ด๋ฆ์ [์ด๋ฆ]์
๋๋ค. ์ ๋ [๋์ด]์ด์ด๊ณ [์ฌ๋ ๋์]์ ์ด๊ณ ์์ต๋๋ค. ๋ง๋์ ๋ฐ๊ฐ์ต๋๋ค.
#์์
#์ทจํฅ
#์ด์
๊ฐ์ฅ ์ข์ํ๋ ์์์ด ๋ฌด์์ธ์ง, ๊ทธ๋ฆฌ๊ณ ์ ์ข์ํ๋์ง ์ด์ ๋ฅผ ์ ์ด ๋ณด์ธ์.
์ ๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ์์์ ์์ ์ด๋ฆ์
๋๋ค. ๋ง์ด ๋ง์ ํน์งํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๋งค์ผ ๋จน๊ณ ์ถ์ด์.
#์ด๋ฉ์ผ
#๋น์ฆ๋์ค
#์ปค๋ฎค๋์ผ์ด์
๊ฑฐ๋์ฒ์ ์๋ก์ด ์ ์์ด๋ ๋ฏธํ
์์ฒญ์ ๋ณด๋ด๊ธฐ ์ํ ์ ์คํ๊ณ ์ ๋ฌธ์ ์ธ ์ด๋ฉ์ผ ์ด์์ ์์ฑํฉ๋๋ค.
๋น์ ์ ๋น์ฆ๋์ค ์ ๋ฌธ๊ฐ์
๋๋ค. [์๋๋ฐฉ ํ์ฌ ์ด๋ฆ]์ [์๋๋ฐฉ ์ง์ฑ
]์๊ฒ ๋ณด๋ผ ์ด๋ฉ์ผ์ ์์ฑํด ์ฃผ์ธ์. ๋ชฉ์ ์ [์ ์ ๋ด์ฉ]์ ๋ํด ์๊ฐํ๊ณ ๋ฏธํ
์ ์์ฒญํ๋ ๊ฒ์
๋๋ค. ์ด์กฐ๋ ์ ์คํ๊ณ ์ ๋ฌธ์ ์ด์ด์ผ ํ๋ฉฐ, ์์ ์๊ฐ ๋ฏธํ
์ผ์ ์ ์ฝ๊ฒ ํ์ธํ ์ ์๋๋ก ๊ตฌ์ฒด์ ์ธ ์ ์์ ํฌํจํ์ธ์.
#์๊ธฐ์๊ฐ์
#์ทจ์
#์ปค๋ฆฌ์ด
ํน์ ์ง๋ฌด ์ง์์ ์ํด ๊ฒฝ๋ ฅ๊ณผ ๊ฐ์ ์ ๊ฐ์กฐํ ์๊ธฐ์๊ฐ์ ์ด์์ ์์ฑํฉ๋๋ค.
์ ๋ [์ง์ํ๋ ค๋ ์ง๋ฌด] ๋ถ์ผ์ ๊ด์ฌ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ ฅ์์ ๋ค์ด๊ฐ ์๊ธฐ์๊ฐ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ํนํ ์ ์ ๊ฒฝ๋ ฅ ์ค [๊ด๋ จ ๊ฒฝ๋ ฅ 1]๊ณผ [๊ด๋ จ ๊ฒฝ๋ ฅ 2]๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์ธ๊ธํ์ฌ, ์ ๊ฐ ๊ท์ฌ์ ์ด๋ค ๊ธฐ์ฌ๋ฅผ ํ ์ ์๋์ง ์ค์ ์ ์ผ๋ก ์ค๋ํด ์ฃผ์ธ์. ๋ถ๋์ ๊ณต๋ฐฑ ํฌํจ 500์ ์ ๋๋ก ๋ถํ๋๋ฆฝ๋๋ค.
#system-design
#architecture
#microservices
#data-consistency
๋๊ท๋ชจ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ๋ง์ดํฌ๋ก์๋น์ค ํ๊ฒฝ์์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๋ณต์กํ ์๋๋ฆฌ์ค์ ๋ํ ํด๊ฒฐ์ฑ
์ ์ค๊ณํ๋๋ก ์์ฒญํฉ๋๋ค.
๋น์ ์ ์์ฒ๋ง DAU๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธ๋ก๋ฒ ์ ์์๊ฑฐ๋ ํ๋ซํผ์ ์์ ์ํคํ
ํธ์
๋๋ค. ํ์ฌ ๋ชจ๋๋ฆฌ์ ๊ตฌ์กฐ์์ ๋ง์ดํฌ๋ก์๋น์ค๋ก์ ์ ํ์ ์งํ ์ค์ด๋ฉฐ, ์ฃผ๋ฌธ ์๋น์ค(Order Service), ์ฌ๊ณ ์๋น์ค(Inventory Service), ๊ฒฐ์ ์๋น์ค(Payment Service)๊ฐ ๋ถ๋ฆฌ๋์์ต๋๋ค. ๊ฐ ์๋น์ค๋ ๋
๋ฆฝ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ต์ข
์ผ๊ด์ฑ(Eventual Consistency) ๋ชจ๋ธ์ ๋ฐ๋ฅด๊ณ ์ ํฉ๋๋ค.
๋ฌธ์ ์ํฉ: ์ฌ์ฉ์๊ฐ ์ํ์ ์ฃผ๋ฌธํ ๋, ์ฌ๊ณ ๊ฐ์, ๊ฒฐ์ ์น์ธ, ์ฃผ๋ฌธ ์์ฑ์ด ์์์ ์ผ๋ก(Atomic) ์ผ์ด๋์ง ์์ '๊ฒฐ์ ๋ ์ฑ๊ณตํ์ผ๋ ์ฌ๊ณ ๋ถ์กฑ์ผ๋ก ์ฃผ๋ฌธ ์คํจ'ํ๊ฑฐ๋ '์ฌ๊ณ ๋ ์ฐจ๊ฐ๋์์ผ๋ ๊ฒฐ์ ์คํจ'ํ๋ ๋ฑ์ ๋ฐ์ดํฐ ๋ถ์ผ์น ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์์ต๋๋ค. ํนํ, ์ฌ๊ณ ์๋น์ค์ DB ์ฅ์ ์ ์ ์ฒด ํธ๋์ญ์
์ด ๋กค๋ฐฑ๋์ง ์๋ ์ํฉ์ ๋ฐฉ์งํด์ผ ํฉ๋๋ค.
๋ค์ ์ฌํญ์ ๊ณ ๋ คํ์ฌ ๊ธฐ์ ์ ์ธ ํด๊ฒฐ ์ ๋ต์ ์ ์ํ์ญ์์ค.
1. Saga ํจํด(Choreography vs Orchestration) ์ค ์ด๋ ๊ฒ์ด ์ ํฉํ์ง ๋น๊ตํ๊ณ ์ ํํ ์ด์ ๋ฅผ ๋
ผํ์ญ์์ค.
2. ๋ถ์ฐ ํธ๋์ญ์
์ค์ฌ๋ฅผ ์ํ ๋ฉ์์ง ๋ธ๋ก์ปค(Kafka ๋๋ RabbitMQ)์ ํ์ฉ ๋ฐฉ์๊ณผ ๋ฉ์์ง ์์ ๋ณด์ฅ ์ ๋ต์ ์ค๋ช
ํ์ญ์์ค.
3. ์ฌ๊ณ ์๋น์ค ์ฅ์ ๋ฐ์ ์ ๋ณด์ ํธ๋์ญ์
(Compensating Transaction)์ ํตํด ์์คํ
์ ์์ ์ ์ผ๋ก ๋ณต๊ตฌํ๋ ์ ์ฐจ๋ฅผ ๊ธฐ์ ํ์ญ์์ค.
4. Outbox ํจํด์ ์ ์ฉํ์ฌ ๋ฉ์์ง ์ ์ก ์คํจ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ ๋ก์ง์ ์ค๋ช
ํ์ญ์์ค.
#์ด๋ฉ์ผ
#๋น์ฆ๋์ค
#์ปค๋ฎค๋์ผ์ด์
#๊ฑฐ์
์๋๋ฐฉ์ ์์ฒญ์ ๊ฑฐ์ ํ๋ฉด์๋ ๊ด๊ณ๋ฅผ ์ ์งํ ์ ์๋ ์ ์คํ ๋น์ฆ๋์ค ์ด๋ฉ์ผ ์ด์์ ์์ฑํฉ๋๋ค.
๋ค์ ์ํฉ์ ๋ง์ถฐ ์ ์คํ๊ณ ์ ๋ฌธ์ ์ธ ๊ฑฐ์ ์ด๋ฉ์ผ์ ์์ฑํด ์ฃผ์ธ์. ๊ฑฐ์ ์ ์ด์ ๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์ค๋ช
ํ๊ณ , ๊ฐ๋ฅํ ๋์์ ์ ์ํ์ฌ ์๋๋ฐฉ์ ๊ธฐ๋ถ์ ์ํ์ง ์๊ฒ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
#์์ฝ
#ํ
์คํธ ๋ถ์
#์์ฐ์ฑ
#๋
ธํธ ํ๊ธฐ
์ ๊ณต๋ ๊ธด ํ
์คํธ๋ฅผ ์ฝ๊ณ ๊ฐ์ฅ ์ค์ํ ํต์ฌ ๋ด์ฉ 3๊ฐ์ง๋ก ์์ฝํ์ฌ ์ถ๋ ฅํฉ๋๋ค.
์ ๊ณตํด ๋๋ฆฐ ๊ธด ํ
์คํธ๋ฅผ ์ฝ๊ณ , ๊ฐ์ฅ ์ค์ํ ํต์ฌ ๋ด์ฉ 3๊ฐ์ง๋ฅผ ๋ถ๋ ํฌ์ธํธ ํ์์ผ๋ก ๊ฐ๊ฒฐํ๊ฒ ์์ฝํด ์ฃผ์ธ์.
#๋ฒ์ญ
#์์ด
#๋น์ฆ๋์ค
#๋ณด๊ณ ์
ํ๊ตญ์ด ๋ฌธ์ฅ์ ๊ฒฉ์ ์๋ ๋น์ฆ๋์ค ์์ด๋ก ๋ฒ์ญํ์ฌ ๋ณด๊ณ ์์ ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค.
๋ค์ ํ๊ตญ์ด ๋ฌธ์ฅ์ ๊ณต์์ ์ธ ๋น์ฆ๋์ค ๋ณด๊ณ ์์ ์ ํฉํ ๊ฒฉ์ ์๋ ์์ด(Formal English)๋ก ๋ฒ์ญํด ์ฃผ์ธ์.
#์ผ๊ธฐ
#์์๋ ฅ
#์์
์ค๋๋ ์ํ์ด ๋์ด ์ฃผ์ธ์ ์ผ์์ ๊ด์ฐฐํ๊ณ ๊ธฐ๋กํด๋ณด์ธ์.
๋น์ ์ ๋ฐฉ ํ๊ตฌ์์ ๋์ธ '์ค๋๋ ๊ฑฐ์ธ'์
๋๋ค. ๋น์ ์ ์ฃผ์ธ์ ๋งค์ผ ๊ฑฐ์ธ ์์์ ๋ค๋ฅธ ํ์ ์ ์ง์ต๋๋ค. ์ฃผ์ธ์ ๊ฐ์ ๋ณํ๋ฅผ ๊ด์ฐฐํ๊ณ , ๊ฑฐ์ธ์ด ๋๊ผ์ ๊ฐ์ ์ ๋ด์ 3์ผ๊ฐ์ ์ผ๊ธฐ๋ฅผ ์์ฑํด์ฃผ์ธ์.
#์ธ์ด
#SF
#์ฐฝ์
์๋ฆฌ ์์ด ์์ ๋ณํ๋ก๋ง ์์ฌ๋ฅผ ์ ๋ฌํ๋ ์ธ๊ณ ์ธ์ด ์ฒด๊ณ๋ฅผ ์์ํด๋ณด์ธ์.
์ด ์ธ๊ณ์ ์ฌ๋๋ค์ ์๋ฆฌ๋ฅผ ๋ด์ด ๋งํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ํผ๋ถ์์ ๋ฐ๊พธ์ด ๊ฐ์ ๊ณผ ์ ๋ณด๋ฅผ ์ ๋ฌํฉ๋๋ค. '์ฌ๋', '์ํ', '์ง๋ฌธ', '๊ฑฐ์ '์ ํํํ๋ ๊ฐ๊ธฐ ๋ค๋ฅธ ์์๊ณผ ํจํด์ ์ฐฝ์์ ์ผ๋ก ๋ฌ์ฌํ๊ณ , ๋ ์ฌ๋์ด ๋ง๋ ๋๋๋ ๋ํ ์ฅ๋ฉด์ ์์ ๋ณํ๋ก ํํํด๋ณด์ธ์.
#๋ฌ์ฌ
#๊ฐ๊ฐ
#ํ๊ณ
์๊ฐ์ ์ ๋ณด๋ฅผ ๋ฐฐ์ ํ๊ณ ๋ค๋ฅธ ๊ฐ๊ฐ๋ง์ผ๋ก ์ด๋ฆฐ ์์ ์ ์ฅ๋ฉด์ ๋ฌ์ฌํด๋ณด์ธ์.
๋น๊ฐ ์ค๋ ๋ ์ ์ด๋ฆฐ ์์ ๊ธฐ์ต์ ๋ ์ฌ๋ ค๋ณด์ธ์. ํ์ง๋ง '๋ณด์ด๋ ๊ฒ'์ ๊ธฐ๋กํด์๋ ์ ๋ฉ๋๋ค. ๋น์๋ฆฌ, ์ ์ ๋์, ์ฐจ๊ฐ์ด ๋ฐ๋์ ๊ฐ์ด, ์ท์ด ๋ฌ๋ผ๋ถ๋ ๋๋ ๋ฑ ์ฒญ๊ฐ๊ณผ ์ด๊ฐ, ํ๊ฐ์ ์ง์คํ์ฌ ๊ทธ ์ฅ๋ฉด์ ์์ํ๊ฒ ๊ธ๋ก ์ฌ๊ตฌ์ฑํด ์ฃผ์ธ์.
#์ด๋ฉ์ผ
#๋น์ฆ๋์ค
#์์ฌ์ํต
์ผ์ ์ถฉ๋๋ก ์ธํด ํ์ ์์ฒญ์ ๊ฑฐ์ ํ๊ณ ๋์์ ์ ์ํ๋ ์ด๋ฉ์ผ์ ์์ฑํฉ๋๋ค.
์ผ์ ์ถฉ๋๋ก ์ธํด ํด๋ผ์ด์ธํธ์ ํ์ ์์ฒญ์ ๊ฑฐ์ ํด์ผ ํฉ๋๋ค. ์๋๋ฐฉ์ ๊ธฐ๋ถ์ ์ํ๊ฒ ํ์ง ์์ผ๋ฉด์๋ ์ ๋ฌธ์ ์ธ ํ๋๋ฅผ ์ ์งํ๊ณ , ๋ค์ ์ฃผ ๊ฐ๋ฅํ ๋ค๋ฅธ ์ผ์ ์ ์ ์ํ๋ ์ด๋ฉ์ผ ์ด์์ ์์ฑํด ์ฃผ์ธ์.
#์์ฝ
#ํ์
#์
๋ฌด ํจ์จ
์ฅํฉํ ํ์ ๋
น์ทจ๋ก์ ๋ฐํ์ผ๋ก ํต์ฌ ๋ด์ฉ๊ณผ ์คํ ํญ๋ชฉ์ ์ ๋ฆฌํฉ๋๋ค.
๋ค์์ ํ์ ๋
น์ทจ๋ก์ ๋ฐํ์ผ๋ก ์ฐธ์์, ์ฃผ์ ๋
ผ์ ์ฌํญ, ์ต์ข
๊ฒฐ์ ์ฌํญ, ๊ทธ๋ฆฌ๊ณ ๋ด๋น์๊ฐ ๋ช
์๋ ์คํ ํญ๋ชฉ(Action Items)์ ํฌํจํ ๊ตฌ์กฐ์ ์ธ ํ์ ์์ฝ๋ฌธ์ผ๋ก ์์ฑํด ์ฃผ์ธ์.