--- id: [[P-Reinforce|P-Reinforce]]-AUTO-FE2B8D category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ ([[_แ„‚แ…ฌแ„‹แ…ช แ„‘แ…กแ†ฏแ„ƒแ…กแ„…แ…ตแ„‹แ…ด แ„‡แ…ฎแ†ซแ„…แ…ต_ - แ„€แ…ชแ†ซแ„‰แ…ตแ†ทแ„‰แ…กแ„‹แ…ด แ„‡แ…ฎแ†ซแ„…แ…ต (Separation of Concerns)|Separation of Concerns]])" --- # [[แ„€แ…ชแ†ซแ„‰แ…ตแ†ทแ„‰แ…กแ„‹แ…ด แ„‡แ…ฎแ†ซแ„…แ…ต (Separation of Concerns)|๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ (Separation of Concerns]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ(SoC)๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์—์„œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ ๋ถ€๋ถ„์ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ณ ์œ ํ•œ ๊ธฐ๋Šฅ์ด๋‚˜ ํŠน์ • ๊ด€์‹ฌ์‚ฌ์—๋งŒ ์ง‘์ค‘ํ•˜๋„๋ก ์‹œ์Šคํ…œ์„ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๋Š” ๊ทผ๋ณธ์ ์ธ ์›์น™์ž…๋‹ˆ๋‹ค [1-3]. 1974๋…„ ์—์ธ ํ—ˆ๋ฅด ๋ฐ์ดํฌ์ŠคํŠธ๋ผ(Edsger W. Dijkstra)๊ฐ€ ์ธ๊ฐ„์˜ ์ง€์  ํ•œ๊ณ„๋กœ ์ธํ•œ ๋ณต์žก์„ฑ์„ ํ†ต์ œํ•˜๊ธฐ ์œ„ํ•ด ์ œ์•ˆํ•œ ๊ฐœ๋…์œผ๋กœ, ์‹œ์Šคํ…œ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ์กฐ๊ฐ์œผ๋กœ ๋ถ„ํ•ดํ•˜์—ฌ ๋ชจ๋“ˆ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ์žฌ์‚ฌ์šฉ์„ฑ ๋ฐ ํ™•์žฅ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค [1, 3-6]. ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๊ธฐ์ˆ ์  ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๋ช…ํ™•ํžˆ ๊ฒฉ๋ฆฌํ•จ์œผ๋กœ์จ, ๋ณ€ํ™”์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•˜๊ณ  ์ง„ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฌ๊ณ ํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ์ฒ ํ•™์ž…๋‹ˆ๋‹ค [7-9]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) **๊ธฐ์›๊ณผ ์ฒ ํ•™์  ํŒจ๋Ÿฌ๋‹ค์ž„** * ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ์˜ ๊ธฐ์›์€ ์—์ธ ํ—ˆ๋ฅด ๋ฐ์ดํฌ์ŠคํŠธ๋ผ๊ฐ€ 1974๋…„ ๋ฐœํ‘œํ•œ ์—์„ธ์ด "๊ณผํ•™์  ์‚ฌ๊ณ ์˜ ์—ญํ• ์— ๊ด€ํ•˜์—ฌ"๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค [3]. ๊ทธ๋Š” ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋•Œ ์ธ๊ฐ„์˜ ์ •์‹ ์ด ์••๋„๋‹นํ•˜์ง€ ์•Š๋„๋ก ํŠน์ • ์ธก๋ฉด์— ์ฃผ์˜๋ฅผ ์ง‘์ค‘ํ•˜๊ณ  ๋‹ค๋ฅธ ์ธก๋ฉด์„ ๋ถ„๋ฆฌํ•ด์„œ ์‚ฌ๊ณ ํ•˜๋Š” ๊ฒƒ์ด ์ง€์  ์‚ฌ๊ณ ์˜ ํ•ต์‹ฌ์ด๋ผ๊ณ  ๊ฐ•์กฐํ–ˆ์Šต๋‹ˆ๋‹ค [3, 6]. ์ด ์›์น™์€ ํ›„๋Œ€ ํ•™์ž๋“ค์— ์˜ํ•ด ์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋“ˆ์„ฑ([[Modularity|Modularity]])์„ ํ™•๋ณดํ•˜๋Š” ์ผ์ฐจ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ •๋ฆฝ๋˜์—ˆ์œผ๋ฉฐ, ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„์˜ SOLID ์›์น™(ํŠนํžˆ ๋‹จ์ผ ์ฑ…์ž„ ์›์น™๊ณผ ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™)์˜ ๋ชจํƒœ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค [3, 7]. **"๋‡Œ์™€ ํŒ”๋‹ค๋ฆฌ์˜ ๋ถ„๋ฆฌ" ์€์œ  (ํ•ต์‹ฌ ๊ตฌ์กฐ)** * ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ๋ฅผ ๊ฐ€์žฅ ์ง๊ด€์ ์œผ๋กœ ์„ค๋ช…ํ•˜๋Š” ๋น„์œ ๋Š” ์‹œ์Šคํ…œ์„ '๋‡Œ(Brain)'์™€ 'ํŒ”๋‹ค๋ฆฌ(Limbs)'๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค [7]. * **๋‡Œ (Core/Brain):** ์•„ํ‚คํ…์ฒ˜์˜ ์‹ฌ์žฅ๋ถ€๋กœ, ์‹œ์Šคํ…œ์ด ์กด์žฌํ•˜๋Š” ๊ทผ๋ณธ ์ด์œ ์ธ ๊ณ ์ˆ˜์ค€์˜ '๋น„์ฆˆ๋‹ˆ์Šค ์—”ํ‹ฐํ‹ฐ'์™€ '์œ ์Šค์ผ€์ด์Šค'๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค [10-12]. ์ด ์˜์—ญ์€ ์™ธ๋ถ€ ์‹œ์Šคํ…œ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, UI, ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ)์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” ์ˆœ์ˆ˜ํ•œ ์ƒํƒœ๋กœ ๋ณด์กด๋˜์–ด์•ผ ํ•˜๋ฉฐ ๊ฐ€์žฅ ๋†’์€ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ๋…๋ฆฝ์„ฑ์„ ์ง€๋…€์•ผ ํ•ฉ๋‹ˆ๋‹ค [12, 13]. * **ํŒ”๋‹ค๋ฆฌ (Peripheral/Limbs):** ํ•ต์‹ฌ ๋กœ์ง์„ ๊ฐ์‹ธ๊ณ  ์™ธ๋ถ€ ์„ธ๊ณ„์™€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์†Œํ†ตํ•˜๋Š” ์ €์ˆ˜์ค€์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. SQL ์ฟผ๋ฆฌ, REST API, HTML/CSS ์›น ์ธํ„ฐํŽ˜์ด์Šค, ์„œ๋“œํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ์ด ํฌํ•จ๋˜๋ฉฐ, ํ•ต์‹ฌ ๋กœ์ง์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์–ธ์ œ๋“  ๊ต์ฒด ๊ฐ€๋Šฅํ•œ 'ํ”Œ๋Ÿฌ๊ทธ์ธ' ํ˜•ํƒœ๋กœ ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [12, 13]. * **์‹ ๊ฒฝ๊ณ„ (Wiring):** ๋‡Œ์™€ ํŒ”๋‹ค๋ฆฌ ์‚ฌ์ด์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์ค‘์žฌํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ DTO ๋“ฑ์˜ ์†Œํ†ต ๊ฒฝ๋กœ๋กœ, ์˜์กด์„ฑ ์—ญ์ „์„ ํ†ตํ•ด ๋А์Šจํ•œ ๊ฒฐํ•ฉ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค [14, 15]. **๊ตฌํ˜„์„ ์œ„ํ•œ ๊ณตํ•™์  ์ฒ™๋„: ์‘์ง‘๋„์™€ ๊ฒฐํ•ฉ๋„** * **๋†’์€ ์‘์ง‘๋„ (High Cohesion):** ๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ ์š”์†Œ๋“ค์ด ํ•˜๋‚˜์˜ ๋ช…ํ™•ํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์–ผ๋งˆ๋‚˜ ๋ฐ€์ ‘ํ•˜๊ฒŒ ๊ด€๋ จ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์  ์‘์ง‘๋„๊ฐ€ ๋†’์€ ์ฝ”๋“œ๋Š” ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ  ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์‰ฌ์šฐ๋ฉฐ ์ˆ˜์ • ์‹œ ์˜ํ–ฅ ๋ฒ”์œ„๊ฐ€ ํ•œ์ •๋ฉ๋‹ˆ๋‹ค [2, 16-18]. * **๋‚ฎ์€ ๊ฒฐํ•ฉ๋„ (Low Coupling):** ํ•œ ๋ชจ๋“ˆ์ด ์‹œ์Šคํ…œ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ์˜์กดํ•˜๋Š” ์ •๋„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„์ด ์•„๋‹Œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ ์˜์กด์„ฑ ์ฃผ์ž…(DI)์„ ํ†ตํ•ด ๋ชจ๋“ˆ ๊ฐ„์˜ ๋…๋ฆฝ์„ฑ์„ ๋ณด์žฅํ•˜์—ฌ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ถ€์ž‘์šฉ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [2, 19-21]. **์•„ํ‚คํ…์ฒ˜ ๋ฐ ์‚ฐ์—… ์ ์šฉ ์‚ฌ๋ก€** * **์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜:** ํ”„๋ ˆ์  ํ…Œ์ด์…˜, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„๋Š” 3๊ณ„์ธต ๊ตฌ์กฐ์™€ ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD)์˜ ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ, ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ ๋“ฑ์ด ๋Œ€ํ‘œ์ ์ธ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ์˜ ๊ตฌํ˜„์ฒด์ž…๋‹ˆ๋‹ค [8, 22-24]. ์ด๋•Œ ์†Œ์Šค ์ฝ”๋“œ ์˜์กด์„ฑ์€ ํ•ญ์ƒ ์™ธ๋ถ€(์ €์ˆ˜์ค€)์—์„œ ๋‚ด๋ถ€(๊ณ ์ˆ˜์ค€ ์ •์ฑ…)๋ฅผ ํ–ฅํ•ด์•ผ ํ•œ๋‹ค๋Š” '์˜์กด์„ฑ ๊ทœ์น™'์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค [25]. * **๋‹ค์–‘ํ•œ ์‚ฐ์—…์˜ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ:** HTML(๊ตฌ์กฐ), CSS(ํ‘œํ˜„), JS(๋™์ž‘)์˜ ์›น ํ‘œ์ค€ ๊ธฐ์ˆ  [26, 27], ๋กœ๋ณดํ‹ฑ์Šค ์ œ์–ด ์‹œ์Šคํ…œ์—์„œ์˜ ์„ผ์„œ(์ž…๋ ฅ), ์ปจํŠธ๋กค๋Ÿฌ(๋‡Œ), ์•ก์ถ”์—์ดํ„ฐ(๊ทผ์œก) ๋ถ„๋ฆฌ [28], ๊ฑด์ถ• ์‚ฐ์—…์—์„œ์˜ ๋ชจ๋“ˆ๋Ÿฌ ํ†ตํ•ฉ ๊ฑด์„ค(MiC) [29] ๋“ฑ ๋ฌผ๋ฆฌ์ , ์‹œ์Šคํ…œ์  ๋ณต์žก์„ฑ์„ ๋‹ค๋ฃจ๋Š” ๊ด‘๋ฒ”์œ„ํ•œ ์˜์—ญ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[แ„‹แ…ณแ†ผแ„Œแ…ตแ†ธแ„ƒแ…ฉแ„‹แ…ช แ„€แ…งแ†ฏแ„’แ…กแ†ธแ„ƒแ…ฉ (Cohesion and Coupling)|์‘์ง‘๋„์™€ ๊ฒฐํ•ฉ๋„ (Cohesion and Coupling]], ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ (Clean Architecture), [[แ„ƒแ…กแ†ซแ„‹แ…ตแ†ฏ แ„Žแ…ขแ†จแ„‹แ…ตแ†ท แ„‹แ…ฏแ†ซแ„Žแ…ตแ†จ (Single Responsibility Principle)|๋‹จ์ผ ์ฑ…์ž„ ์›์น™ (Single Responsibility Principle]], [[แ„‹แ…ดแ„Œแ…ฉแ†ซแ„‰แ…ฅแ†ผ แ„€แ…ฒแ„Žแ…ตแ†จ (Dependency Rule)|์˜์กด์„ฑ ๊ทœ์น™ (Dependency Rule]] - **Projects/Contexts:** ๋„ทํ”Œ๋ฆญ์Šค ์ฝ”์Šค๋ชจ์Šค ํ”Œ๋žซํผ (Netflix Cosmos Platform), [[แ„‰แ…ณแ„‘แ…ฉแ„แ…ตแ„‘แ…กแ„‹แ…ต แ„Œแ…กแ„‹แ…ฒแ†ฏแ„Œแ…ฅแ†จ แ„‡แ…ฎแ†ซแ„ƒแ…ข แ„†แ…ฉแ„ƒแ…ฆแ†ฏ แ„†แ…ตแ†พ แ„†แ…กแ„‹แ…ตแ„แ…ณแ„…แ…ฉ แ„‘แ…ณแ„…แ…ฉแ†ซแ„แ…ณแ„‹แ…ฆแ†ซแ„ƒแ…ณ (Spotify Squads and Micro Frontends)|์Šคํฌํ‹ฐํŒŒ์ด ์ž์œจ์  ๋ถ„๋Œ€ ๋ชจ๋ธ ๋ฐ ๋งˆ์ดํฌ๋กœ ํ”„๋ก ํŠธ์—”๋“œ (Spotify Squads and Micro Frontends]], ํ™”์‹ ์‚ฐ ๋ณ‘์› ๋ชจ๋“ˆ๋Ÿฌ ํ†ตํ•ฉ ๊ฑด์„ค (Huoshenshan Hospital Modular Construction) - **Contradictions/Notes:** ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ๋Š” ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ์„ ๋‚ฎ์ถ”์ง€๋งŒ, ๋งน๋ชฉ์ ์œผ๋กœ ์ถ”๊ตฌํ•˜์—ฌ ๊ณผ๋„ํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•  ๊ฒฝ์šฐ ํ•จ์ˆ˜ ํ˜ธ์ถœ์˜ ๊นŠ์ด ์ฆ๊ฐ€, ๋„คํŠธ์›Œํฌ ์ง€์—ฐ, ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ์˜ค๋ฒ„ํ—ค๋“œ ๋“ฑ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [30]. ๋˜ํ•œ ์ง€๋‚˜์นœ ์ถ”์ƒํ™”๋Š” ๊ฐœ๋ฐœ์ž๋ฅผ ๋ฏธ๊ถ์— ๋น ๋œจ๋ ค ๊ฐ€๋…์„ฑ์„ ์ €ํ•˜์‹œํ‚ค๋Š” '์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง'์˜ ๋ถ€์ž‘์šฉ์„ ๋‚ณ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์œ ์‚ฌ ์ฝ”๋“œ๊ฐ€ ์ตœ์†Œ 3๋ฒˆ ์ด์ƒ ์ค‘๋ณต๋  ๋•Œ ์ถ”์ƒํ™”๋ฅผ ๊ณ ๋ คํ•˜๋Š” "[[Rule of Three|Rule of Three]]"๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์‹ค๋ฌด์ ์ธ ๋ถ„๋ฆฌ์˜ ์ž„๊ณ„์ ์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค [31, 32]. --- *Last updated: 2026-04-18* ---