2023๋…„ 7์›” 28์ผยท3๋ถ„ ์ฝ๊ธฐ

.NET Core ์•„ํ‚คํ…์ฒ˜ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ

๊ตฌ์„ฑ ์š”์†Œ, ๋Ÿฐํƒ€์ž„ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃจ๋Š” .NET Core ์•„ํ‚คํ…์ฒ˜์˜ ๋ณต์žก์„ฑ์„ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. CLR, Roslyn ์ปดํŒŒ์ผ๋Ÿฌ ๋“ฑ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์„ธ์š”.

.NET Core ์•„ํ‚คํ…์ฒ˜ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ

.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์— ํฌํ•จ๋œ ์ผ๋ถ€ ์ฃผ์š” ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. BCL(๊ธฐ๋ณธ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ): BCL์€ .NET Core ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜, IO, ๋„คํŠธ์›Œํ‚น ๋“ฑ์„ ํฌํ•จํ•œ ๊ด‘๋ฒ”์œ„ํ•œ ํ•„์ˆ˜ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ๋” ๋นจ๋ฆฌ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ BCL์˜ ์ด์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ASP.NET Core: ์ตœ์‹  ์›น ์•ฑ, API ๋ฐ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ํ”Œ๋žซํผ ๊ฐ„ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ASP.NET Core๋Š” ๊ณ ์„ฑ๋Šฅ, ๋ณด์•ˆ, ์ข…์†์„ฑ ์ฃผ์ž…, ๋ฏธ๋“ค์›จ์–ด ๋ฐ MVC(๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ) ๊ตฌ์กฐ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. .NET Core์™€ ์ง์ ‘ ํ†ตํ•ฉ๋˜๋ฉฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. EF Core(Entity Framework Core): EF Core๋Š” ๊ฐ€๋ณ๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”Œ๋žซํผ ๊ฐ„ ORM(๊ฐœ์ฒด ๊ด€๊ณ„ ๋งคํ•‘) ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” LINQ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์›ํ™œํ•˜๊ฒŒ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ณ  SQL ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ CRUD ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. EF Core๋Š” ๋˜ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ง€์›ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ฅผ ์‰ฝ๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ID ๋ชจ๋ธ ๋ฐ IdentityServer: ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” .NET Core ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ธ์ฆ, ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐ ID ๊ด€๋ฆฌ์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. Identity Model์€ ๋ณด์•ˆ ํ† ํฐ ์„œ๋น„์Šค์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ ๋ฐ˜๋ฉด IdentityServer๋Š” API ๋ฐ ์•ฑ ์ˆ˜์ค€ ๋ณด์•ˆ์„ ํ—ˆ์šฉํ•˜๋Š” ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฏธ๋“ค์›จ์–ด ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ํ† ํฐ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.
  5. 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์˜ ์ข…์†์„ฑ ์ฃผ์ž… ๋ฐ ๋ฏธ๋“ค์›จ์–ด

๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์—†์ด API ๋ฐฐํฌ
REST API ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹ค์ œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์—ฐ๊ฒฐํ•˜์„ธ์š”.
API ์ƒ์„ฑ

์˜์กด์„ฑ ์ฃผ์ž…

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 ํ”Œ๋žซํผ

๋ฐ์ดํ„ฐ๋ฅผ ๋ช‡ ๋ถ„ ๋งŒ์— ์„ค๊ณ„ํ•˜์„ธ์š”
PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ชจ๋ธ๋งํ•˜๊ณ  ์ž‘๋™ํ•˜๋Š” ๋ฐฑ์—”๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑํ•˜์„ธ์š”.
๊ตฌ์ถ• ์‹œ์ž‘

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๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

.NET Core๋Š” Microsoft์—์„œ ๊ฐœ๋ฐœํ•œ ํ”Œ๋žซํผ ๊ฐ„ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋ฐ์Šคํฌํ†ฑ, ๋ชจ๋ฐ”์ผ ๋ฐ ์›น์„ ๋น„๋กฏํ•œ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์„ ์œ„ํ•œ ์ตœ์‹  ๊ณ ์„ฑ๋Šฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.NET Core๋Š” .NET Framework์™€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฆ…๋‹ˆ๊นŒ?

.NET Core๋Š” ์ฃผ๋กœ Windows ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” .NET Framework์˜ ์ตœ์‹  ๋ชจ๋“ˆ์‹ ๊ต์ฐจ ํ”Œ๋žซํผ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

๊ณต์šฉ ์–ธ์–ด ๋Ÿฐํƒ€์ž„(CLR)์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

CLR(๊ณต์šฉ ์–ธ์–ด ๋Ÿฐํƒ€์ž„)์€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐ ๋ณด์•ˆ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ .NET ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๊ด€๋ฆฌ๋˜๋Š” ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” .NET ์•„ํ‚คํ…์ฒ˜์˜ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

Roslyn ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Roslyn ์ปดํŒŒ์ผ๋Ÿฌ๋Š” C# ๋ฐ Visual Basic ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์˜คํ”ˆ ์†Œ์Šค ์„ธํŠธ๋กœ, .NET ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ ๋ถ„์„ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

.NET Core์—์„œ ์ข…์†์„ฑ ์ฃผ์ž…์€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”?

.NET Core์˜ ์ข…์†์„ฑ ์ฃผ์ž…์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋А์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์— ์ข…์†์„ฑ์„ ๋„์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ์ œ๊ณต ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

.NET Core์˜ ๋ฏธ๋“ค์›จ์–ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ฏธ๋“ค์›จ์–ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋“ˆ์‹์˜ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ ๋ฐ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” .NET Core ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

.NET Core๋Š” AppMaster ํ”Œ๋žซํผ๊ณผ ์–ด๋–ป๊ฒŒ ํ†ตํ•ฉ๋˜๋‚˜์š”?

AppMaster ํ”Œ๋žซํผ์€ REST API endpoints ์ƒ์„ฑํ•˜๊ณ  ์•ฑ์„ ํด๋ผ์šฐ๋“œ์— ๋ฐฐํฌํ•˜์—ฌ .NET Core ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์ž๋Š” AppMaster no-code ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ•๋ ฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.NET Core๋Š” ์˜คํ”ˆ ์†Œ์Šค์ธ๊ฐ€์š”?

์˜ˆ, .NET Core๋Š” Microsoft ๋ฐ .NET Foundation์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
.NET Core ์•„ํ‚คํ…์ฒ˜ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ | AppMaster