ํฌ๋ฆฌ์์ดํฐ๋ธ ํ๋ก๊ทธ๋๋จธ ๋ ํ๊ฐ
์ฐ๊ตฌ์๋ค์ ์ฐฝ์์ฑ๊ณผ ์ฌ๋ง๋ฅ ์ฌ์ด์ ๋ณ์ ์ธ ์ฐ๊ด์ฑ์ผ๋ก ์ธํด ๊ณตํฌ ๊ด๋ฆฌ ์ด๋ก (terror management theory)์ด๋ผ๊ณ ํ๋, ๋ฃ๊ธฐ๋ง ํด๋ ๋ฌด์์ด ์ด๋ก ์ ๊น์ด ์ฐ๊ตฌํ๋ ค๋ ๋๊ธฐ๋ฅผ ๊ฐ๊ฒ ๋์์ต๋๋ค.
ํฌ๋ฆฌ์์ดํฐ๋ธ ํ๋ก๊ทธ๋๋จธ์์๋ ์ ํ์ ์ธ ํ๊ฒฝ์ ์์ ๋ ์ฐฝ์์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํ์ด๋๊ฐ๋ค๊ณ ํ๋ค.
์ฃผ๋ก ๊ณผ๊ฑฐ์ ๊ฒ์๋ค์ ์์ ๋ก ๋ง์ด ๋๋๋ฐ, ๊ณผ๊ฑฐ์ ๊ฒ์๋ค์ ๊ฒ์ํฉ์ด๋ RAM์ ์ฉ๋์ด ๋ฌด์ฒ ์ ์๊ธฐ ๋๋ฌธ์ ์ง๊ธ์ฒ๋ผ CQRS๋, Auto Scale์ด๋ ๊ทธ๋ฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ๋ถํ ํ๊ฒฝ์์ ์๋น์ค์ ํ์ง๊ณผ ์ ์ง๋ณด์์ ์ ๊ฒฝ์ ์ฐ๋ ๊ฒ ์๋๋ผ ์ ๋ง๋ก, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ทนํ๊น์ง ์ฌ์ฉํ๋ ํ๊ฒฝ์์ ๊ด์ฐฎ์ ํ์ง์ ์ ํ์ ์์ฐํด์ผ ํ๋๋ฐ, ๊ทธ๋์ ๊ณผ๊ฑฐ์ ๊ฒ์ ๋ช ์๋ค์ ์๊ฐํ๊ณ ์๋ค.
์ ํ๋ ์ฉ๋ ์์์ ํ๋ ์ด์ด๊ฐ ๊ฒ์์ด ๋๋ฆฌ๊ณ ๋ฐฉํด๋๋ค, ๊ฒ์ ์ฐ์ถ์ด ๋จ์ํ๋ค ๋ผ๋ ์๋ฆฌ๋ฅผ ๋ฃ์ง ์๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ๋ฅผ ํ๋ฉด์ ๋ฉ์ง ์ฐ์ถ์ ํด์ผํ๋ โ๋น์ฐํโ ๋ ธ๋ ฅ๋ค์ด ์์๊ณ , ๊ทธ๋์ ์ง๊ธ ์๋์ ์ปดํจํฐ ์ฌ์์ด ์ฌ๋ผ๊ฐ ๋งํผ AAA๊ฒ์๋ง ๋ง๋๋ ๊ฒ์ด ์๋๋ผ ํฝ์ ์ํธ ๋ผ๋ ๋ถ์ผ๊ฐ ๋ง๋ค์ด ์ง ์ ์์๋ค๊ณ ํ๋ค.
์์ญ์ด ์ฌ์ ๋น๋ฐ - ๋๋ฌด์ํค (namu.wiki) ์ ๊ฐ๋ฐํ ๊ฐ๋ฐํ์ ์ฌ๋ก๋ฅผ ์๊ฐํ๊ธฐ๋ ํ๊ณ , PICO-8 Fantasy Console (lexaloffle.com) ๊ฐ์ lua ๊ธฐ๋ฐ ๊ฐ์ ์ปดํจํฐ๋ฅผ ์๊ฐํ๊ธฐ๋ ํ๋ค.
์ด PICO-8์ ์ด์ด์ด๊ฒฝ๋ ๊ฐ์ ์ปดํจํฐ๋ก์, ๋ธ๋ผ์ฐ์ ์์๊น์ง ์คํ๊ฐ๋ฅํ ๊ฒ์์ ๋ง๋ค ์ ์๋ค๊ณ ํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋ฃ์ด๊ณ , ์์ด ๋ ํผ๋ฐ์ค๊ฐ ํ๋ถํ๋ค๊ณ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด .NET ๊ฐ๋ฐ์๋ก์ ์ฐฝ์์ ์ธ ๋ฐฉ๋ฒ์ ๋ฌด์์ธ๊ฐ.
์ฐฝ์์ ์ธ ๋ฐฉ๋ฒ์ด๋ ์๋์จ ๊ฐ์ ์ฒ์ฌ๋ฅผ ์ผ์ปซ๋ ๊ฒ์ด ์๋๋ผ ์ฌํ์ ์ผ๋ก ์ธ์ ๋ฐ์์ ๋ ์ฐฝ์์ ์ธ ํ๋์ผ๋ก ์ธ์ ๋ฐ๋๋ค๊ณ ํ๋ค.
IT ์ํํธ์จ์ด ์ธ์์์ ํํ ๋ฐฉ๋ฒ๋ก ์ค ํ๋์ด์ง๋ง, ๋ด๊ฐ ์ํ ์ง๋จ์์๋ ์ต์ด์ ๋์ ์ด์๊ณ wow point ๋ผ๊ณ ์๊ฐ๋ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ผ๋ฉด, ๊ทธ ์ง๋จ์์๋ ๋ด๊ฐ ์ฐฝ์์ ์ธ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ ์ ์๋ค๋ ๊ฒ์ด๋ค.
๋๋ WPF์ MVVM ํจํด ์ญ์ ์ด๋ฐ ๊ฒ์ด๋ผ๊ณ ์๊ฐ์ด ๋ค์๋ค.
WPF๋ฅผ ๊ฐ๋ฐํ๋ฉด์ MVVM์ ๋ํ ์๋ฃ๋ฅผ ๋๊ตฌ๋ ์ ํ๊ณ , MS์์ ๊ถ์ฅํ๋ ๋ฐฉ์์ด๋ฉฐ, ๊ทธ๊ฑธ ํ์ ๋ ์ข๋ค๋ ์ฌ์ค์ ๋๊ตฌ๋ ์์ง๋ง ์ฝ๊ฒ ์ ์ฉํ์ง ๋ชปํ๋ค.
ํ์ง๋ง ์ด ์ฑ ์ ๋ณด๋ฉด์ MVVM ์ด๋ผ๋ ๊ฒ์ด ์ ํ ์ ์ธ ํ๊ฒฝ์ด๋ผ๊ณ ๊ฐ์ ์ ํ๋ค๋ฉด, ์ด ์ ์ฝ์ ์ฐ๋ฆฌ์๊ฒ ์ง๋จ์์์ ์ฐฝ์์ ์ธ ๋ฐฉ๋ฒ๊ณผ ์ฑ์ฅ์ ๊ฐ์ ธ๋ค ์ค ๊ฒ์ด๊ณ ์ฌ๊ธฐ๊ฐ ํ์ฌ๋ผ๋ฉด, ์ปค๋ฆฌ์ด๋ก ์ธ์ ๋ฐ์ ์ ์์ ๊ฒ์ด๋ค.
๋๋ ์ด๋ณด๋ค์๊ฒ MVVM์ ํ๋ จํ๋ ๋จ๊ณ์์๋ Zero Code Behind ๋ฅผ ๊ถ์ฅํ๋ผ๊ณ ํ๋ค. MVVM์ ์ํํด์ ๋๋ฌํ๊ณ ์ ํ๋ ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ ์ด๋ฏธ ๋์์๋ค.
๋ฐ๋ก ์ ์ง๋ณด์์ ํจ์จํ๋ฅผ ์ํด์๋ค.
MVVM์ ์ ์ง๋ณด์๋ฅผ ๋นผ๋ฉด ์์ฒด๋ผ๊ณ ํ ์ ์๋ค. ๊ทธ๋ฐ๋ฐ ๊ทธ ์ ์ง๋ณด์ ๊ธฐ๋ฒ์ด OOP์ ํ์ฅ ๊ฐ๋ ์ด๋ผ๊ณ ํ ์ ๋๋ก ๋ง์ด ๋ฎ์์๊ณ , ์บก์ํ๋ก์ ๊ทธ๊ฒ์ ํํํ๊ฒ ๋๋ค.
Code Behind์์ Event๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ์ํ ๊ธฐ๋ฒ์ผ๋ก Converter, Behavior, Attached Property ๊ฐ์ ๊ฐ๋ ๋ค์ด ๊ทธ๋ฌํ ๊ฒ์ด๋ค.
๋ํ MVVM์ ํ๋ฉด์ ํจ๊ป ํ๋ฉด ์ข์ ๊ฐ๋ ๋ค์ IoC Container, View Locator, ViewModel Factory Method, Service ๊ฐ์ ๊ฐ๋ ๋ค์ผํ ๋ฐ, ์ฌ์ค Windows Application๋ง ๊ฐ๋ฐํด์ค๊ณ Web ๊ฐ๋ฐ์ ์ ํ ํด๋ณด์ง ์์ ๊ฐ๋ฐ์๋ผ๋ฉด ์ด ๊ฐ๋ ๋ค์ ์ดํดํ๊ธฐ ์ด๋ ต๊ณ ์ ํ์ํ์ง๋ ์ ์ ์๋ค.
๋๋ Web๊ฐ๋ฐ์ ์ํด๋ดค์ผ๋, Web Service๋ฅผ ๊ตฌ์ฑํ๋ Container๋ค์ ๊ฐ๋ฐํ๋ฉด์ Web์ ๋ฐฉ๋ฒ๋ก ๋ค์ ๋ง์ด ๋ฐ๋๊ธฐ ๋๋ฌธ์ ์ดํดํ๋ค.
Windows Application์ ๋ด PC์์ ๋์ํ๊ธฐ ๋๋ฌธ์ HDD, SSD, CPU, RAM์ด ๋ชจ๋ ๋์ ๊ฒ์ด๋ค.
ํ์ง๋ง Web Application์ Server๋ผ๋ ์ ํ์ ์ธ ํ๊ฒฝ์์ ๋ค์์ ์ ์ ๊ฐ ํ๋ํ๋ ๊ฒ์ ๊ณ ๋ คํด์ผํ๊ธฐ ๋๋ฌธ์ ๋ฐ์คํฌํฑ ์์ฉํ๋ก๊ทธ๋จ์ ๋นํด ์ ํ์ ์ธ ํ๊ฒฝ์ด์๊ณ , ๊ทธ ๋๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ธ, Container Orchestration ๊ฐ์ Scaling ๊ธฐ๋ฒ๋ค์ด ๋ฑ์ฅํ์ ๊ฒ์ด๋ค.
๋ฌด์ค๋จ ๋ฐฐํฌ๋ผ๊ณ ๋ถ๋ฆฌ๋ Zero-downtime Deployment ์ญ์ ๊ฐ์ ๋งฅ๋ฝ์์ ์ ํ๋ ํ๊ฒฝ์์ User Experience๋ฅผ ๋์์ง ์๊ฒ ํ๊ธฐ ์ํด์ ๋์จ ๊ธฐ๋ฒ๋ค์ผ ๊ฒ์ด๋ค.
Go ๊ฐ์ ์ธ์ด์์๋ Green Thread ๊ฐ๋ ์ผ๋ก CPU Core๊ฐ ์ ํํ ํ๊ฒฝ์์๋ Multi Threading(Go-Routine)์ ํจ๊ณผ์ ์ผ๋ก ๊ฐ๋ฅ์ผํ๋ ๊ธฐ๋ฒ๋ ๊ทธ๋์ ๋ฑ์ฅํ์ ๊ฒ์ด๋ค. ์ผ๋ถ๋ฌ ๋๋ค์๊ฐ์ ์์ฆ์ ์ผ๋ฐ์ ์ธ ๊ฐ๋ ๋ค์ ๋นผ๊ณ ์ ์ ํค์๋๋ก ๊ฐ๋ฐ์๋ง ์ง์คํ๋ค๋ ์ปจ์ ์ด ๊ทน๋๋ก ๊ฐ๋ณ๊ณ ํจ์จํ ๋ ์ธ์ด๋ฅผ ๋ง๋ ๊ฒ ๊ฐ๋ค. (๋์ Go์ ๋ํ ์ง๋์น ํ์์ผ์๋โฆ์ค์ ๋ก๋ Gohper๋ค๋ ๊ทธ๋ ๊ฒ ์๊ฐํ ์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค.)
๋ค์ ๋ณธ๋ก ์ผ๋ก ๋์์์ WPF๋ฅผ Zero Code Behind๋ก ๊ฐ๋ฐํด๋ณธ๋ค๋ ์ ํ์ ์ธ ํ๊ฒฝ์ ํ๋ จํ๋ ์ฌ๋์๊ฒ ์ฐฝ์์ ์ธ ๋ฐฉ๋ฒ์ ๊ฐ์ ธ์ ์ค ๊ฒ์ด๊ณ , ์ฌ์ค ๊ทธ ์ฐฝ์์ ์ธ ๋ฐฉ๋ฒ์ ์ด๋ฏธ ๊ฐ๋ฐ์ ๊ณ์์ ์ผ๋ฐ์ ์ธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ ๊ฒ์ด๋ค.
์ผ๋ฐ์ ์ธ ์ด๋ก ์ ๋ฐ์๋ค์ธ ๊ฐ๋ฐ์๋ ๋งค์ฐ ์ค์ํ๋ค ์ฌ์ฉํ๋ ์ธ์ด๊ฐ ์ผ๋ฐ์ ์ผ๋ก IT ์ํํธ์จ์ด ์ ๊ณ์์ ํต์ฉ๋๋ ๋จ์ด๋ค์ผ ๊ฒ์ด๋ค. ๋ง์น ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ์ Ubiquitous Language ์ฒ๋ผ.
๊ทธ๋ฐ ์ผ๋ฐ์ ์ธ ๋จ์ด๋ค์ด ์์ด๊ณ ์์ฌ์ Knowledge-base๊ฐ ๋ ๊ฒ์ด๊ณ ํน์ ๋ถ์ผ์ ์ฐฝ์์ ์ธ ๊ฐ๋ฐ์๊ฐ ๋๋ ค๋ฉด ์ฝฉ์ฌ์๋ฐ ์ฝฉ๋๊ณ ํฅ์ฌ์๋ฐ ํฅ๋๋ฏ, ๊ทธ๋ฐ ๊ธฐ๋ฐ ์ง์๋ค์ด ๋ง์์ผ ์ฐฝ์์ ์ธ ์์ด๋์ด๊ฐ ์ ์์ ๊ฒ์ด๊ณ ๋ ๋์ ๋ ๋ฒจ๋ก ๋์ฝํ ์ ์์ ๊ฒ์ด๋ค.
์์ง ๋ฐ ๋ฐ์ ๋ชป๋ดค์ง๋ง ์ด์ ์ ๋ณธ ๊ฒ๊ณผ ์ดํ์ ๋ณผ ๊ฒ๋ค๋ Slog๋ก ์ ์ฅํด์ผ๊ฒ ๋ค.