.NET Core ์ํคํ ์ฒ ์์ธํ ์์๋ณด๊ธฐ
๊ตฌ์ฑ ์์, ๋ฐํ์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํฅ์์ํค๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃจ๋ .NET Core ์ํคํ ์ฒ์ ๋ณต์ก์ฑ์ ์ดํด๋ณด์ญ์์ค. CLR, Roslyn ์ปดํ์ผ๋ฌ ๋ฑ์ ๋ํด ์์๋ณด์ธ์.

.NET Core๋ ๊ฐ๋ฐ์๊ฐ ๋ฐ์คํฌํฑ, ๋ชจ๋ฐ์ผ ๋ฐ ์น์ ๋น๋กฏํ ๋ค์ํ ํ๋ซํผ์ ์ํ ์ต์ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ ์ ์๋๋ก Microsoft์์ ๊ฐ๋ฐํ ํ๋ซํผ ๊ฐ ์คํ ์์ค ํ๋ ์์ํฌ์ ๋๋ค. ๋์ ์ดํ .NET Core๋ ๊ธฐ์กด .NET Framework์ ๋นํด ๋ช ๊ฐ์ง ์ด์ ์ ์ ๊ณตํ๋ ๊ฐ๋ ฅํ ํ๋ ์์ํฌ ๋ฐ ์์ฝ์์คํ ์ผ๋ก ๋ฐ์ ํ์ต๋๋ค. ์ด ๋ฌธ์์์๋ .NET Core ์ํคํ ์ฒ๋ฅผ ์์ธํ ์ดํด๋ณด๊ณ ๋ฐํ์, CLR(๊ณต์ฉ ์ธ์ด ๋ฐํ์) ๋ฑ์ ๋น๋กฏํ ๋ค์ํ ๊ตฌ์ฑ ์์๋ฅผ ์ดํด๋ด ๋๋ค.
.NET Core ๊ตฌ์ฑ ์์ ๋ฐ ๋ฐํ์
.NET Core ์ํคํ ์ฒ๋ ํจ๊ป ์๋ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ์์ง๋ ฅ ์๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ๊ณตํ๋ ์ฌ๋ฌ ๊ตฌ์ฑ ์์๋ก ๊ด๋ฒ์ํ๊ฒ ๋ถ๋ฅํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ตฌ์ฑ ์์์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
- ๋ฐํ์: ๋ฐํ์์ .NET Core ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ณ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ๊ฐ๋น์ง ์์ง ๋ฐ JIT(Just-In-Time) ์ปดํ์ผ๊ณผ ๊ฐ์ ํ์ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฝ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ: ์ฝ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฐ์ดํฐ ์ก์ธ์ค, ํ์ผ IO ๋ฐ ๋คํธ์ํฌ ํต์ ๊ณผ ๊ฐ์ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ .NET ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ API ์ ํ์ค ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- SDK: .NET Core SDK(์ํํธ์จ์ด ๊ฐ๋ฐ ํคํธ)๋ ์ปดํ์ผ, ํจํค์ง ๋ฐ ๋ฐฐํฌ๋ฅผ ํฌํจํ์ฌ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ธ์ค์์ ๊ฐ๋ฐ์๋ฅผ ์ง์ํ๋ ๋๊ตฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- CLI ๋๊ตฌ: .NET Core ๋ช ๋ น์ค ์ธํฐํ์ด์ค(CLI) ๋๊ตฌ๋ .NET ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑ, ๋น๋, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ๊ธฐ ์ํ ๋ช ๋ น์ค ์ ํธ๋ฆฌํฐ ์ธํธ์ ๋๋ค.
- CLR(๊ณต์ฉ ์ธ์ด ๋ฐํ์): CLR์ .NET ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ด๋ฆฌ๋๋ ์คํ ํ๊ฒฝ์ ์ ๊ณตํ๋ ์ญํ ์ ํ๋ .NET Core ์ํคํ ์ฒ์ ์ค์ํ ๊ตฌ์ฑ ์์์ ๋๋ค.
- Roslyn ์ปดํ์ผ๋ฌ: Roslyn ์ปดํ์ผ๋ฌ๋ C# ๋ฐ Visual Basic ์ปดํ์ผ๋ฌ์ ์คํ ์์ค ์ธํธ๋ก, .NET ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋๋ก ์ฝ๋ ๋ถ์ API๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด๋ฌํ ๊ตฌ์ฑ ์์ ์ธ์๋ .NET Core ๋ฐํ์์๋ ๊ฐ๋ฐ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํ๋ ์์ํฌ ๊ตฌ์ฑ ์์๋ง ํฌํจํ ์ ์๋ ๋ชจ๋์ ๋์์ธ์ด ์์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ๋ฐฐํฌ ํจํค์ง๊ฐ ์์์ง๊ณ ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค.
๊ณต์ฉ ์ธ์ด ๋ฐํ์(CLR)
CLR(๊ณต์ฉ ์ธ์ด ๋ฐํ์)์ .NET ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ด๋ฆฌํ ์คํ ํ๊ฒฝ์ ์ ๊ณตํ๋ .NET Core ์ํคํ ์ฒ์ ํต์ฌ ๊ตฌ์ฑ ์์์ ๋๋ค. CLR์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ์์ธ ์ฒ๋ฆฌ, ๋ณด์ ๋ฐ ์ฌ๋ฌ .NET ์ธ์ด๋ก ์์ฑ๋ ์ฝ๋ ์คํ์ ๋น๋กฏํ ๋ค์ํ ์ฑ ์์ ์ฒ๋ฆฌํฉ๋๋ค.
CLR์ ์ฃผ์ ๊ธฐ๋ฅ ์ค ํ๋๋ JIT(Just-In-Time) ์ปดํ์ผ๋ก, ๋ฐํ์ ์ ์ค๊ฐ ์ธ์ด(IL) ์ฝ๋๋ฅผ ๋์ ํ๋ซํผ์ ์ต์ ํ๋ ๊ธฐ๋ณธ ๊ธฐ๊ณ์ด ์ฝ๋๋ก ๋ณํํฉ๋๋ค. ์ด๋ฅผ ํตํด .NET ์ ํ๋ฆฌ์ผ์ด์ ์ ํฅ์๋ ์ฑ๋ฅ์ ๋ฌ์ฑํ๊ณ ํ๋ซํผ๋ณ ์ต์ ํ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
CLR์๋ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ ์ด์ ํ์ํ์ง ์์ ๋ ํ์๋๋๋ก ํ๋ GC(๊ฐ๋น์ง ์์ง๊ธฐ) ๋ ํฌํจ๋์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ฐ๋ฐ์๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ ํ์๊ฐ ์์ผ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ๋์ ๋๋ ๊ธฐํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ จ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ญ๋๋ค.
CLR์ ๋ ๋ค๋ฅธ ์ค์ํ ์ธก๋ฉด์ ์ธ์ด ๊ฐ ์ํธ ์ด์ฉ์ฑ์ ์ง์ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ค์ํ .NET ์ธ์ด(์: C#, VB.NET ๋ฐ F#)๋ก ์ฝ๋๋ฅผ ์์ฑํ๊ณ ๋์ผํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ธ์ด ๊ฐ ์ํธ ์ด์ฉ์ฑ์ ์ฌ๋ฌ ์ธ์ด๋ก ์์ฑ๋ ์ฝ๋ ์คํ์ ๊ด๋ฆฌํ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์ํ ๊ตฌ์ฑ ์์ ๊ฐ์ ์ผ๊ด๋ ๋์์ ๋ณด์ฅํ๋ CLR์ ๊ธฐ๋ฅ์ ํตํด ๊ฐ๋ฅํฉ๋๋ค.
CLR์ .NET Core ์ํคํ ์ฒ์์ ์ค์ํ ์ญํ ์ ํ๋ฉฐ .NET ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ๋ค์ํ .NET ์ธ์ด์ ๊ธฐ๋ฅ์ ํ์ฉํ๊ธฐ ์ํ ์์ ์ ์ด๊ณ ๊ด๋ฆฌ๋๋ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
ํต์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํ๋ ์์ํฌ
.NET Core ์ํคํ ์ฒ์์ ํต์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํ๋ ์์ํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ง์ํ๋ ํฌ๊ด์ ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ฐ ์ค์ํฉ๋๋ค. ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋ซํผ ๊ฐ ํธํ์ฑ์ ์ง์ํ๊ณ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ฉฐ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ฐ์ํํฉ๋๋ค. UI ๊ตฌ์ฑ ์์์์ ๋ฐฑ์๋ ๋ ผ๋ฆฌ์ ์ด๋ฅด๊ธฐ๊น์ง ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋ค์ํ ์ธก๋ฉด์ ๋์์ผ๋ก ํฉ๋๋ค. .NET Core์ ํฌํจ๋ ์ผ๋ถ ์ฃผ์ ํ๋ ์์ํฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- BCL(๊ธฐ๋ณธ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ): BCL์ .NET Core ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์คํ ์ ๊ธฐ๋ฐ์ ๋๋ค. ์ปฌ๋ ์ , IO, ๋คํธ์ํน ๋ฑ์ ํฌํจํ ๊ด๋ฒ์ํ ํ์ ํด๋์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ฐ์๋ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ๋ ๋นจ๋ฆฌ ์์ฑํ ์ ์์ผ๋ฏ๋ก BCL์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค.
- ASP.NET Core: ์ต์ ์น ์ฑ, API ๋ฐ ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ํ๋ซํผ ๊ฐ ํ๋ ์์ํฌ์ ๋๋ค. ASP.NET Core๋ ๊ณ ์ฑ๋ฅ, ๋ณด์, ์ข ์์ฑ ์ฃผ์ , ๋ฏธ๋ค์จ์ด ๋ฐ MVC(๋ชจ๋ธ-๋ทฐ-์ปจํธ๋กค๋ฌ) ๊ตฌ์กฐ์ ๊ฐ์ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ์ ๊ณต๋๋ ์คํ ์์ค ํ๋ ์์ํฌ์ ๋๋ค. .NET Core์ ์ง์ ํตํฉ๋๋ฉฐ ๊ฐ๋ฐ์๊ฐ ํ์ฅ ๊ฐ๋ฅํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
- EF Core(Entity Framework Core): EF Core๋ ๊ฐ๋ณ๊ณ ํ์ฅ ๊ฐ๋ฅํ ํ๋ซํผ ๊ฐ ORM(๊ฐ์ฒด ๊ด๊ณ ๋งคํ) ํ๋ ์์ํฌ์ ๋๋ค. ๊ฐ๋ฐ์๋ LINQ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํํ๊ฒ ์ํธ ์์ฉํ๊ณ SQL ์ฝ๋๋ฅผ ์์ฑํ์ง ์๊ณ ๋ CRUD ์์ ์ ์ํํ ์ ์์ต๋๋ค. EF Core๋ ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ์ ์ง์ํ๋ฏ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์ฝ๊ฒ ์ ์ง ๊ด๋ฆฌํ๊ณ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
- ID ๋ชจ๋ธ ๋ฐ IdentityServer: ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ .NET Core ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋ฐ ID ๊ด๋ฆฌ์ ์ค์ ์ ๋ก๋๋ค. Identity Model์ ๋ณด์ ํ ํฐ ์๋น์ค์์ ์ํธ ์์ฉ์ ์ฉ์ดํ๊ฒ ํ๋ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ ๋ฐ๋ฉด IdentityServer๋ API ๋ฐ ์ฑ ์์ค ๋ณด์์ ํ์ฉํ๋ ํ์ฅ ๊ฐ๋ฅํ ๋ฏธ๋ค์จ์ด ๊ธฐ๋ฐ ๋ณด์ ํ ํฐ ์๋น์ค์ ๋๋ค.
- Xamarin: Xamarin์ .NET Core ๋ฐํ์์ ์ฌ์ฉํ์ฌ ํ๋ซํผ ๊ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ๊ธฐ ์ํ ํ๋ ์์ํฌ์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ฝ๋๋ฅผ ํ ๋ฒ ์์ฑํ๊ณ iOS, Android ๋ฐ Windows์ ๊ฐ์ ์ฌ๋ฌ ํ๋ซํผ์์ ์คํํ ์ ์์ต๋๋ค. Xamarin์ ํ๋ซํผ๋ณ UI ๋ ๋๋ง์ ์ฌ์ฉํ์ฌ ๋ค์ดํฐ๋ธ ์์ค์ ์ฑ๋ฅ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.

์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๋ ๋ฌผ๋ก ์ฌ๊ธฐ์ ์ธ๊ธ๋์ง ์์ ๊ธฐํ ๊ธฐ๋ฅ์ ํตํด ๊ฐ๋ฐ์๋ .NET Core์ ํธ๋ฆฌํจ๊ณผ ์ฑ๋ฅ์ ํตํด ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
๋ก์ฌ๋ฆฐ ์ปดํ์ผ๋ฌ
Roslyn ์ปดํ์ผ๋ฌ๋ ์คํ ์์ค C# ๋ฐ Visual Basic ์ปดํ์ผ๋ฌ๋ก ๊ตฌ์ฑ๋ .NET Core ์ํคํ ์ฒ์ ์ค์ํ ๊ตฌ์ฑ ์์์ ๋๋ค. ๋ํ ๊ฐ๋ฐ์๊ฐ ๋์ ๋ฐ ์ ์ ๋ถ์์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ด ๋๋ ์ฝ๋ ๋ถ์ API๋ฅผ ์ ๊ณตํฉ๋๋ค. Roslyn ์ปดํ์ผ๋ฌ๋ ๋ค์์ ํตํด ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์์ค ์ฝ๋๋ฅผ ํ๋ซํผ์ ๊ตฌ์ ๋ฐ์ง ์๋ ๋ฎ์ ์์ค์ ์์ค ์ฝ๋ ํํ์ธ MSIL(Microsoft Intermediate Language) ์ฝ๋๋ก ๋ณํํฉ๋๋ค.
- ๊ตฌ๋ฌธ ํธ๋ฆฌ, ๊ธฐํธ ๋ฐ ์ง๋จ์ ์ง์ํ์ฌ ์ฝ๋ ๋ถ์ ๋ฐ ํธ์ง์ ๋จ์ํํฉ๋๋ค.
- ํจํด ์ผ์น ๋ฐ nullable ์ฐธ์กฐ ์ ํ๊ณผ ๊ฐ์ ์๋ก์ด ์ธ์ด ๊ธฐ๋ฅ์ ํ์ฑํํฉ๋๋ค.
- ์ฝ๋ ๋ถ์๊ธฐ ๋ฐ ๋ฆฌํฉํฐ๋ง ๊ณต๊ธ์์ ๊ฐ์ ํ์ฌ ๋๊ตฌ์ ๋ํ ํ์ฅ์ฑ ์ง์ ์ ํ์ฉํฉ๋๋ค.
Roslyn ์ปดํ์ผ๋ฌ๋ .NET Core ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ํจ์จ์ฑ์ ๋์ด๊ณ ๊ณ ํ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณต์ ๊ฐ์ํํฉ๋๋ค.
.NET Core์ ์ข ์์ฑ ์ฃผ์ ๋ฐ ๋ฏธ๋ค์จ์ด
์์กด์ฑ ์ฃผ์
DI(์ข ์์ฑ ์ฃผ์ )๋ ๋ถ๋ฆฌ๋๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ด์งํ๋ .NET Core์ ๊ณ ์ ๊ธฐ๋ฅ์ ๋๋ค. ์ด๋ ๊ฐ๋ฐ์๊ฐ ๊ตฌ์ฑ ์์๋ฅผ ํ๋ ์ฝ๋ฉํ๋ ๋์ ๊ตฌ์ฑ ์์์ ์ข ์์ฑ์ ์ฃผ์ ํ์ฌ ๋ชจ๋์ฑ๊ณผ ํ ์คํธ ๊ฐ๋ฅ์ฑ์ ๋์ด๋ ๊ธฐ์ ์ ๋๋ค. .NET Core์๋ ๋ค์์ ์ง์ํ๋ ๊ธฐ๋ณธ ์ ๊ณต IoC(์ ์ด ์ญ์ ) ์ปจํ ์ด๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
- ์์ฑ์ ์ฃผ์
- ์์ฑ ์ฃผ์
- ๋ฐฉ๋ฒ ์ฃผ์
Startup ํด๋์ค์์ ๊ฐ๋ฐ์๋ ConfigureServices() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค๋ฅผ ๋ฑ๋กํ๊ณ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด .NET Core ๋ฐํ์์ ์ข ์์ฑ์ ์๋์ผ๋ก ํ์ธํ๊ณ ์ข ์๋ ๊ตฌ์ฑ ์์์ ํ์ํ ์๋น์ค์ ์ธ์คํด์ค๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋ฏธ๋ค์จ์ด
.NET Core์์ ๋ฏธ๋ค์จ์ด๋ HTTP ์์ฒญ ๋ฐ ์๋ต ์ฒ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๊ตฌ์ฑ ์์์ ๋๋ค. ๊ฐ ๋ฏธ๋ค์จ์ด ๊ตฌ์ฑ ์์๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๋ค์ ๋ฏธ๋ค์จ์ด๋ก ์ ๋ฌํ๊ฑฐ๋ ์๋ต์ ์์ฑํ๋ ํ์ดํ๋ผ์ธ๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ํ์ฑํฉ๋๋ค. ๋ฏธ๋ค์จ์ด ๊ตฌ์ฑ ์์๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ ๋ชจ๋์์ด๋ฉฐ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ๊ฒฐํฉํ์ฌ ์ฌ์ฉ์ ์ง์ ์์ฒญ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ์๋ Startup ํด๋์ค์ Configure() ๋ฉ์๋์์ ๋ฏธ๋ค์จ์ด ๊ตฌ์ฑ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฏธ๋ค์จ์ด ๊ตฌ์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- URL ๋ผ์ฐํ ๋ฐ endpoint ๋์คํจ์นญ์ ์ํ ๋ผ์ฐํ ๋ฐ endpoint ๋ฏธ๋ค์จ์ด.
- ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์์ ์ํ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ๋ฏธ๋ค์จ์ด.
- ์ ์ ์์ฐ(CSS, JavaScript , ์ด๋ฏธ์ง)์ ์ ๊ณตํ๊ธฐ ์ํ ์ ์ ํ์ผ ์ ๊ณต ๋ฏธ๋ค์จ์ด.
- ์ถ์ ๋ฐ ์ง๋จ์ ์ํ ๋ก๊น ๋ฐ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฏธ๋ค์จ์ด.
- ๊ณ ๊ธ ์์ฒญ ์ฒ๋ฆฌ ๋ฐ ์๋ต ์์ฑ์ ์ํ ๋ง์ถคํ ๋ฏธ๋ค์จ์ด.
.NET Core์ ์ข ์์ฑ ์ฃผ์ ๋ฐ ๋ฏธ๋ค์จ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ ์ฐํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ๋ชจ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ๋ฅผ ๊ฐ์ ํ๊ณ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ ์ ์์ต๋๋ค.
.NET Core ๋ฐ AppMaster ํ๋ซํผ
AppMaster ํ๋ซํผ์ ์ฃผ๋ก ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ์ฝ๋ ์๋ ์๋ฃจ์ ์ ์ ๊ณตํ์ง๋ง ํจ์ฌ ๋ ๊ฐ๋ ฅํ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ํด .NET Core ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํตํฉํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ .NET Core์ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ AppMaster ์์ ์ ๊ณตํ๋ ์ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ํจ๊ป ํ๋ ์์ํฌ์ ํ์ฅ์ฑ, ์ฑ๋ฅ ๋ฐ ํ๋ซํผ ๊ฐ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค.
AppMaster ๋ฒํผ ํด๋ฆญ ํ ๋ฒ์ผ๋ก REST API endpoints ์์ฑํ๊ณ .NET Core๋ก ๊ตฌ์ถ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ ์ ์์ผ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๊ตฌ์ถ, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ ์ ์์ต๋๋ค. .NET Core์์ ํตํฉ์ ํตํด AppMaster ์ฌ์ฉ์๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํ์ฌ ๊ตฌ์ฑ ์์๋ฅผ ํฌํจํ ๋ฐฉ๋ํ .NET Core ์์ฝ์์คํ ์ ์ด์ ์ ํ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฅ ๋ฐ ์ํธ ์ด์ฉ์ฑ์ ๋์ฑ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๊ฐ๋ฐ ํ์ .NET Core์ AppMaster ํจ๊ป ์ฌ์ฉํ์ฌ ๋ฐ๋ณต ์์ ์ ์์๋๋ ์๊ฐ์ ์ค์ด๊ณ , ์ ๋ฐ์ ์ธ ์ฝ๋ ํ์ง์ ๊ฐ์ ํ๊ณ , ๊ธฐ์กด ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ณด๋ค ์งง์ ์๊ฐ์ ๊ธฐ๋ฅ์ด ํ๋ถํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
๊ฒฐ๋ก
๊ฒฐ๋ก ์ ์ผ๋ก .NET Core ์ํคํ ์ฒ๋ ํ์ฅ ๊ฐ๋ฅํ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ์ต์ ํฌ๋ก์ค ํ๋ซํผ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ชจ๋์ ์ค๊ณ, ๋ฐํ์ ๊ฐ์ , CLR, ํต์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, Roslyn ์ปดํ์ผ๋ฌ, ์ข ์์ฑ ์ฃผ์ ๋ฐ ๋ฏธ๋ค์จ์ด ํตํฉ๊ณผ ๊ฐ์ ๊ฐ๋ ฅํ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ์ถ .NET Core๋ ๊ฐ๋ฐ์๊ฐ ํจ์จ์ ์ด๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋๋ก ์ง์ํฉ๋๋ค.
.NET Core๋ฅผ AppMaster ํ๋ซํผ๊ณผ ํตํฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋์ฑ ๊ฐ์ํํ๊ณ AppMaster ์์ ์ ๊ณตํ๋ no-code ๊ฐ๋ฐ ํ๊ฒฝ์ ํ์ฉํ ์ ์์ต๋๋ค. ์ด ์กฐํฉ์ ํตํด ์ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ, ๊ฐํธํ ๋ฐฐํฌ, ๋์์์ด ๋ณํํ๋ ์๊ตฌ ์ฌํญ์ ์ ์ํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ ๋์์ .NET Core์ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค.
.NET Core ์์ฝ์์คํ ์ด ๊ณ์ ์ฑ์ฅํจ์ ๋ฐ๋ผ ๊ฐ๋ฐ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋ ธ๋ ฅ์ ์ง์ํ๊ธฐ ์ํด ํจ์ฌ ๋ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋๊ตฌ ๋ฐ ๋ฆฌ์์ค๋ฅผ ๊ธฐ๋ํ ์ ์์ต๋๋ค. .NET Core ์ํคํ ์ฒ๋ฅผ ์ดํดํ๊ณ ์์ฉํจ์ผ๋ก์จ ๊ฐ๋ฐ ํ์ ํ๋ ์์ํฌ์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ํ์ฉํ์ฌ ๋ค์ํ ํ๋ซํผ์ ์ํ ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
.NET Core๋ Microsoft์์ ๊ฐ๋ฐํ ํ๋ซํผ ๊ฐ ์คํ ์์ค ํ๋ ์์ํฌ์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ฐ์คํฌํฑ, ๋ชจ๋ฐ์ผ ๋ฐ ์น์ ๋น๋กฏํ ๋ค์ํ ํ๋ซํผ์ ์ํ ์ต์ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
.NET Core๋ ์ฃผ๋ก Windows ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ .NET Framework์ ์ต์ ๋ชจ๋์ ๊ต์ฐจ ํ๋ซํผ ๋ฒ์ ์ ๋๋ค.
CLR(๊ณต์ฉ ์ธ์ด ๋ฐํ์)์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ์์ธ ์ฒ๋ฆฌ ๋ฐ ๋ณด์์ ์ฒ๋ฆฌํ์ฌ .NET ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ด๋ฆฌ๋๋ ์คํ ํ๊ฒฝ์ ์ ๊ณตํ๋ .NET ์ํคํ ์ฒ์ ๊ตฌ์ฑ ์์์ ๋๋ค.
Roslyn ์ปดํ์ผ๋ฌ๋ C# ๋ฐ Visual Basic ์ปดํ์ผ๋ฌ์ ์คํ ์์ค ์ธํธ๋ก, .NET ๊ฐ๋ฐ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ ์ ์๋๋ก ์ฝ๋ ๋ถ์ API๋ฅผ ์ ๊ณตํฉ๋๋ค.
.NET Core์ ์ข ์์ฑ ์ฃผ์ ์ ๊ฐ๋ฐ์๊ฐ ๋์จํ๊ฒ ๊ฒฐํฉ๋๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ ์์ ๊ฐ์ ์ข ์์ฑ์ ๋์ ํ ์ ์๋ ๊ธฐ๋ณธ ์ ๊ณต ๊ธฐ๋ฅ์ ๋๋ค.
๋ฏธ๋ค์จ์ด๋ ๊ฐ๋ฐ์๊ฐ ๋ชจ๋์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ์์ฒญ ๋ฐ ์๋ต์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ .NET Core ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑ ์์์ ๋๋ค.
AppMaster ํ๋ซํผ์ REST API endpoints ์์ฑํ๊ณ ์ฑ์ ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ์ฌ .NET Core ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํตํฉํ ์ ์์ผ๋ฏ๋ก ์ฌ์ฉ์๋ AppMaster no-code ๊ฐ๋ฐ ํ๊ฒฝ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
์, .NET Core๋ Microsoft ๋ฐ .NET Foundation์์ ๊ด๋ฆฌํ๋ ์คํ ์์ค ํ๋ก์ ํธ์ ๋๋ค.


