๐Ÿ“
[2025/11/12-2025/11/18] ์•„ํ‹ฐํด ๊ณต๋ถ€ ์ •๋ฆฌ
2025๋…„ 11์›” 18์ผ

ํ•ด๋‹น ์•„ํ‹ฐํด ์ •๋ฆฌ๋Š” ๊ท€๋กœ ๋“ค์œผ๋ฉฐ ์ •๋ฆฌํ•˜๋Š” ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค.
๊ตฌ๊ธ€์˜ NotebookLM์œผ๋กœ ์š”์•ฝํ•œ ๋‚ด์šฉ์„
๋ผ๋””์˜ค์ฒ˜๋Ÿผ ์žฌ์ƒํ•ด ๋“ค์œผ๋ฉฐ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.๐ŸŽง


ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜์˜ ์›์น™๊ณผ ์ ์šฉ ์‚ฌ๋ก€

๋ชจ๋“  ๊ฒƒ์˜ ์‹œ์ž‘์€ โ€œ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌโ€์ด๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด๋กœ ๋‚˜๋ˆ„๊ณ  ์„œ๋กœ ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™” ํ•˜์ž.

๋กœ๋ฒ„ํŠธ ๋งˆํ‹ด์ด ์ œ์‹œํ•œ ๋ชฉํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ํŠน์ • ์›น ํ”„๋ ˆ์ž„์›Œํฌ์— ์ข…์†๋˜์ง€ ๋ง์ž.
  2. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์‰ฝ๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์ž.
  3. UI๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ํ•ต์‹ฌ ๋กœ์ง์€ ํ”๋“ค๋ฆฌ๋ฉด ์•ˆ๋œ๋‹ค.
  4. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฑธ ์ œํ•œ์ด ๋˜์ง€ ์•Š๊ฒŒ ํ•˜์ž.

alt text

์ด ๋™์‹ฌ์›์œผ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜์˜ ์ƒ์ง•์ด๋ผ ํ•œ๋‹ค.

์•ˆ์ชฝ ์›๋ถ€ํ„ฐ ๋ด๋ณด๋ฉด,

  • Entity: ์‹œ์Šคํ…œ์˜ ์‹ฌ์žฅ๋ถ€. ๊ธฐ์—… ์ „์ฒด์— ์ ์šฉ๋˜๋Š” ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์ด๋‹ค.(ex. ์€ํ–‰ - ๊ณ„์ขŒ, ์ด์ฒด๊ทœ์น™)
  • Use Case: ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™. ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ์ด ์•ฑ์œผ๋กœ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€๋ฅผ ๋งํ•œ๋‹ค.(ex. ์†ก๊ธˆํ•˜๊ธฐ, ๋Œ€์ถœ ์‹ ์ฒญํ•˜๊ธฐ)
  • Interface Adapter: ์ค‘๊ฐ„์—์„œ ์›ํ™œํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ค‘๊ฐ„๋‹ค๋ฆฌ์˜ ์—ญํ• .
  • Framework & Driver: ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ™์ด ๊ตฌ์ฒด์ ์ธ ๊ธฐ์ˆ  ๋ฐ ์„ธ๋ถ€์‚ฌํ•ญ

์ด ๊ตฌ์กฐ๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ ˆ๋Œ€์ ์ธ ๊ทœ์น™์ด ์žˆ๋‹ค.

์ด๋Š” ์˜์กด์„ฑ ๊ทœ์น™์ด๋‹ค.

์˜์กด์„ฑ ๊ทœ์น™

๋ชจ๋“  ์†Œ์Šค ์ฝ”๋“œ ์˜์กด์„ฑ์€ ๋ฐ˜๋“œ์‹œ ๋ฐ”๊นฅ์ชฝ์—์„œ ์•ˆ์ชฝ์œผ๋กœ ํ–ฅํ•ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ์•ˆ์ชฝ ์›์€ ๋ฐ”๊นฅ์ชฝ ์›์— ๋Œ€ํ•ด ์•„๋ฌด๊ฒƒ๋„ ์•Œ ์ˆ˜ ์—†๋‹ค.

์œ ์Šค์ผ€์ด์Šค๋Š” ์›น ๊ธฐ์ˆ ์„ ๋ชฐ๋ผ์•ผ ํ•˜๊ณ , ์—”ํ„ฐํ‹ฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ์ˆ ์„ ๋ชฐ๋ผ์•ผ ํ•œ๋‹ค.

๊ทธ๋ ‡๋‹ด ํ•ต์‹ฌ๋กœ์ง์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ๋กœ ์ €์žฅํ•ด์•ผ ํ•  ๋• ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?๐Ÿค” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ฐ€์žฅ ๋ฐ”๊นฅ์ชฝ์— ์žˆ๋Š”๋ฐ ๋ชจ๋ฅด๋Š” ์ƒํƒœ๋กœ ์†Œํ†ต์ด ๊ฐ€๋Šฅํ•œ๊ฐ€?

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์˜์กด์„ฑ ์—ญ์ „ ์›์น™์ด๋ผ๋Š” ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•œ๋‹ค.

์นด์นด์˜คํŽ˜์ด ์‚ฌ์žฅ๋‹˜ํ”Œ๋Ÿฌ์Šค ์•ฑ ์‚ฌ๋ก€์—์„œ๋Š” ์ƒํ™ฉ์— ๋งž๊ฒŒ ์œ„ ๊ทœ์น™์„ ๋”ฐ๋ฅด๊ธฐ ๋ณด๋‹ค ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€ํ˜•ํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ์™€ ๋†’์€ ์ƒ์‚ฐ์„ฑ์„ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณค๋‹ค.

  1. ํ™”๋ฉด์„ ๋‹ด๋‹นํ•˜๋Š” presentation ๋ ˆ์ด์–ด๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ๋‹ด๊ธด domain ๋ ˆ์ด์–ด(์œ ์Šค์ผ€์ด์Šค)๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค.
  2. ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์—†์„ ๋• presentation ๋ ˆ์ด์–ด๊ฐ€ domaion ๋ ˆ์ด์–ด๋ฅผ ๊ฑด๋„ˆ ๋›ฐ๊ณ , ๋ฐ”๋กœ data ๋ ˆ์ด์–ด์— ์ ‘๊ทผํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.(๋ฐ˜๋ฉด, ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํ•ฉํ•˜๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•  ๋•Œ๋Š” ์›์น™๋Œ€๋กœ domain ๋ ˆ์ด์–ด์˜ ์œ ์Šค์ผ€์ด์Šค๋ฅผ ๊ฑฐ์น˜๋„๋ก ํ•œ๋‹ค.)

ํ•˜์ง€๋งŒ ์ด ๊ธฐ๋Šฅ์ด ๋ณต์žกํ•˜๋‹ค ์•ˆ๋ณต์žกํ•˜๋‹ค์˜ ๊ธฐ์ค€์ด ๋‹ค๋ฅด๊ธฐ์— ์ž‘์—… ์ฝ”๋“œ๊ฐ€ ๋’ค์ฃฝ๋ฐ•์ฃฝ์ด ๋  ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ์€ ์—†๋Š” ๊ฑธ๊นŒ?

์นด์นด์˜คํŽ˜์ด๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ, ์œ ์Šค์ผ€์ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ผ๋Š” ๊ทœ์น™์„ ์ •ํ–ˆ๋‹ค.

์˜์กด์„ฑ ์—ญ์ „ ์›์น™

์•ˆ์ชฝ ๊ณ„์ธต์ด ์ž์‹ ์ด ํ•„์š”ํ•œ ๊ฒƒ(์ธํ„ฐํŽ˜์ด์Šค)์„ ์ •ํ•ด๋‘๋ฉด, ๋ฐ”๊นฅ์ชฝ ๊ณ„์ธต์ด ๊ทธ ์•ฝ์†์„ ์ง€ํ‚ค๋Š” ์‹ค์ œ ๋‚ด์šฉ๋ฌผ์„ ๋งŒ๋“ค์–ด์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์šฐ์•„ํ•œ ํ˜•์ œ๋“ค์€ ์ด ์›์น™์„ ์—…๋ฌด ๋„๋ฉ”์ธ ์‚ฌ์ด์— ์ ์šฉํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

๋ฐฐ๋‹ฌ ๋„๋ฉ”์ธ๊ณผ ๋ฐฐ๋‹ฌ๋ฃŒ ๋„๋ฉ”์ธ์ด ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž. ๋ฐฐ๋‹ฌ๋ฃŒ๋ฅผ ๊ณ„์‚ฐํ•˜๋ ค๋ฉด ๋ฐฐ๋‹ฌ ๊ฑฐ๋ฆฌ ๋ฐ ์‹œ๊ฐ„์˜ ๋ฐฐ๋‹ฌ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํ•˜์ง€๋งŒ, ๋ฐฐ๋‹ฌ ๋„๋ฉ”์ธ์ด ๋ฐฐ๋‹ฌ๋ฃŒ์˜ ๊ตฌ์ฒด์ ์ธ ๊ณ„์‚ฐ ๋ฐฉ์‹๊นŒ์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์ค‘๊ฐ„์— ๋ฐฐ๋‹ฌ๋ฃŒ๋ฅผ ๊ณ„์‚ฐํ•ด์ฃผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‘”๋‹ค. ๋ฐฐ๋‹ฌ ๋„๋ฉ”์ธ์€ ์ด ์ธํ„ฐํŽ˜์ด์Šค์—๋งŒ ์˜์กดํ•˜์—ฌ ๋ฐฐ๋‹ฌ๋ฃŒ ์ •์ฑ…์ด ๋ฐ”๋€Œ์–ด๋„ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.

๋ฐฐ๋ฏผ ๋งˆ์ผ“ ์‚ฌ๋ก€์—์„œ์˜ ์‚ฌ๋ก€๋„ ๋ณด์ž. ๊ธฐ์กด์˜ ์Œ์‹ ๋ฐฐ๋‹ฌ ์„œ๋น„์Šค์™€ ์„œ๋ฒ„ ์ธํ”„๋ผ๋Š” ๊ฑฐ์˜ ๋™์ผํ–ˆ์ง€๋งŒ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” ํ™”๋ฉด์ด ์ƒˆ๋กœ ํ•„์š”ํ•œ ์ƒํ™ฉ์ด์—ˆ๋‹ค.(์ฆ‰, ๊ธฐ์กด ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•œ ์‹ ๊ทœ ์„œ๋น„์Šค ๋Ÿฐ์นญ ์ƒํ™ฉ์ด์—ˆ๋‹ค.)

ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ, ํ•ต์‹ฌ ๋กœ์ง์ด ๋‹ด๊ธด domain ๋ ˆ์ด์–ด์™€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” data ๋ ˆ์ด์–ด๋Š” ๊ฑฐ์˜ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋•๋ถ„์— presentation ๋ ˆ์ด์–ด๋งŒ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜์˜ ๋‹จ์ 

  1. ํด๋ž˜์Šค ํŒŒ์ผ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง„๋‹ค๋Š” ์ .. ์ฆ‰, ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋Š” ํ•™์Šต ๊ณก์„ ์ด ์กด์žฌํ•œ๋‹ค.
  2. 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)

๊ฑฐ๋Œ€ํ•œ ๋„์„œ๊ด€์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ž. ๋‹จ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ์•ˆ์—์„œ ์ฑ…๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์—ญ์‚ฌ, ๊ณผํ•™ ๋“ฑ ์ฝ”๋„ˆ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

ํŒŒํ‹ฐ์…”๋‹์˜ ์žฅ์ 

  1. ์ฟผ๋ฆฌ๊ฐ€ ๋นจ๋ผ์ง„๋‹ค. partition pruning(ํŒŒํ‹ฐ์…˜ ๊ฐ€์ง€์น˜๊ธฐ)์„ ํ†ตํ•ด ๋ชจ๋“  ํŒŒํ‹ฐ์…˜์„ ๋ณด๋Š” ๊ฒŒ ์•„๋‹Œ, ํ•„์š”ํ•œ ํŒŒํ‹ฐ์…˜๋งŒ ๋ฝ‘์•„์„œ ๋ณธ๋‹ค.
  2. ๋ฐ์ดํ„ฐ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ๊ฐ€ ํŽธํ•˜๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์— ๋”ฐ๋ฅธ 3๊ฐ€์ง€ ํŒŒํ‹ฐ์…”๋‹ ๋ฐฉ์‹์ด ์žˆ๋‹ค.

  1. ๋ฒ”์œ„ ํŒŒํ‹ฐ์…”๋‹: ๋‚ ์งœ๋‚˜ ์ˆซ์ž, ์—ฐ์†์ ์ธ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.(ex. 2025๋…„ 1๋ถ„๊ธฐ, 2๋ถ„๊ธฐ)
  2. ๋ชฉ๋ก ํŒŒํ‹ฐ์…”๋‹: ํŠน์ • ๊ฐ’๋“ค์˜ ๋ชฉ๋ก์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.(ex. ๊ตญ๊ฐ€๋ณ„)
  3. ํ•ด์‰ฌ ํŒŒํ‹ฐ์…”๋‹: ์‚ฌ์šฉ์ž id ๊ฐ™์€ ํ‚ค๋ฅผ ํ•ด์‰ฌ ํ•จ์ˆ˜์— ๋„ฃ์–ด์„œ ๋‚˜์˜ค๋Š” ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ์‹œํ‚จ๋‹ค.(ex.๊ตญ๊ฐ€๋ณ„,๊ธฐ๊ฐ„๋ณ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชฐ๋ฆฌ๋Š” ํ˜„์ƒ ๋ฐฉ์ง€) ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ํŒŒํ‹ฐ์…˜์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐ๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ๋ฐ˜๋ฉด, ๋ฒ”์œ„ ๊ฒ€์ƒ‰์ด ๊ฑฐ์˜ ์•ˆ๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

์ƒค๋”ฉ(Shading)

์ง€์—ญ ๊ณณ๊ณณ์— ์—ฌ๋Ÿฌ ๋„์„œ๊ด€์„ ๋งŒ๋“œ๋Š” ๊ฒƒ. ๋ฐ์ดํ„ฐ๋ฅผ ์ƒค๋“œ๋ผ๋Š” ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์„œ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์„œ๋ฒ„์— ๋ถ„์‚ฐ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์„œ๋ฒ„ ํ•œ ๋Œ€์˜ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ์ˆ˜์ง์  ํ™•์žฅ์ด ์•„๋‹Œ ์ˆ˜ํ‰์  ํ™•์žฅ ๋ฐฉ์‹์ด๋‹ค.

์ƒค๋”ฉ์˜ ์žฅ์ ์œผ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ๋น„์šฉ ์ ˆ๊ฐ ๋ฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ
  2. ๊ฒฐํ•จ ํ—ˆ์šฉ(์„œ๋ฒ„ ํ•œ ๋Œ€๊ฐ€ ๊ณ ์žฅ๋‚˜๋„ ์„œ๋น„์Šค๊ฐ€ ๋ฉˆ์ถ”์ง€ ์•Š๋Š”๋‹ค.)

๋งŒ์•ฝ ์—ฌ๋Ÿฌ ์ƒค๋“œ์— ๊ฑธ์นœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ, ํ•œ ์ƒค๋“œ๊ฐ€ ๋‹ค์šด๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

๋ณดํ†ต ์‹œ์Šคํ…œ์€ ํ•˜๋‚˜๋ผ๋„ ์‘๋‹ต์ด ์—†์œผ๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒํ•œ๋‹ค. ์ƒค๋”ฉ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‹จ์—์„œ ์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ง€ ์ •๊ตํ•˜๊ฒŒ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.

์ดˆ์ฐฝ๊ธฐ ์ธ์Šคํƒ€๊ทธ๋žจ์—์„œ๋Š” ๋ฌผ๋ฆฌ์  ์„œ๋ฒ„๊ฐ€ ์–ผ๋งˆ ์—†์—ˆ์ง€๋งŒ ๋…ผ๋ฆฌ์  ์ƒค๋“œ๋ฅผ ์ˆ˜์ฒœ ๊ฐœ ๋งŒ๋“ค์–ด๋†จ๋‹ค๊ณ  ํ•œ๋‹ค. ์„œ๋น„์Šค๊ฐ€ ์ปค์ง€๋ฉฐ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๋…ผ๋ฆฌ์  ์ƒค๋“œ ๋ฉ์–ด๋ฆฌ๋“ค์„ ์ƒˆ ์„œ๋ฒ„๋กœ ์˜ฎ๊ธฐ๋ฉฐ ํ™•์žฅํ•ด๋‚˜๊ฐ”๋‹ค๊ณ  ํ•œ๋‹ค.

๋ชจ๋“  ์ƒค๋”ฉ์€ ํŒŒํ‹ฐ์…”๋‹์ด์ง€๋งŒ, ๋ชจ๋“  ํŒŒํ‹ฐ์…”๋‹์€ ์ƒค๋”ฉ์ด ์•„๋‹ˆ๋‹ค.

์ด ๋ฌธ์žฅ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

ํŒŒํ‹ฐ์…”๋‹์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ผ๋ฆฌ์  ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ์ƒค๋”ฉ์€ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ์„ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค์— ๋ถ„์‚ฐ์‹œํ‚จ๋‹ค.

์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์€ ํŒŒํ‹ฐ์…”๋‹์˜ ๋ฒ”์ฃผ์— ๋“ค์–ด๊ฐ€๊ณ  ๋‚˜๋ˆ„๋Š” ์กฐ๊ฐ๋“ค์„ ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋กœ ํฉ์–ด๋†“๋Š” ๋ฌผ๋ฆฌ์  ๋ถ„์‚ฐ์ด ๋™๋ฐ˜๋  ๋•Œ ์ƒค๋”ฉ์ด๋ผ ๋ถ€๋ฅธ๋‹ค.

์ˆ˜ํ‰ ํŒŒํ‹ฐ์…˜์„ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค๋กœ ์˜ฎ๊ธฐ๋Š” ์ˆœ๊ฐ„ => ์ƒค๋”ฉ์ด ๋œ๋‹ค!

์–ธ์ œ ํŒŒํ‹ฐ์…”๋‹์„ ์“ฐ๊ณ  ์–ธ์ œ ์ƒค๋”ฉ์œผ๋กœ ๋„˜์–ด๊ฐ€์•ผ ํ• ๊นŒ?

๋ฐ์ดํ„ฐ๋Š” ๊ณ„์† ๋Š˜์–ด๋‚˜๊ณ  ๋‹จ์ผ ์„œ๋ฒ„๋กœ ์ถฉ๋ถ„ํžˆ ์šด์˜ ๊ฐ€๋Šฅํ•  ๋•Œ
=> ํŒŒํ‹ฐ์…”๋‹

๋‹จ์ผ ์„œ๋ฒ„์˜ 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 ๊ณผ์ •์—์„œ ๋งˆ์ฃผํ•œ ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ๋”์ฐํ•œ ์„ค์ •์˜ ๋ณต์žก์„ฑ

์ƒˆ๋กœ์šด remote ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ์›นํŒฉ์ด๋ผ๋Š” ๋นŒ๋“œ ๋„๊ตฌ์˜ ์„ค์ • ํŒŒ์ผ์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ–ˆ๋‹ค.

  1. ํƒ€์ž… ์•ˆ์ •์„ฑ ๋ฌธ์ œ

ํ˜ธ์ŠคํŠธ ์•ฑ์—์„œ๋Š” ๋ฆฌ๋ชจํŠธ์—์„œ ์–ด๋–ค ํ˜•ํƒœ์˜ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”์ง€ ์ „ํ˜€ ์•Œ ์ˆ˜ ์—†๋‹ค.(ex. ์ƒํ’ˆ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•˜๋Š”๋ฐ ์ด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ด๋–ค ๊ฒƒ์„ ํ•„์š”๋กœ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ) ๊ทธ๋ ‡๊ธฐ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ํƒ€์ž… ์ •์˜ ํŒŒ์ผ์„ ์†์œผ๋กœ ์ผ์ผ์ด ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์ƒ๊ธด๋‹ค.

  1. SSR ํ™˜๊ฒฝ์˜ ๊ตฌํ˜„ ์–ด๋ ค์›€

Nx

๋ชจ๋…ธ๋ ˆํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋„๊ตฌ. ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ์—ฌ๋Ÿฌ ์•ฑ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ•˜๋‚˜์˜ ์ €์žฅ์†Œ์—์„œ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๋ชจ๋…ธ๋ ˆํฌ ๋„๊ตฌ์ด๋‹ค.

Nx๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ฉํ•œ๋‹ค.

  1. ๋นŒ๋“œ ํƒ€์ž„ ํ†ตํ•ฉ : ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋”ฐ๋กœ ๊ฐœ๋ฐœํ•˜๋”๋ผ๋„ ๋ฐฐํฌํ•  ๋•Œ๋Š” ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ํ•ฉ์ณ์„œ ๋‚ด๋ณด๋‚ธ๋‹ค. (Affected - ์ˆ˜์ •ํ•œ ๋ถ€๋ถ„๊ณผ ๊ด€๋ จ๋œ ๋ถ€๋ถ„๋งŒ ์„ ํƒ์ ์œผ๋กœ ๋นŒ๋“œ)
  2. ๋Ÿฐํƒ€์ž„ ํ†ตํ•ฉ: ๋ชจ๋“ˆ ํŽ˜๋”๋ ˆ์ด์…˜์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•ด์ฃผ๋Š” ํ•ด๊ฒฐ์‚ฌ. ์ž๋™์œผ๋กœ ์•ž์„œ ๋ณต์žกํ–ˆ๋˜ ๋ฌธ์ œ๋“ค์„ ํ•ด์ค€๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

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 ์„œ๋น„์Šค๋“ค์€ ์–ด๋–ป๊ฒŒ ์ˆ˜๋งŽ์€ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์ง€์—ฐ ์—†์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ทธ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฑธ๊นŒ?

๋Œ€๊ทœ๋ชจ ๋‰ด์Šค ํ”ผ๋“œ ์‹œ์Šคํ…œ์ด ์–ด๋–ค ๊ตฌ์กฐ๋กœ ๋Œ์•„๊ฐ€๋Š”์ง€ ํ•ต์‹ฌ ์›๋ฆฌ๋ฅผ ์•Œ์•„๋ณด์ž.

ํ”ผ๋“œ ๋ฐœํ–‰, ๋‰ด์Šค ํ”ผ๋“œ ๊ตฌ์ถ• ์ด๋ ‡๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ํฌ๊ฒŒ ์žก์•„์„œ ์•„ํ‹ฐํด์—์„œ ์ด์•ผ๊ธฐํ•œ๋‹ค.

  1. ํ”ผ๋“œ ๋ฐœํ–‰

์‚ฌ์šฉ์ž๊ฐ€ ํ•˜๋‚˜์˜ ๊ธ€์„ ์˜ฌ๋ ธ์„ ๋•Œ ์‹œ์Šคํ…œ์€ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”๊ฑธ๊นŒ? ํฌ์ŠคํŒ… ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ์š”์ฒญ์ด ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๋จผ์ € ํ†ต๊ณผํ•˜๊ณ , ํ•ด๋‹น ์š”์ฒญ์„ ๋ฐ›์€ ์›น ์„œ๋ฒ„๊ฐ€ ๋Œ์•„๊ฐ€๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์›น ์„œ๋ฒ„๊ฐ€ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์ž˜๊ฒŒ ์ชผ๊ฐœ์„œ ๋‹ด๋‹น ์ „๋ฌธ๊ฐ€๋“คํ•œํ…Œ ๋ถ„์—…์ด ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ ์ „๋ฌธ๊ฐ€๋Š” 3๊ฐ€์ง€๋กœ ๋‚˜๋ˆ ์„œ ์ด์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํฌ์ŠคํŠธ ์„œ๋น„์Šค: ํ…์ŠคํŠธ๋‚˜ ์‚ฌ์ง„์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ์—ญํ• 
  • ์•Œ๋ฆผ ์„œ๋น„์Šค: ์นœ๊ตฌ์—๊ฒŒ ์ƒˆ ๊ธ€์ด ์˜ฌ๋ผ์™”๋‹ค๋Š” ์•Œ๋ฆผ ์—ญํ• 
  • ํŒฌ ์•„์›ƒ ์„œ๋น„์Šค: ๋‚˜์˜ ์ƒˆ ๊ฒŒ์‹œ๋ฌผ์„ ์นœ๊ตฌ๋“ค์—๊ฒŒ ์ซ™ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์—ญํ• 
  1. ๋‰ด์Šค ํ”ผ๋“œ ๊ตฌ์ถ•

์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด ํ”ผ๋“œ ๋ณด์—ฌ๋‹ฌ๋ผ๋Š” ์š”์ฒญ์„ ํ•˜๋ฉด ๋‰ด์Šค ํ”ผ๋“œ ์„œ๋น„์Šค๋กœ ํ•ด๋‹น ์š”์ฒญ์ด ๊ฐ€๊ฒŒ ๋œ๋‹ค. ์‹œ์Šคํ…œ์€ ๊ฐ ์‚ฌ์šฉ์ž ๋ณ„๋กœ ๋‰ด์Šค ํ”ผ๋“œ ์บ์‹œ ๋ผ๋Š” ๊ฐœ์ธ ์ „์šฉ ์ฐฝ๊ณ ๋ฅผ ๋งค๋ฆฌ ๋งŒ๋“ ์–ด๋‘”๋‹ค. ๋‰ด์Šค ํ”ผ๋“œ ์„œ๋น„์Šค๋Š” ์ด ์ฐฝ๊ณ ์—์„œ ํŒฌ ์•„์›ƒ ์„œ๋น„์Šค๊ฐ€ ์Œ“์•„๋‘” ๊ฒŒ์‹œ๋ฌผ ๋ชฉ๋ก์—์„œ ๊บผ๋‚ด์˜ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.(์†๋„ ํ–ฅ์ƒ)

  • ํŒฌ ์•„์›ƒ ์˜จ wirte: ์“ฐ๊ธฐ ์‹œ์ ์— ๊ฐ€์ ธ์˜จ๋‹ค. ๋ฏธ๋ฆฌ ๋‹ค ๋งŒ๋“ค์–ด ๋‘˜ ๊ฒƒ์ธ๊ฐ€(push ๋ฐฉ์‹)
  • ํŒฌ ์•„์›ƒ ์˜จ read: ์ฝ๊ธฐ ์‹œ์ ์— ๊ฐ€์ ธ์˜จ๋‹ค. ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์ฆ‰์„์—์„œ ๋งŒ๋“ค ๊ฒƒ์ธ๊ฐ€(pull ๋ฐฉ์‹)

push ๋ฐฉ์‹์˜ ๋‹จ์ 

ํŒ”๋กœ์›Œ๊ฐ€ ์ˆ˜๋ฐฑ ๋งŒ๋ช…์ธ ์œ ๋ช…์ธ์ด ๊ธ€์„ ์˜ฌ๋ฆฌ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ๊ฒŒ์‹œ๋ฌผ ํ•˜๋‚˜๋ฅผ ์ˆ˜๋ฐฑ๋งŒ์˜ ์บ์‹œ์— ์ผ์ผ์ด ๋ณต์‚ฌํ•ด์„œ ๋„ฃ์–ด์ฃผ๊ธฐ์— ๋งˆ๋น„๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ์œ„ํ—˜์ด ์žˆ๋‹ค.(Hot Key ๋ฌธ์ œ)

pull ๋ฐฉ์‹์˜ ๋‹จ์  push ๋ฐฉ์‹๊ณผ ๋‹ค๋ฅด๊ฒŒ ์œ ๋ช…์ธ์ด ๊ธ€์„ ์˜ฌ๋ ค๋„ ์•„๋ฌด ์ผ๋„ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์œ„ํ—˜ํ•˜์ง€ ์•Š์ง€๋งŒ, ํ”ผ๋“œ๋ฅผ ๋ณผ ๋•Œ๋งˆ๋‹ค ๋กœ๋”ฉ์ด ์˜ฌ๋ž˜๊ฑธ๋ฆฌ๋Š” ์ ์„ ๊ฐ์ˆ˜ํ•ด์•ผ ํ•œ๋‹ค. ๋งค๋ฒˆ ๋กœ๋”ฉ๋งŒ ๋ณด๊ณ  ์žˆ์–ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค..

๋Œ€๊ทœ๋ชจ ์„œ๋น„์Šค๋“ค์€ ์ด ๋‘˜์„ ์„ž์€ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฐฉ์‹์„ ์ด์šฉํ•œ๋‹ค.

์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋“ค๋ผ๋ฆฌ๋Š” push ๋ฐฉ์‹์œผ๋กœ,
์œ ๋ช…์ธ๊ณผ ํŒ”๋กœ์› ์‚ฌ์ด์—๋Š” pull ๋˜๋Š” ์œ ๋ช…์ธ๋“ค์€ ๋”ฐ๋กœ ๋ชจ์•„์„œ ์‚ฌ์šฉ์ž๋“ค์ด ํ”ผ๋“œ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์ผ๋ฐ˜ ์นœ๊ตฌ๋“ค ํ”ผ๋“œ์™€ ์œ ๋ช…์ธ ํ”ผ๋“œ๋ฅผ ํ•ฉ์ณ์„œ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•œ๋‹ค.

ํŒฌ ์•„์›ƒ ์„œ๋น„์Šค

  1. ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์—์„œ ๊ธ€์„ ์“ด ์‚ฌ์šฉ์ž์˜ ์นœ๊ตฌ id๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ์˜จ๋‹ค.
  2. ์‚ฌ์šฉ์ž ์บ์‹œ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์นœ๊ตฌ๋“ค์˜ ๊ฐœ์ธ ์„ค์ •์„ ํ™•์ธํ•œ๋‹ค.
  3. ๋ฉ”์‹œ์ง€ํ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฐจ๊ทผ์ฐจ๊ทผ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

๋งŒ์•ฝ ๋ฉ”์‹œ์ง€ํ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ์Œ“์—ฌ์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์†๋„๋ณด๋‹ค ์Œ“์ด๋Š” ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

์ด๋ฅผ ์œ„ํ•ด

  1. ์—ฌ๋Ÿฌ ๋Œ€ ํŒฌ์•„์›ƒ ์›Œ์ปค ์„œ๋ฒ„๋“ค์ด ๋ฉ”์‹œ์ง€ ํ์— ์Œ“์ธ ์ž‘์—…์„ ๊ฒฝ์Ÿ์ ์œผ๋กœ ๊ฐ€์ ธ๊ฐ€์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  2. ์ž‘์—…์„ ๊ฐ€์ ธ๊ฐ„ ์›Œ์ปค๋“ค์ด ๊ฐ ์นœ๊ตฌ์˜ ๋‰ด์Šค ํ”ผ๋“œ ์บ์‹œ์— 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