# ๐Ÿ—๏ธ ์‹œ์Šคํ…œ ์„ค๊ณ„ ์›์น™: [ํ”„๋กœ์ ํŠธ๋ช…] ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜ ๊ฐ€์ด๋“œ๋ผ์ธ ## ๐ŸŽฏ ๋ชฉํ‘œ: ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ (Separation of Concerns - SoC)์˜ ๊ทน๋Œ€ํ™” ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ ๋ถ€๋ถ„์ด ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ์„œ๋กœ์—๊ฒŒ ์ตœ์†Œํ•œ์˜ ์˜ํ–ฅ๋งŒ ์ฃผ๋„๋ก ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ### ๐Ÿงฉ ํ•ต์‹ฌ ๋ ˆ์ด์–ด ์ •์˜ 1. **Domain Engine Layer (ํ•ต์‹ฌ ๊ทœ์น™):** * **์—ญํ• :** ๊ฒŒ์ž„/์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ ๋ชจ๋“  ๋ฌผ๋ฆฌ์  ๊ทœ์น™(์ถฉ๋Œ, ์ค‘๋ ฅ, ์ ์ˆ˜ ๊ณ„์‚ฐ ๋“ฑ)์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. **์™ธ๋ถ€ ํ™˜๊ฒฝ์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.** * **๊ตฌํ˜„ ์›์น™:** ๋ฐ˜๋“œ์‹œ Web Worker์™€ ๊ฐ™์€ ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ์—์„œ ๊ตฌ๋™ํ•˜์—ฌ ๋ฉ”์ธ UI ์Šค๋ ˆ๋“œ์˜ ๋ถ€ํ•˜๋ฅผ ๋ถ„๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 2. **State Management Layer (์ง„์‹ค์˜ ์ถœ์ฒ˜):** * **์—ญํ• :** ์‹œ์Šคํ…œ์ด ํ˜„์žฌ ์–ด๋–ค ์ƒํƒœ์ธ์ง€(State)์— ๋Œ€ํ•œ ๋‹จ ํ•˜๋‚˜์˜ ๊ณต์‹ ๊ธฐ๋ก์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์€ ์˜ค์ง ์ด ๋ ˆ์ด์–ด๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. * **์›์น™:** **๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์› (Single Source of Truth, SSOT)** ์›์น™ ์ค€์ˆ˜. 3. **Presentation Layer (๋ Œ๋”๋ง):** * **์—ญํ• :** State Manager๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๋ฐ›์•„์™€์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์ ˆ๋Œ€ ํฌํ•จํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ## ๐Ÿ” ํ•ต์‹ฌ ์„ค๊ณ„ ํŒจํ„ด ์ ์šฉ ์ง€์นจ * **๋ช…๋ น์–ด/์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ†ต์‹ :** ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ์ง์ ‘์ ์ธ ํ˜ธ์ถœ(Direct Call) ๋Œ€์‹ , ๋ฉ”์‹œ์ง€/์ด๋ฒคํŠธ๋ฅผ ํ†ตํ•ด ๋А์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (Decoupling).