ํด๋น ์ํฐํด ์ ๋ฆฌ๋ ๊ท๋ก ๋ค์ผ๋ฉฐ ์ ๋ฆฌํ๋ ํฌ์คํ ์ ๋๋ค.
๊ตฌ๊ธ์ NotebookLM์ผ๋ก ์์ฝํ ๋ด์ฉ์
๋ผ๋์ค์ฒ๋ผ ์ฌ์ํด ๋ค์ผ๋ฉฐ ๊ณต๋ถํ๊ณ ์์ต๋๋ค.๐ง
ํด๋ฆฐ ์ํคํ ์ฒ์ ์์น๊ณผ ์ ์ฉ ์ฌ๋ก
๋ชจ๋ ๊ฒ์ ์์์ โ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌโ์ด๋ค.
์ํํธ์จ์ด๋ฅผ ์ฌ๋ฌ ๋ ์ด์ด๋ก ๋๋๊ณ ์๋ก ๋ฏธ์น๋ ์ํฅ์ ์ต์ํ ํ์.
๋ก๋ฒํธ ๋งํด์ด ์ ์ํ ๋ชฉํ๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ํน์ ์น ํ๋ ์์ํฌ์ ์ข ์๋์ง ๋ง์.
- ๋น์ฆ๋์ค ๋ก์ง์ ์ฝ๊ฒ ํ ์คํธํ ์ ์๊ฒ ํ์.
- UI๊ฐ ๋ฐ๋์ด๋ ํต์ฌ ๋ก์ง์ ํ๋ค๋ฆฌ๋ฉด ์๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐ๊พธ๋ ๊ฑธ ์ ํ์ด ๋์ง ์๊ฒ ํ์.

์ด ๋์ฌ์์ผ ํด๋ฆฐ ์ํคํ ์ฒ์ ์์ง์ด๋ผ ํ๋ค.
์์ชฝ ์๋ถํฐ ๋ด๋ณด๋ฉด,
Entity: ์์คํ ์ ์ฌ์ฅ๋ถ. ๊ธฐ์ ์ ์ฒด์ ์ ์ฉ๋๋ ๊ฐ์ฅ ํต์ฌ์ ์ธ ๋น์ฆ๋์ค ๊ท์น์ด๋ค.(ex. ์ํ - ๊ณ์ข, ์ด์ฒด๊ท์น)Use Case: ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น์ฆ๋์ค ๊ท์น. ์ฆ, ์ฌ์ฉ์๊ฐ ์ด ์ฑ์ผ๋ก ๋ฌด์์ ํ ์ ์๋๊ฐ๋ฅผ ๋งํ๋ค.(ex. ์ก๊ธํ๊ธฐ, ๋์ถ ์ ์ฒญํ๊ธฐ)Interface Adapter: ์ค๊ฐ์์ ์ํํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ํ๋ ์ค๊ฐ๋ค๋ฆฌ์ ์ญํ .Framework & Driver: ์น ํ๋ ์์ํฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ด ๊ตฌ์ฒด์ ์ธ ๊ธฐ์ ๋ฐ ์ธ๋ถ์ฌํญ
์ด ๊ตฌ์กฐ๊ฐ ์ ๋๋ก ์๋ํ๊ฒ ๋ง๋๋ ์ ๋์ ์ธ ๊ท์น์ด ์๋ค.
์ด๋ ์์กด์ฑ ๊ท์น์ด๋ค.
์์กด์ฑ ๊ท์น
๋ชจ๋ ์์ค ์ฝ๋ ์์กด์ฑ์ ๋ฐ๋์ ๋ฐ๊นฅ์ชฝ์์ ์์ชฝ์ผ๋ก ํฅํด์ผ ํ๋ค. ์ฆ, ์์ชฝ ์์ ๋ฐ๊นฅ์ชฝ ์์ ๋ํด ์๋ฌด๊ฒ๋ ์ ์ ์๋ค.
์ ์ค์ผ์ด์ค๋ ์น ๊ธฐ์ ์ ๋ชฐ๋ผ์ผ ํ๊ณ , ์ํฐํฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ์ ์ ๋ชฐ๋ผ์ผ ํ๋ค.
๊ทธ๋ ๋ด ํต์ฌ๋ก์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ์ดํฐ๋ก ์ ์ฅํด์ผ ํ ๋ ์ด๋ป๊ฒ ํด์ผ ํ ๊น?๐ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ์ ์๋๋ฐ ๋ชจ๋ฅด๋ ์ํ๋ก ์ํต์ด ๊ฐ๋ฅํ๊ฐ?
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์กด์ฑ ์ญ์ ์์น์ด๋ผ๋ ๊ธฐ์ ์ ํ์ฉํ๋ค.
์นด์นด์คํ์ด ์ฌ์ฅ๋ํ๋ฌ์ค ์ฑ ์ฌ๋ก์์๋ ์ํฉ์ ๋ง๊ฒ ์ ๊ท์น์ ๋ฐ๋ฅด๊ธฐ ๋ณด๋ค ์ ์ฐํ๊ฒ ๋ณํํด์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
์ฝ๊ธฐ ์ฌ์ด ์ฝ๋์ ๋์ ์์ฐ์ฑ์ ์ํด ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณค๋ค.
- ํ๋ฉด์ ๋ด๋นํ๋ presentation ๋ ์ด์ด๋ ๋น์ฆ๋์ค ๋ก์ง์ด ๋ด๊ธด domain ๋ ์ด์ด(์ ์ค์ผ์ด์ค)๋ฅผ ํตํด์๋ง ๋ฐ์ดํฐ์ ์ ๊ทผํด์ผ ํ๋ค.
- ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง์ด ์์ ๋ presentation ๋ ์ด์ด๊ฐ domaion ๋ ์ด์ด๋ฅผ ๊ฑด๋ ๋ฐ๊ณ , ๋ฐ๋ก data ๋ ์ด์ด์ ์ ๊ทผํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ํ๋ค.(๋ฐ๋ฉด, ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐํฉํ๊ฑฐ๋ ๋ณต์กํ ๊ณ์ฐ์ด ํ์ํ ๋๋ ์์น๋๋ก domain ๋ ์ด์ด์ ์ ์ค์ผ์ด์ค๋ฅผ ๊ฑฐ์น๋๋ก ํ๋ค.)
ํ์ง๋ง ์ด ๊ธฐ๋ฅ์ด ๋ณต์กํ๋ค ์๋ณต์กํ๋ค์ ๊ธฐ์ค์ด ๋ค๋ฅด๊ธฐ์ ์์ ์ฝ๋๊ฐ ๋ค์ฃฝ๋ฐ์ฃฝ์ด ๋ ๊ฒ์ด๋ค. ์ด๊ฒ์ ๋ํ ๊ฐ์ด๋๋ผ์ธ์ ์๋ ๊ฑธ๊น?
์นด์นด์คํ์ด๋ ๋ ๊ฐ ์ด์์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํ ๋, ์ ์ค์ผ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค. ๋ผ๋ ๊ท์น์ ์ ํ๋ค.
์์กด์ฑ ์ญ์ ์์น
์์ชฝ ๊ณ์ธต์ด ์์ ์ด ํ์ํ ๊ฒ(์ธํฐํ์ด์ค)์ ์ ํด๋๋ฉด, ๋ฐ๊นฅ์ชฝ ๊ณ์ธต์ด ๊ทธ ์ฝ์์ ์งํค๋ ์ค์ ๋ด์ฉ๋ฌผ์ ๋ง๋ค์ด์ ์ ๊ณตํ๋ ๋ฐฉ์์ด๋ค.
์ฐ์ํ ํ์ ๋ค์ ์ด ์์น์ ์ ๋ฌด ๋๋ฉ์ธ ์ฌ์ด์ ์ ์ฉํ๋ค๊ณ ํ๋ค.
๋ฐฐ๋ฌ ๋๋ฉ์ธ๊ณผ ๋ฐฐ๋ฌ๋ฃ ๋๋ฉ์ธ์ด ์๋ค๊ณ ํด๋ณด์. ๋ฐฐ๋ฌ๋ฃ๋ฅผ ๊ณ์ฐํ๋ ค๋ฉด ๋ฐฐ๋ฌ ๊ฑฐ๋ฆฌ ๋ฐ ์๊ฐ์ ๋ฐฐ๋ฌ ์ ๋ณด๊ฐ ํ์ํ๋ค. ํ์ง๋ง, ๋ฐฐ๋ฌ ๋๋ฉ์ธ์ด ๋ฐฐ๋ฌ๋ฃ์ ๊ตฌ์ฒด์ ์ธ ๊ณ์ฐ ๋ฐฉ์๊น์ง ์ ํ์๊ฐ ์๋ค. ๊ทธ๋์ ์ค๊ฐ์ ๋ฐฐ๋ฌ๋ฃ๋ฅผ ๊ณ์ฐํด์ฃผ๋ ์ธํฐํ์ด์ค๋ฅผ ๋๋ค. ๋ฐฐ๋ฌ ๋๋ฉ์ธ์ ์ด ์ธํฐํ์ด์ค์๋ง ์์กดํ์ฌ ๋ฐฐ๋ฌ๋ฃ ์ ์ฑ ์ด ๋ฐ๋์ด๋ ์ํฅ์ ๋ฐ์ง ์๋๋ค.
๋ฐฐ๋ฏผ ๋ง์ผ ์ฌ๋ก์์์ ์ฌ๋ก๋ ๋ณด์. ๊ธฐ์กด์ ์์ ๋ฐฐ๋ฌ ์๋น์ค์ ์๋ฒ ์ธํ๋ผ๋ ๊ฑฐ์ ๋์ผํ์ง๋ง ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ํ๋ฉด์ด ์๋ก ํ์ํ ์ํฉ์ด์๋ค.(์ฆ, ๊ธฐ์กด ์์คํ ์ ํ์ฉํ ์ ๊ท ์๋น์ค ๋ฐ์นญ ์ํฉ์ด์๋ค.)
ํด๋ฆฐ ์ํคํ ์ฒ๋ฅผ ํ์ฉํ์ฌ, ํต์ฌ ๋ก์ง์ด ๋ด๊ธด domain ๋ ์ด์ด์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ๋ด๋นํ๋ data ๋ ์ด์ด๋ ๊ฑฐ์ ์ฌ์ฌ์ฉํ ์ ์์๋ค. ๋๋ถ์ presentation ๋ ์ด์ด๋ง ์๋ก ๋ง๋ค์ด ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์์๋ค๊ณ ํ๋ค.
ํด๋ฆฐ ์ํคํ ์ฒ์ ๋จ์
- ํด๋์ค ํ์ผ ์๊ฐ ๋ง์์ง๋ค๋ ์ .. ์ฆ, ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ํ์ ํ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ ํ์ต ๊ณก์ ์ด ์กด์ฌํ๋ค.
- DTO๋ฅผ ๋ง๋ค ๋, ์ต๋ํ ๋๋๋ ค๊ณ ํ์. ์ํ ๋ฑ๋ก๊ณผ ์ํ ์์ ๊ธฐ๋ฅ๊ณผ ๊ด๋ จํ์ฌ ๋ด๋ณด์. ์ด ๋๋ ํ๋์ DTO๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ํ์ง๋ง ์์ ๋ถ๋ถ์์ ์ด๋ฉ์ผ ๋ถ๋ถ์ ์์ ๋ชปํ๊ฒ ํด๋ฌ๋ผ๋ ์๊ตฌ์ฌํญ์ด ๋ค์ด์จ๋ค๋ฉด, ๋ฑ๋ก ๋ถ๋ถ๊น์ง ์ํฅ์ด ๊ฐ๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์ํฉ์ ๋๋นํ์ฌ ๋ฏธ๋ฆฌ ๊ตฌ๋ถํด๋๋ ๊ฒ ์ข๋ค.
๋๋์ : โ๊ท์น์ ๋ฌด์กฐ๊ฑด ์งํค๋ ๊ฒโ๋ณด๋ค โ์ฌ๋๋ค์ด ์ค๋ ํธํ๊ฒ ๊ฐ๋ฐํ ์ ์๋ ๊ตฌ์กฐ๊ฐ ๋ฌด์์ธ์ง ๊ณ์ ๊ณ ๋ฏผํ๊ณ ๋ง๋๋ ๊ฒโ์ด ์ค์ํ๋ค๋ ๊ฒ์ ๋ฐฐ์ธ ์ ์์๋ค. ์ํฉ๋ง๋ค ์์น์ ์ ์ฐํ๊ฒ ์กฐ์ ํ๋ ๊ธฐ์ ์ฌ๋ก๋ค์ด ๋ ํ์ค์ ์ผ๋ก ์๋ฟ์๊ณ , ์ข์ ์ํคํ ์ฒ๋ ๋ฏธ๋์ ํ์ ๋ ํ๋ค๊ฒ ํด์ฃผ๋ ๋ฐฐ๋ ค๋ผ๋ ๊ฒ์ ์ ์ ์์๋ค!
๐ https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html?utm_source=chatgpt.com ๐ https://tech.kakaopay.com/post/ifkakao2024-architecture-migration-for-ceo-app/
๐ https://techblog.woowahan.com/2647/ ๐ https://techblog.woowahan.com/2602/
์ค๋ฉ(Shading)๊ณผ ํํฐ์ ๋(Partitioning)
์ฌ์ง์ด ๋ง์ด ์ฌ๋ผ์ค๋ SNS๋ ์ด์ปค๋จธ์ค ์ฌ์ดํธ ๊ฐ์ด ๋ฐ์ดํฐ๊ฐ ์์์ง๋ ๊ณณ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๊ฐ๋นํ ์ ์์๊น?
์ค๋ฉ๊ณผ ํํฐ์ ๋์ ์ ์์ ์ด๋์ ํ์ฉํ๋์ง๊น์ง ์ ๋ฆฌํด๋ณด์.
๋ชจ๋ ์ค๋ฉ์ ํํฐ์ ๋์ด์ง๋ง, ๋ชจ๋ ํํฐ์ ๋์ ์ค๋ฉ์ด ์๋๋ค.
ํํฐ์ ๋(Partitioning)
๊ฑฐ๋ํ ๋์๊ด์ด๋ผ๊ณ ์๊ฐํ์. ๋จ์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ ์์์ ์ฑ ๋ค์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์ญ์ฌ, ๊ณผํ ๋ฑ ์ฝ๋๋ฅผ ๋๋๋ ๊ฒ๊ณผ ๊ฐ๋ค.
ํํฐ์ ๋์ ์ฅ์
- ์ฟผ๋ฆฌ๊ฐ ๋นจ๋ผ์ง๋ค. partition pruning(ํํฐ์ ๊ฐ์ง์น๊ธฐ)์ ํตํด ๋ชจ๋ ํํฐ์ ์ ๋ณด๋ ๊ฒ ์๋, ํ์ํ ํํฐ์ ๋ง ๋ฝ์์ ๋ณธ๋ค.
- ๋ฐ์ดํฐ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ๊ฐ ํธํ๋ค.
๋ฐ์ดํฐ๋ฅผ ๋๋๋ ๊ธฐ์ค์ ๋ฐ๋ฅธ 3๊ฐ์ง ํํฐ์ ๋ ๋ฐฉ์์ด ์๋ค.
- ๋ฒ์ ํํฐ์ ๋: ๋ ์ง๋ ์ซ์, ์ฐ์์ ์ธ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋๋๋ค.(ex. 2025๋ 1๋ถ๊ธฐ, 2๋ถ๊ธฐ)
- ๋ชฉ๋ก ํํฐ์ ๋: ํน์ ๊ฐ๋ค์ ๋ชฉ๋ก์ ๊ธฐ์ค์ผ๋ก ๋๋๋ค.(ex. ๊ตญ๊ฐ๋ณ)
- ํด์ฌ ํํฐ์ ๋: ์ฌ์ฉ์ id ๊ฐ์ ํค๋ฅผ ํด์ฌ ํจ์์ ๋ฃ์ด์ ๋์ค๋ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ์ํจ๋ค.(ex.๊ตญ๊ฐ๋ณ,๊ธฐ๊ฐ๋ณ ๋ฐ์ดํฐ๊ฐ ๋ชฐ๋ฆฌ๋ ํ์ ๋ฐฉ์ง) ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ํํฐ์ ์ ๊ท ๋ฑํ๊ฒ ๋ถ๋ฐฐ๋๋ค๋ ์ฅ์ ์ด ์๋ค. ๋ฐ๋ฉด, ๋ฒ์ ๊ฒ์์ด ๊ฑฐ์ ์๋๋ค๋ ๋จ์ ์ด ์๋ค.
์ค๋ฉ(Shading)
์ง์ญ ๊ณณ๊ณณ์ ์ฌ๋ฌ ๋์๊ด์ ๋ง๋๋ ๊ฒ. ๋ฐ์ดํฐ๋ฅผ ์ค๋๋ผ๋ ๋จ์๋ก ์ชผ๊ฐ์ ์ฌ๋ฌ ๋ค๋ฅธ ์๋ฒ์ ๋ถ์ฐ ์ ์ฅํ๋ ๋ฐฉ์์ด๋ค.
์๋ฒ ํ ๋์ ์ฑ๋ฅ์ ๋์ด๋ ์์ง์ ํ์ฅ์ด ์๋ ์ํ์ ํ์ฅ ๋ฐฉ์์ด๋ค.
์ค๋ฉ์ ์ฅ์ ์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋น์ฉ ์ ๊ฐ ๋ฐ ์ฑ๋ฅ ํฅ์
- ๊ฒฐํจ ํ์ฉ(์๋ฒ ํ ๋๊ฐ ๊ณ ์ฅ๋๋ ์๋น์ค๊ฐ ๋ฉ์ถ์ง ์๋๋ค.)
๋ง์ฝ ์ฌ๋ฌ ์ค๋์ ๊ฑธ์น ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ์ฟผ๋ฆฌ๋ฅผ ์คํํ ๋, ํ ์ค๋๊ฐ ๋ค์ด๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
๋ณดํต ์์คํ ์ ํ๋๋ผ๋ ์๋ต์ด ์์ผ๋ฉด ์ค๋ฅ๋ฅผ ๋ฐ์ํ๋ค. ์ค๋ฉ์ ์ ํ๋ฆฌ์ผ์ด์ ๋จ์์ ์ด๋ฐ ์ํฉ์์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ์ ๊ตํ๊ฒ ์ค๊ณํด์ผ ํ๋ค.
์ด์ฐฝ๊ธฐ ์ธ์คํ๊ทธ๋จ์์๋ ๋ฌผ๋ฆฌ์ ์๋ฒ๊ฐ ์ผ๋ง ์์์ง๋ง ๋ ผ๋ฆฌ์ ์ค๋๋ฅผ ์์ฒ ๊ฐ ๋ง๋ค์ด๋จ๋ค๊ณ ํ๋ค. ์๋น์ค๊ฐ ์ปค์ง๋ฉฐ ์๋ฒ๋ฅผ ์ถ๊ฐํ ๋๋ง๋ค ๋ ผ๋ฆฌ์ ์ค๋ ๋ฉ์ด๋ฆฌ๋ค์ ์ ์๋ฒ๋ก ์ฎ๊ธฐ๋ฉฐ ํ์ฅํด๋๊ฐ๋ค๊ณ ํ๋ค.
๋ชจ๋ ์ค๋ฉ์ ํํฐ์ ๋์ด์ง๋ง, ๋ชจ๋ ํํฐ์ ๋์ ์ค๋ฉ์ด ์๋๋ค.
์ด ๋ฌธ์ฅ์ ๋ํด ์์๋ณด์.
ํํฐ์ ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ ผ๋ฆฌ์ ๊ทธ๋ฃน์ผ๋ก ๋๋๊ณ , ์ค๋ฉ์ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ์ฌ๋ฌ ๋ค๋ฅธ ์๋ฒ ์ธ์คํด์ค์ ๋ถ์ฐ์ํจ๋ค.
์ฆ, ๋ฐ์ดํฐ๋ฅผ ๋๋๋ ๊ฒ์ ํํฐ์ ๋์ ๋ฒ์ฃผ์ ๋ค์ด๊ฐ๊ณ ๋๋๋ ์กฐ๊ฐ๋ค์ ์ฌ๋ฌ ์๋ฒ๋ก ํฉ์ด๋๋ ๋ฌผ๋ฆฌ์ ๋ถ์ฐ์ด ๋๋ฐ๋ ๋ ์ค๋ฉ์ด๋ผ ๋ถ๋ฅธ๋ค.
์ํ ํํฐ์ ์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค๋ก ์ฎ๊ธฐ๋ ์๊ฐ => ์ค๋ฉ์ด ๋๋ค!
์ธ์ ํํฐ์ ๋์ ์ฐ๊ณ ์ธ์ ์ค๋ฉ์ผ๋ก ๋์ด๊ฐ์ผ ํ ๊น?
๋ฐ์ดํฐ๋ ๊ณ์ ๋์ด๋๊ณ ๋จ์ผ ์๋ฒ๋ก ์ถฉ๋ถํ ์ด์ ๊ฐ๋ฅํ ๋
=> ํํฐ์
๋
๋จ์ผ ์๋ฒ์ CPU๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ๊ณ์ ๋๋ฌํ๊ฑฐ๋ ๋์คํฌ ๊ณต๊ฐ ์์ฒด๊ฐ ๋ถ์กฑํ๊ฑฐ๋ ์ฌ์ฉ์๊ฐ ์ ์ธ๊ณ์ ํผ์ ธ์์ด ์ง๋ฆฌ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐํด์ผ ํ ๋
=> ์ค๋ฉ
PostgreSQL๊ณผ ๊ฐ์ ๊ด๊ณํDB๋ ๋ฒ์ 10๋ถํฐ ์ ์ธ์ ํํฐ์ ๋ ๊ธฐ๋ฅ์ผ๋ก ๊ฐ๋ ฅํ ํํฐ์ ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ค๋ฉ์ ๋ด์ฅ ๊ธฐ๋ฅ ์๋๋ค! ํ์ฅ ๊ธฐ๋ฅ์ด๋ ๋ก์ง์ ์ง์ ์ง์ผ ํ๋ค.
NoSQL์์๋ ์ค๋ฉ์ด ์ํคํ ์ฒ์ ํต์ฌ์ด์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ด๋ค.
๋๋์ : ํํฐ์ ๋๊ณผ ์ค๋ฉ์ ๊ฐ๋ ๋ง ๋ณด๋ฉด ๋น์ทํด ๋ณด์ด๋๋ฐ, ์ค์ ๋ก๋ ์ด์ ๋์ด๋๋ ์ฅ์ ๋์ ๋ฐฉ์์ด ์์ ํ ๋ฌ๋ผ์ ๊ฝค ์ค์ ์ ์ธ ๊ณ ๋ฏผ์ด ๋๊ฒ ๋ค๋ ๊ฑธ ์๊ฒ ๋๋ค. ํนํ ์ธ์คํ๊ทธ๋จ์ฒ๋ผ ์ด๊ธฐ์ ๋ ผ๋ฆฌ ์ค๋๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋๋ ์ ๋ต์ ๋ณด๋ฉด์, ๋๊ท๋ชจ ์๋น์ค๋ฅผ ์ค๋นํ๋ ๋ฐฉ์์ด ์๊ฐ๋ณด๋ค ์น๋ฐํ๋ค๋ ์ ์ด ์ธ์์ ์ด์๋ค.
๐ https://www.datacamp.com/blog/sharding-vs-partitioning
๐ https://stackoverflow.com/questions/20771435/database-sharding-vs-partitioning
๋๊ท๋ชจ ํ๋ก ํธ์๋ ์ํคํ ์ฒ
์๋น์ค๊ฐ ์ปค์ง์๋ก ๊ธฐ๋ฅ ํ๋ ์ถ๊ฐํ๋๋ฐ ๋ฐฐํฌ๋ ๋๋ ค์ง๊ณ ์์นซ ์๋น์ค๊ฐ ๋ง๋น๊ฐ ๋๋ ์ํฉ์ด ์ฌ ์๊ฐ ์๋ค.
์ด๋ป๊ฒ ์ด ์๋น์ค๋ฅผ ์์ ํ๊ฒ ๋๋ ์ ์์๊น?
MFA(Micro Frontend Architecture)
ํ๋์ UI๋ฅผ ์๊ณ ๋ ๋ฆฝ์ ์ธ ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋๋๋ ์ํคํ ์ฒ๋ค. ์ฌ๋ฆฌ๋ธ์์์๋ ์ด MFA๋ฅผ ์ํด ๋ชจ๋ ํ๋๋ ์ด์ ์ ์ด์ฉํ๋ค. ํ์ง๋ง ์ด ๊ธฐ์ ์ ์ด์ฉํ๋ฉด์ ์ด๋ค ์ด๋ ค์์ ๊ฒช์๋์ง, ๋ Nx๊ฐ ์ด๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ์๋์ง ์์๋ณด์.
๋ชจ๋ ํ๋๋ ์ด์ (Module Federation - MF)
MF๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ถ์ฐํ๋ฅผ ์ํ ์ํคํ ์ฒ ํจํด์ด๋ค. ๊ฐ๋จํ ๋งํด, ๋ฐํ์์ ์ฌ๋ฌ ์ฝ๋์ ๋ฆฌ์์ค๋ฅผ ๋ณํฉํ๋ ๊ธฐ์ ๋ก ์ดํดํ๋ฉด ๋๋ค.
๊ธฐ์กด ๋ฐฉ์: ๊ฑฐ๋ํ ๋ ๊ณ ์ฑ ์ ์ฒด๋ฅผ ๋ง๋ค์ด๊ฐ๋ ๋ฐฉ์ ๋ฐํ์ ํตํฉ ๋ฐฉ์: ๋ ๊ณ ์ฑ์ ๊ฐ ๊ตฌ์กฐ๋ฌผ์ ๋ฐ๋ก ๋ง๋ค์ด๋๊ณ ์ฌ์ฉ์๊ฐ ๋ณผ ๋ ์ค์๊ฐ์ผ๋ก ํฉ์ณ์ ๋ณด์ฌ์ฃผ๋ ์์
ํธ์คํธ(Host): ๋ค๋ฅธ ์ฑ๋ค์ ๋ก๋ํ์ฌ ํตํฉํ๋ ์ฃผ ์ ํ๋ฆฌ์ผ์ด์ . (ex. ๋ ๊ณ ์ฑ์ ์ ์ฒด ์ค๊ณ๋ ๋ฐ ๊ธฐ๋ฐ์ด ๋๋)๋ฆฌ๋ชจํธ(Remote): ์์ ์ ๋ชจ๋์ ๋ค๋ฅธ ์ฑ์์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๋ ๋ฆฝ์ ์ธ ๋ง์ดํฌ๋ก ํ๋ก ํธ์๋. (ex. ๊ฐ๊ฐ์ ํ์ด๋ ์ฑ๋ฌธ ๊ฐ์ ๋ถ๋ถ ๊ตฌ์กฐ๋ฌผ)๊ณต์ ์์กด์ฑ(Shared Dependecies): ํธ์คํธ ์ฑ๊ณผ ์ฌ๋ฌ ๋ฆฌ๋ชจํธ ์ฑ ๊ฐ์ ๊ณต์ ํ ์์กด์ฑ(๋ผ์ด๋ธ๋ฌ๋ฆฌ)์ด๋ค. MF๊ฐ ์ค๋ณต ์ฝ๋๋ฅผ ๋ฐฉ์งํ๊ณ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ฒ ํด์ค๋ค.
์ฌ๋ฆฌ๋ธ์์ด PoC ๊ณผ์ ์์ ๋ง์ฃผํ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋์ฐํ ์ค์ ์ ๋ณต์ก์ฑ
์๋ก์ด remote ๋ชจ๋์ ์ถ๊ฐํ ๋๋ง๋ค ์นํฉ์ด๋ผ๋ ๋น๋ ๋๊ตฌ์ ์ค์ ํ์ผ์ ๊ฐ๋ฐ์๊ฐ ์ง์ ์๋์ผ๋ก ์ค์ ํด์ผ ํ๋ค.
- ํ์ ์์ ์ฑ ๋ฌธ์
ํธ์คํธ ์ฑ์์๋ ๋ฆฌ๋ชจํธ์์ ์ด๋ค ํํ์ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ค๋์ง ์ ํ ์ ์ ์๋ค.(ex. ์ํ ์นด๋ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ ธ์ค๋ ค๊ณ ํ๋๋ฐ ์ด ์ปดํฌ๋ํธ๊ฐ ์ด๋ค ๊ฒ์ ํ์๋ก ํ๋์ง ์ ์ ์๋ ๋ฌธ์ ) ๊ทธ๋ ๊ธฐ์ ๊ฐ๋ฐ์๊ฐ ํ์ ์ ์ ํ์ผ์ ์์ผ๋ก ์ผ์ผ์ด ๋ง๋ค์ด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๊ธด๋ค.
- SSR ํ๊ฒฝ์ ๊ตฌํ ์ด๋ ค์
Nx
๋ชจ๋ ธ๋ ํฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋๊ตฌ. ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ์ฌ๋ฌ ์ฑ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ๋์ ์ ์ฅ์์์ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ๋๋ ๋ชจ๋ ธ๋ ํฌ ๋๊ตฌ์ด๋ค.
Nx๋ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ํตํฉํ๋ค.
๋น๋ ํ์ ํตํฉ: ์ฌ๋ฌ ํ๋ก์ ํธ๋ฅผ ๋ฐ๋ก ๊ฐ๋ฐํ๋๋ผ๋ ๋ฐฐํฌํ ๋๋ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ํฉ์ณ์ ๋ด๋ณด๋ธ๋ค. (Affected - ์์ ํ ๋ถ๋ถ๊ณผ ๊ด๋ จ๋ ๋ถ๋ถ๋ง ์ ํ์ ์ผ๋ก ๋น๋)๋ฐํ์ ํตํฉ: ๋ชจ๋ ํ๋๋ ์ด์ ์ ๋ฌธ์ ์ ์ ํด๊ฒฐํด์ฃผ๋ ํด๊ฒฐ์ฌ. ์๋์ผ๋ก ์์ ๋ณต์กํ๋ ๋ฌธ์ ๋ค์ ํด์ค๋ค๋ ๊ฒ์ด๋ค.
Nx๊ฐ ์ ๊ณตํ๋ ํธ๋ฆฌํจ์ ์ป๋ ๋์ Nx๊ฐ ์ ํ ๋ฐฉ์์ ๋ฐ๋ผ์ผ ํ๋ค๋ ํธ๋ ์ด๋ ์คํ๊ฐ ์กด์ฌํ๋ค.
๋๋์ : ์ฌ์ฉ์ ๊ฒฝํ์ ์งํค๋ฉด์๋ ๊ฐ ๊ธฐ๋ฅ์ด ๋ ๋ฆฝ์ ์ผ๋ก ์์ง์ผ ์ ์๋ ํ๋ก ํธ์๋ ๊ตฌ์กฐ๊ฐ ์ผ๋ง๋ ์ค์ํ์ง ๋ค์ ๋๊ผ๋ค. ์ข์ ์ํคํ ์ฒ๋ ๊ธฐ๋ฅ์ ์๊ฒ ๋๋๋ฉด์๋ ์ ์ฒด ๊ฒฝํ์ ํ๋์ฒ๋ผ ๋ณด์ด๊ฒ ๋ง๋๋ ๊ท ํ์ ์ฐพ๋ ์ผ!!!
๐ https://oliveyoung.tech/2025-11-06/what-is-MFE-part2/
๐ https://oliveyoung.tech/2025-11-10/what-is-MFE-part3/
๋น๊ทผ ํผ๋ ์์คํ ํ์คํ: Feed-Entity ๊ตฌ์ถ๊ธฐ
ํ์ด์ค๋ถ์ด๋, ์์คํ ๊ฐ์ SNS ์๋น์ค๋ค์ ์ด๋ป๊ฒ ์๋ง์ ์ฌ์ฉ์๋ค์๊ฒ ์ง์ฐ ์์ด ์ค์๊ฐ์ผ๋ก ๊ทธ ๋ง์ ๋ฐ์ดํฐ๋ค์ ๋ณด์ฌ์ค ์ ์๋ ๊ฑธ๊น?
๋๊ท๋ชจ ๋ด์ค ํผ๋ ์์คํ ์ด ์ด๋ค ๊ตฌ์กฐ๋ก ๋์๊ฐ๋์ง ํต์ฌ ์๋ฆฌ๋ฅผ ์์๋ณด์.
ํผ๋ ๋ฐํ, ๋ด์ค ํผ๋ ๊ตฌ์ถ ์ด๋ ๊ฒ ๋ ๊ฐ์ง๋ก ํฌ๊ฒ ์ก์์ ์ํฐํด์์ ์ด์ผ๊ธฐํ๋ค.
- ํผ๋ ๋ฐํ
์ฌ์ฉ์๊ฐ ํ๋์ ๊ธ์ ์ฌ๋ ธ์ ๋ ์์คํ ์ ์ด๋ป๊ฒ ๋์๊ฐ๋๊ฑธ๊น? ํฌ์คํ ๋ฒํผ์ ๋๋ฅด๋ฉด ํด๋น ์์ฒญ์ด ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๋จผ์ ํต๊ณผํ๊ณ , ํด๋น ์์ฒญ์ ๋ฐ์ ์น ์๋ฒ๊ฐ ๋์๊ฐ๊ฒ ๋ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ์น ์๋ฒ๊ฐ ๋ชจ๋ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์๋, ์๊ฒ ์ชผ๊ฐ์ ๋ด๋น ์ ๋ฌธ๊ฐ๋คํํ ๋ถ์ ์ด ๋๋ค.
์ฌ๊ธฐ์ ์ ๋ฌธ๊ฐ๋ 3๊ฐ์ง๋ก ๋๋ ์ ์ด์ผ๊ธฐํ ์ ์๋ค.
- ํฌ์คํธ ์๋น์ค: ํ ์คํธ๋ ์ฌ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ์ญํ
- ์๋ฆผ ์๋น์ค: ์น๊ตฌ์๊ฒ ์ ๊ธ์ด ์ฌ๋ผ์๋ค๋ ์๋ฆผ ์ญํ
- ํฌ ์์ ์๋น์ค: ๋์ ์ ๊ฒ์๋ฌผ์ ์น๊ตฌ๋ค์๊ฒ ์ซ ์ ๋ฌํด์ฃผ๋ ์ญํ
- ๋ด์ค ํผ๋ ๊ตฌ์ถ
์ฌ์ฉ์๊ฐ ๋ด ํผ๋ ๋ณด์ฌ๋ฌ๋ผ๋ ์์ฒญ์ ํ๋ฉด ๋ด์ค ํผ๋ ์๋น์ค๋ก ํด๋น ์์ฒญ์ด ๊ฐ๊ฒ ๋๋ค. ์์คํ ์ ๊ฐ ์ฌ์ฉ์ ๋ณ๋ก ๋ด์ค ํผ๋ ์บ์ ๋ผ๋ ๊ฐ์ธ ์ ์ฉ ์ฐฝ๊ณ ๋ฅผ ๋งค๋ฆฌ ๋ง๋ ์ด๋๋ค. ๋ด์ค ํผ๋ ์๋น์ค๋ ์ด ์ฐฝ๊ณ ์์ ํฌ ์์ ์๋น์ค๊ฐ ์์๋ ๊ฒ์๋ฌผ ๋ชฉ๋ก์์ ๊บผ๋ด์ค๊ธฐ๋ง ํ๋ฉด ๋๋ค.(์๋ ํฅ์)
- ํฌ ์์ ์จ wirte: ์ฐ๊ธฐ ์์ ์ ๊ฐ์ ธ์จ๋ค. ๋ฏธ๋ฆฌ ๋ค ๋ง๋ค์ด ๋ ๊ฒ์ธ๊ฐ(push ๋ฐฉ์)
- ํฌ ์์ ์จ read: ์ฝ๊ธฐ ์์ ์ ๊ฐ์ ธ์จ๋ค. ํ์ํ ๋๋ง๋ค ์ฆ์์์ ๋ง๋ค ๊ฒ์ธ๊ฐ(pull ๋ฐฉ์)
push ๋ฐฉ์์ ๋จ์
ํ๋ก์๊ฐ ์๋ฐฑ ๋ง๋ช ์ธ ์ ๋ช ์ธ์ด ๊ธ์ ์ฌ๋ฆฌ๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ๊ฒ์๋ฌผ ํ๋๋ฅผ ์๋ฐฑ๋ง์ ์บ์์ ์ผ์ผ์ด ๋ณต์ฌํด์ ๋ฃ์ด์ฃผ๊ธฐ์ ๋ง๋น๊ฐ ๋ ์ ์๋ ์ํ์ด ์๋ค.(Hot Key ๋ฌธ์ )
pull ๋ฐฉ์์ ๋จ์ push ๋ฐฉ์๊ณผ ๋ค๋ฅด๊ฒ ์ ๋ช ์ธ์ด ๊ธ์ ์ฌ๋ ค๋ ์๋ฌด ์ผ๋ ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ํํ์ง ์์ง๋ง, ํผ๋๋ฅผ ๋ณผ ๋๋ง๋ค ๋ก๋ฉ์ด ์ฌ๋๊ฑธ๋ฆฌ๋ ์ ์ ๊ฐ์ํด์ผ ํ๋ค. ๋งค๋ฒ ๋ก๋ฉ๋ง ๋ณด๊ณ ์์ด์ผ ํ ์๋ ์๋ค..
๋๊ท๋ชจ ์๋น์ค๋ค์ ์ด ๋์ ์์ ํ์ด๋ธ๋ฆฌ๋ ๋ฐฉ์์ ์ด์ฉํ๋ค.
์ผ๋ฐ ์ฌ์ฉ์๋ค๋ผ๋ฆฌ๋ push ๋ฐฉ์์ผ๋ก,
์ ๋ช ์ธ๊ณผ ํ๋ก์ ์ฌ์ด์๋ pull ๋๋ ์ ๋ช ์ธ๋ค์ ๋ฐ๋ก ๋ชจ์์ ์ฌ์ฉ์๋ค์ด ํผ๋๋ฅผ ์์ฒญํ ๋ ์ผ๋ฐ ์น๊ตฌ๋ค ํผ๋์ ์ ๋ช ์ธ ํผ๋๋ฅผ ํฉ์ณ์ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ผ๋ก ํ๋ค.
ํฌ ์์ ์๋น์ค
- ๊ทธ๋ํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์์ ๊ธ์ ์ด ์ฌ์ฉ์์ ์น๊ตฌ id๋ฅผ ๋ชจ๋ ๊ฐ์ ธ์จ๋ค.
- ์ฌ์ฉ์ ์บ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์น๊ตฌ๋ค์ ๊ฐ์ธ ์ค์ ์ ํ์ธํ๋ค.
- ๋ฉ์์งํ๋ฅผ ์ด์ฉํ์ฌ ์ฐจ๊ทผ์ฐจ๊ทผ ์์ ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ค.
๋ง์ฝ ๋ฉ์์งํ์ ๋ฐ์ดํฐ๊ฐ ๋๋ฌด ์์ฌ์ ์ฒ๋ฆฌํ๋ ์๋๋ณด๋ค ์์ด๋ ์๋๊ฐ ๋น ๋ฅด๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
์ด๋ฅผ ์ํด
- ์ฌ๋ฌ ๋ ํฌ์์ ์์ปค ์๋ฒ๋ค์ด ๋ฉ์์ง ํ์ ์์ธ ์์ ์ ๊ฒฝ์์ ์ผ๋ก ๊ฐ์ ธ๊ฐ์ ์ฒ๋ฆฌํ๋ค.
- ์์ ์ ๊ฐ์ ธ๊ฐ ์์ปค๋ค์ด ๊ฐ ์น๊ตฌ์ ๋ด์ค ํผ๋ ์บ์์ user id, post id๋ฅผ ์ ์ฅํ๋ค.
๋๋์ : ๊ฒ์ผ๋ก ๋ณด๊ธฐ์ ์์ฒญ ๋ณต์กํด ๋ณด์ด๋ SNS ํผ๋๋, ๊ฒฐ๊ตญ โ๋ฐํ โ ํฌ์์ โ ์บ์๋ ํผ๋ ์ฝ๊ธฐโ๋ผ๋ ๋จ์ํ ํ๋ฆ์ ์๊ฒ ์ชผ๊ฐ์ ์กฐํฉํ ๊ฑฐ๋ผ๋ ๊ฒ ์ธ์์ ์ด์๋ค. ์ด๋ฐ ๊ตฌ์กฐ๋ฅผ ์๊ณ ๋๋, ์ธ์ ๊ฐ ๋ด๊ฐ ๋ง๋๋ ์๋น์ค์์๋ โํผ๋์ฒ๋ผ ๋ณด์ด๋ ๊ธฐ๋ฅโ์ ์ค๊ณํ ๋ ํจ์ฌ ๋ ํ์ค์ ์ธ ์ ํ์ ํ ์ ์์ ๊ฒ ๊ฐ๋ค!
๐ https://thenewstack.io/building-scalable-news-feed-applications-using-redis-and-cassandra/
๐ https://aws.amazon.com/ko/blogs/architecture/how-karrot-built-a-feature-platform-on-aws-part-1-motivation-and-feature-serving/
๐ https://bytes.usc.edu/~saty/courses/docs/data/SystemDesignInterview.pdf
๐ https://caffeinewoo.tistory.com/36
๐ https://www.youtube.com/watch?v=qYo0R2nv1PQ
๐ https://about.daangn.com/blog/archive/%EB%8B%B9%EA%B7%BC-%ED%94%BC%EB%93%9C%EC%8B%A4-%EC%B1%84%EC%9A%A9-%ED%99%88%ED%99%94%EB%A9%B4-%EA%B0%9C%EB%B0%9C%EC%9E%90-pm/
๐ https://about.daangn.com/blog/archive/%EB%8F%99%EB%84%A4-%EC%86%8C%EC%8B%9D-%EC%97%B0%EA%B2%B0%ED%95%98%EB%8A%94-%EC%8A%88%ED%8D%BC-%ED%94%BC%EB%93%9C%EB%A5%BC-%ED%96%A5%ED%95%98%EC%97%AC/
๐ https://www.samsungsds.com/kr/insights/1239180_4627.html