--- id: P-REINFORCE-AUTO-073A5E category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ 3๊ณ„์ธต ๊ตฌ์กฐ" --- # [[์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ 3๊ณ„์ธต ๊ตฌ์กฐ]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ 3๊ณ„์ธต ๊ตฌ์กฐ(3-Tier Architecture)๋Š” ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ(SoC) ์›์น™์— ๋”ฐ๋ผ ์‹œ์Šคํ…œ์„ ์ˆ˜ํ‰์ ์ธ ์ธต์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ๊ฐ ํŠน์ • ์ฑ…์ž„์„ ๋ถ€์—ฌํ•˜๋Š” ์ „ํ†ต์ ์ด๊ณ  ์˜ํ–ฅ๋ ฅ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ž…๋‹ˆ๋‹ค [1, 2]. ์ด ๊ตฌ์กฐ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต, ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ณ„์ธต, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ†ต์‹ ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ณ„์ธต์œผ๋กœ ์—„๊ฒฉํžˆ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค [2, 3]. ์ด๋Ÿฌํ•œ ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ํ•œ ๊ณ„์ธต์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋‹ค๋ฅธ ๊ณ„์ธต์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ์‹œ์Šคํ…œ์„ ๋ณด๋‹ค ๋ชจ๋“ˆํ™”ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ๋ฐ ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 4]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” 3๊ณ„์ธต์˜ ๊ตฌ์ฒด์ ์ธ ์—ญํ• ๊ณผ ์„ฑ๊ณต์ ์ธ ๊ตฌ์ถ•์„ ์œ„ํ•œ ๊ตฌํ˜„ ์›์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค [2, 3, 5, 6]. * **ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต (Presentation Layer):** * ์‹œ์Šคํ…œ์˜ ์ตœ์ƒ๋‹จ์— ์œ„์น˜ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)์™€ ๋ Œ๋”๋ง, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค [2, 3]. * ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์ž…๋ ฅ์„ ์บก์ฒ˜ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ฃผ๋กœ HTML, CSS ๋ฐ JavaScript ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค [2, 3]. * ์ด ๊ณ„์ธต์˜ ๊ตฌ์กฐ์šฉ ๋งˆํฌ์—… ๋ฐ ์‹œ๊ฐ์  ํ‘œํ˜„ ๋กœ์ง์€ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์ด๋‚˜ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™๊ณผ ์—„๊ฒฉํžˆ ๋ถ„๋ฆฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [6]. * **๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ณ„์ธต (Business Logic Layer / Domain Layer):** * ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์ •์˜ํ•˜๋Š” ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™, ๋กœ์ง ๋ฐ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํฌํ•จํ•˜๋Š” ์ค‘์‹ฌ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค [3, 6]. * ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต์œผ๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜จ ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ณ„์ธต๊ณผ์˜ ์ž‘์—…์„ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค [3]. * ์ฃผ๋กœ Node.js, Django, Spring๊ณผ ๊ฐ™์€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์Šคํฌ๋ฆฝํŠธ๋‚˜ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๋˜๋ฉฐ, ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต ๋ฐ ํ•˜์œ„ ์ธํ”„๋ผ์™€๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [2, 6]. * **๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ณ„์ธต (Data Access Layer / Persistence Layer):** * ์‹œ์Šคํ…œ์˜ ์ตœํ•˜๋‹จ์— ์œ„์น˜ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€์˜ ๋ชจ๋“  ํ†ต์‹  ๋ฐ CRUD(์ƒ์„ฑ, ์ฝ๊ธฐ, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ) ์ž‘์—…์„ ์ „๋‹ดํ•ฉ๋‹ˆ๋‹ค [2, 3]. * ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€์˜ ์„ธ๋ถ€ ๊ตฌํ˜„ ์‚ฌํ•ญ์œผ๋กœ๋ถ€ํ„ฐ ๊ฒฉ๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [3]. * ์ผ๋ฐ˜์ ์œผ๋กœ ORM(๊ฐ์ฒด ๊ด€๊ณ„ ๋งคํ•‘) ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ €์ˆ˜์ค€์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํ˜ธ ์ž‘์šฉ์„ ์ถ”์ƒํ™”ํ•ฉ๋‹ˆ๋‹ค [6]. * **๊ตฌํ˜„์„ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€ (Actionable Tips):** * **์—„๊ฒฉํ•œ ๊ณ„์ธต ๊ฐ„ ํ†ต์‹  ์ œ์–ด:** ๊ฐ ๊ณ„์ธต์€ ๋ฐ”๋กœ ์•„๋ž˜์— ์žˆ๋Š” ๊ณ„์ธต๊ณผ๋งŒ ํ†ต์‹ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต์ด ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ณ„์ธต์„ ์ง์ ‘ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ฒŒ ํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถฐ์•ผ ํ•ฉ๋‹ˆ๋‹ค [5]. * **์˜์กด์„ฑ ์ฃผ์ž… (Dependency Injection, DI) ํ™œ์šฉ:** ์ƒ์œ„ ๊ณ„์ธต์ด ํ•˜์œ„ ๊ณ„์ธต์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์™ธ๋ถ€์—์„œ ์˜์กด์„ฑ์„ ์ฃผ์ž…๋ฐ›๋„๋ก ๊ตฌํ˜„ํ•˜์—ฌ, ๋А์Šจํ•œ ๊ฒฐํ•ฉ์„ ์ด‰์ง„ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ์„ฑ์„ ํ–ฅ์ƒ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค [5]. * **๋ช…ํ™•ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜:** ๊ฐ ๊ณ„์ธต ๊ฐ„์— ๋ช…ํ™•ํžˆ ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๋”๋ผ๋„ ์ƒ์œ„ ๊ณ„์ธต์˜ ๋กœ์ง์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๊ตฌํ˜„์ฒด๋กœ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ (Separation of Concerns)]], [[์˜์กด์„ฑ ์ฃผ์ž… (Dependency Injection)]], [[MVC (Model-View-Controller)]], [[ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ (Clean Architecture)]] - **Projects/Contexts:** [[ํ˜„๋Œ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„]], [[์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ]] - **Contradictions/Notes:** 3๊ณ„์ธต ๊ตฌ์กฐ์™€ ๊ฐ™์€ ๊ณ„์ธตํ™” ์•„ํ‚คํ…์ฒ˜๋Š” ๋ช…ํ™•ํ•œ ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•ด ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋†’์—ฌ์ฃผ์ง€๋งŒ, ์ดˆ๊ธฐ ๊ฐœ๋ฐœ ์‹œ ๊ณ„์ธต๊ณผ ์ถ”์ƒํ™”๋ฅผ ์ •์˜ํ•˜๊ณ  ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ž์นซ ๊ณผ๋„ํ•œ ์—”์ง€๋‹ˆ์–ด๋ง(Over-Engineering)์œผ๋กœ ์ธํ•ด ์‹œ์Šคํ…œ ๊ตฌ์กฐ๊ฐ€ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋น„๋Œ€ํ•ด์งˆ ์œ„ํ—˜๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค [7]. --- *Last updated: 2026-04-18* ---