--- id: P-REINFORCE-AUTO-1BA61A category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ(SoC)" --- # [[๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ(SoC)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ(SoC, Separation of Concerns)๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์„ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์ด๋‚˜ ์ฑ…์ž„(๊ด€์‹ฌ์‚ฌ)์—๋งŒ ์ง‘์ค‘ํ•˜๋Š” ์ž‘๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ๋…๋ฆฝ์ ์ธ ๋ชจ๋“ˆ๋กœ ๋‚˜๋ˆ„๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง์˜ ํ•ต์‹ฌ ์„ค๊ณ„ ์›์น™์ด๋‹ค [1-5]. 1974๋…„ ์—์ธ ํ—ˆ๋ฅด ๋ฐ์ดํฌ์ŠคํŠธ๋ผ(Edsger W. Dijkstra)๊ฐ€ ์ฒ˜์Œ ์ œ์•ˆํ•œ ๊ฐœ๋…์œผ๋กœ, ๋ณต์žก์„ฑ์„ ํ†ต์ œํ•˜๊ณ  ์ฝ”๋“œ์˜ ๋ชจ๋“ˆ์„ฑ, ๊ฐ€๋…์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ํ™•์žฅ์„ฑ ๋ฐ ์žฌ์‚ฌ์šฉ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค [3, 4, 6, 7]. ์ด ์ฒ ํ•™์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„์˜ ๋‹จ์ผ ์ฑ…์ž„ ์›์น™(SRP)๊ณผ ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™(ISP) ๋“ฑ ํ˜„๋Œ€ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ด ํƒ„์ƒํ•˜๋Š” ์ง์ ‘์ ์ธ ๊ทผ๊ฐ„์ด ๋˜์—ˆ๋‹ค [5, 8-10]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **์›์น™์˜ ๊ธฐ์›๊ณผ ์ง„ํ™”:** ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ๋ผ๋Š” ์šฉ์–ด๋Š” ์—์ธ ํ—ˆ๋ฅด ๋ฐ์ดํฌ์ŠคํŠธ๋ผ๊ฐ€ 1974๋…„ ๋…ผ๋ฌธ "๊ณผํ•™์  ์‚ฌ๊ณ ์˜ ์—ญํ• ์— ๊ด€ํ•˜์—ฌ"์—์„œ '๋‹จ์ผ ํŠธ๋ž™์ ์ด๋ฉด์„œ ๋™์‹œ์— ๋ฉ€ํ‹ฐ ํŠธ๋ž™์ ์ธ ์‚ฌ๊ณ ๋ฐฉ์‹'์„ ํ†ตํ•ด ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๊ณ ๋ฆฝ์‹œ์ผœ ์ง‘์ค‘ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋ฉด์„œ ๋“ฑ์žฅํ–ˆ๋‹ค [11, 12]. ์ดํ›„ 1960~70๋…„๋Œ€์˜ ๊ตฌ์กฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋ถ€ํ„ฐ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP) ์‹œ๋Œ€๋ฅผ ๊ฑฐ์ณ MVC ํŒจ๋Ÿฌ๋‹ค์ž„, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA) ๋“ฑ ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜๋Š” ํ•„์ˆ˜ ์›์น™์œผ๋กœ ์ง„ํ™”ํ•ด์™”๋‹ค [8, 10, 13, 14]. * **ํ•ต์‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜ (์‘์ง‘๋„์™€ ๊ฒฐํ•ฉ๋„):** SoC๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ์ฃผ์š” ์ฒ™๋„๋Š” ๋†’์€ ์‘์ง‘๋„(High Cohesion)์™€ ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„(Low/Loose Coupling)์ด๋‹ค [3, 15-17]. ์‘์ง‘๋„๋Š” ๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ ์š”์†Œ๋“ค์ด ํ•˜๋‚˜์˜ ๋ช…ํ™•ํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์–ผ๋งˆ๋‚˜ ๋ฐ€์ ‘ํ•˜๊ฒŒ ๊ด€๋ จ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ฒฐํ•ฉ๋„๋Š” ๋ชจ๋“ˆ ๊ฐ„์˜ ์ƒํ˜ธ ์˜์กด์„ฑ ์ •๋„๋ฅผ ๋œปํ•œ๋‹ค [3, 18, 19]. ์ข‹์€ ์„ค๊ณ„๋Š” ๋‚ด๋ถ€ ๊ฒฐ์†๋ ฅ์ธ ์‘์ง‘๋„๋ฅผ ๊ทน๋Œ€ํ™”ํ•˜๊ณ  ์™ธ๋ถ€ ๊ฐ„์„ญ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฐํ•ฉ๋„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ์ตœ์ ํ™”๋ฅผ ์ง€ํ–ฅํ•œ๋‹ค [20, 21]. * **์ ์šฉ ์ˆ˜์ค€๊ณผ ๋‹ค์–‘ํ•œ ์‚ฌ๋ก€:** * **ํ•จ์ˆ˜ ๋ฐ ๋ชจ๋“ˆ ์ˆ˜์ค€:** ๊ฐ ํ•จ์ˆ˜๋‚˜ ๋ชจ๋“ˆ์€ ๋‹จ์ผ ์ž‘์—…์— ์ง‘์ค‘ํ•˜๋„๋ก ๋ถ„๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๊ฐ€ ์ŠคํŒŒ๊ฒŒํ‹ฐ์ฒ˜๋Ÿผ ์–ฝํžˆ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๊ฐ€๋…์„ฑ๊ณผ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค [22-24]. * **์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ์ˆ˜์ค€:** ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง(๋‡Œ)๊ณผ ์™ธ๋ถ€ ์ธํ”„๋ผ(ํŒ”๋‹ค๋ฆฌ)๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ด๋‹ค [25]. ์›น ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—์„œ๋Š” ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ณ„์ธต, ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ณ„์ธต์œผ๋กœ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์˜์กด์„ฑ์ด ๋‹จ๋ฐฉํ–ฅ(์ฃผ๋กœ ๋‚ด๋ถ€ ํ•ต์‹ฌ ๋„๋ฉ”์ธ์„ ํ–ฅํ•ด)์œผ๋กœ ํ๋ฅด๋„๋ก ์„ค๊ณ„ํ•œ๋‹ค [21, 26, 27]. * **์›น ํ”„๋ก ํŠธ์—”๋“œ:** ์ „ํ†ต์ ์ธ HTML(๊ตฌ์กฐ), CSS(ํ‘œํ˜„), JavaScript(๋™์ž‘)์˜ ์—ญํ• ๋ณ„ ๋ถ„๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์ง๊ด€์ ์ธ SoC ์‚ฌ๋ก€์ด๋‹ค [28-30]. ์ตœ๊ทผ์—๋Š” ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ(Feature) ๋‹จ์œ„๋กœ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๋Š” FSD(Feature-Sliced Design) ๋ฐฉ์‹ ๋“ฑ์œผ๋กœ ์ง„ํ™”ํ•˜๊ณ  ์žˆ๋‹ค [31, 32]. * **๋กœ๋ณดํ‹ฑ์Šค ์ œ์–ด ์‹œ์Šคํ…œ:** ๋กœ๋ด‡ ๋˜ํ•œ ์ธ์ง€์  ํ•ด๋ถ€์™€ ๋™์ผํ•˜๊ฒŒ ์™ธ๋ถ€ ์ž๊ทน์„ ๊ฐ์ง€ํ•˜๋Š” ์„ผ์„œ(๋ˆˆ/๊ท€), ์˜์‚ฌ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ์ปจํŠธ๋กค๋Ÿฌ(๋‡Œ), ๋ฌผ๋ฆฌ์  ์šด๋™์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์•ก์ถ”์—์ดํ„ฐ(๊ทผ์œก)๋กœ ํ•˜๋“œ์›จ์–ด์  ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ตฌ๋™๋œ๋‹ค [33, 34]. * **์ฃผ์š” ์ด์ :** ์‹œ์Šคํ…œ์„ ๋ชจ๋“ˆํ™”ํ•˜๋ฉด ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํ™•์žฅํ•  ๋•Œ ๋‹ค๋ฅธ ์ฝ”๋“œ์— ๋ฏธ์น˜๋Š” ๋ถ€์ž‘์šฉ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์–ด ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋œ๋‹ค [35-37]. ์—ฌ๋Ÿฌ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์„ ๋งก์•„ ์„œ๋กœ ๋ฐฉํ•ด๋ฐ›์ง€ ์•Š๊ณ  ๋ณ‘๋ ฌ(๋™์‹œ) ๊ฐœ๋ฐœ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ [35, 38, 39], ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ UI ๋“ฑ ์™ธ๋ถ€ ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ๊ฒฉ๋ฆฌ์‹œ์ผœ ๋…๋ฆฝ์ ์ด๊ณ  ์‹ ์†ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ์กฐ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค [27, 40, 41]. * **ํ•œ๊ณ„ ๋ฐ ์‹ค๋ฌด์  ๊ณ ๋ ค์‚ฌํ•ญ:** ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋งน๋ชฉ์ ์ด๊ณ  ๊ณผ๋„ํ•˜๊ฒŒ ๋ถ„๋ฆฌ(Over-engineering)ํ•˜๋ฉด ์˜คํžˆ๋ ค ๊ณ„์ธต ๊ฐ„ ํ†ต์‹  ๋ฐ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ฆ๊ฐ€ํ•˜์—ฌ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์„ ๋–จ์–ด๋œจ๋ฆด ์ˆ˜ ์žˆ๋‹ค [42, 43]. ์ธต์„ ๋„ˆ๋ฌด ์–‡๊ฒŒ ๋‚˜๋ˆ„๊ฑฐ๋‚˜ ๊ณผ๋„ํ•œ ์ถ”์ƒํ™”๋ฅผ ๋„์ž…ํ•  ๊ฒฝ์šฐ, ์‹ค์ œ ๊ตฌํ˜„์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๋งŽ์€ ๊ณ„์ธต์„ ๋„˜๋‚˜๋“ค์–ด์•ผ ํ•˜๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž์˜ ์ธ์ง€์  ๋ถ€ํ•˜๊ฐ€ ์˜คํžˆ๋ ค ๊ฐ€์ค‘๋  ์œ„ํ—˜(์ธ๋””๋ ‰์…˜์˜ ์ €์ฃผ)์ด ์กด์žฌํ•œ๋‹ค [42, 44, 45]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[๋‹จ์ผ ์ฑ…์ž„ ์›์น™(SRP)]], ์‘์ง‘๋„(Cohesion)์™€ ๊ฒฐํ•ฉ๋„(Coupling), ๊ณ„์ธตํ™” ์•„ํ‚คํ…์ฒ˜(Layered Architecture), ๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ(MVC), [[๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(AOP)]] - **Projects/Contexts:** ๋„ทํ”Œ๋ฆญ์Šค ์ฝ”์Šค๋ชจ์Šค(Cosmos) ํ”Œ๋žซํผ, ์Šคํฌํ‹ฐํŒŒ์ด ์Šค์ฟผ๋“œ(Squad) ๋ฐ ๋งˆ์ดํฌ๋กœ ํ”„๋ก ํŠธ์—”๋“œ, ํ™”์‹ ์‚ฐ(Huoshen Mountain) ๋ณ‘์› ๋ชจ๋“ˆ๋Ÿฌ ํ†ตํ•ฉ ๊ฑด์„ค(MiC) - **Contradictions/Notes:** * "SoC๋ฅผ ๋„์ž…ํ•˜๋ฉด ์œ ์ง€๋ณด์ˆ˜์™€ ๋ชจ๋“ˆ์„ฑ์ด ํ–ฅ์ƒ๋œ๋‹ค"๋Š” ์›์น™์ด ์ผ๋ฐ˜์ ์ด๋‚˜, "์ง€๋‚˜์นœ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ์™€ ์ถ”์ƒํ™”๋Š” ๊ฐ„์ ‘ ์ฐธ์กฐ๋ฅผ ๋Š˜๋ฆฌ๊ณ  ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐ ์ฝ”๋“œ ์ถ”์ ์˜ ์–ด๋ ค์›€์„ ์œ ๋ฐœํ•˜์—ฌ ์‹ค๋ฌด์  ๋ณต์žก์„ฑ์„ ์˜คํžˆ๋ ค ๊ฐ€์ค‘์‹œํ‚จ๋‹ค"๋Š” ๊ฒฝ๊ณ ์™€ ์ƒ์ถฉํ•˜๋Š” ์ง€์ ์ด ์žˆ๋‹ค [42-45]. * ๊ด€์‹ฌ์‚ฌ์˜ ์„ ์ œ์ ์ธ ๋„์ถœ์ด ํ•„์ˆ˜์ ์ด๋ผ๋Š” ๊ฒฌํ•ด๊ฐ€ ์žˆ๋Š” ๋ฐ˜๋ฉด, ๋‹ค๋ฅธ ์‹ค๋ฌด์ž๋“ค์€ ์ดˆ๊ธฐ์— ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ฏธ๋ฆฌ ์˜ˆ์ธกํ•ด ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊นŒ์šฐ๋ฉฐ, ์ฝ”๋“œ๊ฐ€ ์ค‘๋ณต๋˜์–ด ๋‚˜ํƒ€๋‚  ๋•Œ(Rule of Three) ์‚ฌํ›„์ ์œผ๋กœ ๋ฆฌํŒฉํ† ๋ง์„ ํ†ตํ•ด ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ(DRY ๊ด€์ )์ด ํ˜„์‹ค์ ์ด๋ผ๋Š” ์ƒ๋ฐ˜๋œ ์ฃผ์žฅ์„ ํ•œ๋‹ค [45, 46]. --- *Last updated: 2026-04-18* ---