๐Ÿ’ป C# / .NET ์›”๊ฐ„

์›”๊ฐ„ C# / .NET ์ข…ํ•ฉ

2026๋…„ 5์›”์€ .NET 11 Preview๋ฅผ ์ถ•์œผ๋กœ ๋Ÿฐํƒ€์ž„ยท์–ธ์–ดยทAPI ์ „๋ฐ˜์— ๊ฑธ์นœ ๋Œ€๊ทœ๋ชจ ์—…๋ฐ์ดํŠธ๊ฐ€ ๊ณต๊ฐœ๋๊ณ , Microsoft Agent Framework์™€ MCP๋ฅผ ์ค‘์‹ฌ์œผ๋กœ .NET AI ์—์ด์ „ํŠธ ์ƒํƒœ๊ณ„๊ฐ€ ๋น ๋ฅด๊ฒŒ ๊ตฌ์ฒดํ™”๋œ ํ•œ ๋‹ฌ์ด์—ˆ๋‹ค. ์„ฑ๋Šฅ ๋ฒค์น˜๋งˆํฌ, ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ํ˜„๋Œ€ํ™”, ํŒจํ‚ค์ง€ ๋ณด์•ˆ ์œ„์ƒ ์˜์—ญ์—์„œ๋„ ์‹ค์งˆ์ ์ธ ์ง„์ „์ด ์ด์–ด์กŒ๋‹ค. ## 1. .NET 11 ์ „๋ฐฉ์œ„ ์—…๋ฐ์ดํŠธ โ€” ๋Ÿฐํƒ€์ž„ ํ†ตํ•ฉยทProcess API ๊ฐœ์„ ยทC# ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „์„ฑ .NET 11 Preview 4๊ฐ€ ๋Ÿฐํƒ€์ž„, SDK, ASP.NET Core, MAUI, C#, EF Core ๋“ฑ ๊ฑฐ์˜ ์ „ ์˜์—ญ์˜ ์‹ ๊ธฐ๋Šฅ ์œค๊ณฝ์„ ๋“œ๋Ÿฌ๋ƒˆ๋‹ค. ๊ฐ€์žฅ ์ƒ์ง•์ ์ธ ๋ณ€ํ™”๋Š” .NET MAUI๊ฐ€ AndroidยทiOSยทMac Catalyst์—์„œ Mono๋ฅผ ๋ฒ„๋ฆฌ๊ณ  CoreCLR๋กœ ์ „ํ™˜ํ•ด, ๋ชจ๋“  ํ”Œ๋žซํผ์ด ๋‹จ์ผ ๋Ÿฐํƒ€์ž„์œผ๋กœ ํ†ต์ผ๋œ๋‹ค๋Š” ์ ์ด๋‹ค. ์™ธ๋ถ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค๋ฃจ๋Š” Process API์—๋Š” ๊ต์ฐฉ(deadlock) ๋ฐฉ์ง€ ๊ณ ์ˆ˜์ค€ API์™€ ํ•ธ๋“ค ์ƒ์† ์ œ์–ด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋๊ณ , C# `unsafe` ํ‚ค์›Œ๋“œ๋ฅผ ํ˜ธ์ถœ์ž-ํ”ผํ˜ธ์ถœ์ž ๊ฐ„ ์•ˆ์ „ ๊ณ„์•ฝ(contract)์œผ๋กœ ์žฌ์„ค๊ณ„ํ•ด AI ์ฝ”๋“œ ์ƒ์„ฑ ์‹œ๋Œ€์— ๋งž๋Š” ์–ธ์–ด ์ˆ˜์ค€ ์•ˆ์ „ ์žฅ์น˜๋ฅผ ๋งˆ๋ จํ•˜๋Š” ๊ณ„ํš๋„ ํ•จ๊ป˜ ๊ณต๊ฐœ๋๋‹ค. ํ‚ค์›Œ๋“œ: `.NET 11` `CoreCLR` `.NET MAUI` `Process API` `C#` `memory safety` `unsafe` `ASP.NET Core` ## 2. .NET AI ์—์ด์ „ํŠธ ์ƒํƒœ๊ณ„ ๋ณธ๊ฒฉํ™” โ€” Agent Framework, MCP, ๊ฑฐ๋ฒ„๋„Œ์Šค Microsoft Agent Framework์˜ ๋ฉ€ํ‹ฐํ„ด ๋Œ€ํ™”ยท๋„๊ตฌ ํ˜ธ์ถœยท๊ทธ๋ž˜ํ”„ ์›Œํฌํ”Œ๋กœ์šฐ ๋“ฑ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ๊ณผ Durable Task ๊ธฐ๋ฐ˜์˜ ๋‚ด๊ตฌ์„ฑ ์žˆ๋Š” ์›Œํฌํ”Œ๋กœ์šฐ๊นŒ์ง€, .NET์—์„œ ํ”„๋กœ๋•์…˜๊ธ‰ AI ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ•์ด ์ž‡๋”ฐ๋ผ ๊ณต๊ฐœ๋๋‹ค. Composable AI Stack(MEAI, VectorData, MCP ์กฐํ•ฉ)์œผ๋กœ ์‹ค์ œ ์ปจํผ๋Ÿฐ์Šค ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ๋งŒ๋“  ์‚ฌ๋ก€๋„ ๋“ฑ์žฅํ•ด ์ƒํƒœ๊ณ„ ์„ฑ์ˆ™๋„๋ฅผ ๋ณด์—ฌ์คฌ๋‹ค. ๋™์‹œ์— MCP tool call์„ ์ •์ฑ… ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ดยท์‘๋‹ต ์ƒˆ๋‹ˆํƒ€์ด์ œ์ด์…˜์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š” Agent Governance Toolkit์ด ๊ณต๊ฐœ ํ”„๋ฆฌ๋ทฐ๋กœ ๋ฐœํ‘œ๋ผ, AI ์—์ด์ „ํŠธ ๊ฑฐ๋ฒ„๋„Œ์Šค์— ๋Œ€ํ•œ ๊ณต์‹ ํ•ด๋ฒ•์ด ์ œ์‹œ๋๋‹ค. GitHub Copilot์„ Visual StudioยทVS CodeยทCLI์—์„œ ํ™œ์šฉํ•˜๋Š” ์‹ค์ „ ๊ฐ€์ด๋“œ๋„ ๋‚˜์™€ .NET ๊ฐœ๋ฐœ์ž์˜ AI ๋ณด์กฐ ๋„๊ตฌ ํ™œ์šฉ ํญ์ด ํ•œ์ธต ๋„“์–ด์กŒ๋‹ค. ํ‚ค์›Œ๋“œ: `.NET` `AI` `Microsoft Agent Framework` `MCP` `Model Context Protocol` `Agent Governance Toolkit` `Durable Task` `workflows` ## 3. C# / .NET ์„ฑ๋Šฅ ๊ทนํ•œ ๋„์ „ โ€” ์–ธ์–ด ์ฐจ์ดยท๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”ยทWASM ๋ฒค์น˜๋งˆํฌ PDF ํ…์ŠคํŠธ ์ถ”์ถœ์—์„œ PdfPig(C#)๊ฐ€ pypdf(Python) ๋Œ€๋น„ 4~6๋ฐฐ ๋น ๋ฅด๊ณ , ArrayPool ๊ธฐ๋ฐ˜ ํŽธ์ง‘ ๊ฑฐ๋ฆฌ(edit distance) ๊ณ„์‚ฐ์€ Python ๊ตฌํ˜„์˜ 14์ดˆ๋ฅผ 200ms ๋ฏธ๋งŒ์œผ๋กœ ๋‹จ์ถ•ํ•ด ์–ธ์–ด์™€ ๋ฉ”๋ชจ๋ฆฌ ์ „๋žต ์„ ํƒ์ด ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ˆ˜์น˜๋กœ ์ฆ๋ช…ํ–ˆ๋‹ค. Blazor WebAssembly์—์„œ Virtual DOM ๋ Œ๋”๋ง์„ ์™„์ „ํžˆ ์šฐํšŒํ•˜๊ณ  ์›์‹œ WASM ํฌ์ธํ„ฐ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ๊ณต์œ ํ•˜๋Š” ์‹คํ—˜์  ์ ‘๊ทผ๋ฒ•๋„ ๊ณต๊ฐœ๋์œผ๋ฉฐ, Copilot Studio๊ฐ€ .NET 10 WebAssembly ์—”์ง„์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด ์‹ค์ œ ํ”„๋กœ๋•์…˜์—์„œ๋„ ์œ ์˜๋ฏธํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ํ™•์ธํ•œ ์‚ฌ๋ก€๋„ ๋‚˜์™”๋‹ค. Azure ์œ„์˜ Postgres๋ฅผ ํ™œ์šฉํ•œ ๋ถ„์‚ฐ ์บ์‹ฑ ํŒจํ„ด๊นŒ์ง€ ์†Œ๊ฐœ๋˜์–ด, ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ ์„œ๋น„์Šค์˜ ์‘๋‹ต์„ฑ์„ ๋†’์ด๋Š” ๊ตฌ์ฒด์ ์ธ ๋ ˆ์‹œํ”ผ๊ฐ€ ํ•œ ๋‹ฌ์— ๊ฑธ์ณ ํ’๋ถ€ํ•˜๊ฒŒ ์Œ“์˜€๋‹ค. ํ‚ค์›Œ๋“œ: `.NET` `C#` `performance` `benchmarks` `ArrayPool` `blazor` `WebAssembly` `caching` ## 4. ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ํ˜„๋Œ€ํ™” โ€” Clean Architecture, CQRS, Feature Flags, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ†ตํ•ฉ 18,000๊ฐœ ์ด์ƒ์˜ ์Šคํƒ€๋ฅผ ๋ฐ›์€ ardalis์˜ Clean Architecture ํ…œํ”Œ๋ฆฟ์ด ASP.NET Core 10์„ ๊ณต์‹ ์ง€์›ํ•˜๋ฉฐ DDD ๊ธฐ๋ฐ˜ ๋ ˆ์ด์–ด๋“œ ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒ€์ฆ๋œ ์ถœ๋ฐœ์ ์œผ๋กœ ์ž๋ฆฌ๋ฅผ ๊ตณํ˜”๋‹ค. MediatR์˜ ๋ผ์ด์„ ์‹ฑ ๋ณ€ํ™”๋ฅผ ๊ณ„๊ธฐ๋กœ .NET 10 ๊ธฐ๋Šฅ๋งŒ์œผ๋กœ CQRS๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•œ ๊ฒฝํ—˜๋‹ด๋„ ๊ณต์œ ๋ผ, ์œ ๋ช… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์˜์กด ์—ฌ๋ถ€๋ฅผ ์‹ค์šฉ์ ์œผ๋กœ ํŒ๋‹จํ•˜๋Š” ์‹œ๊ฐ์„ ์ œ์‹œํ–ˆ๋‹ค. .NET 8์—์„œ Feature Flags๋ฅผ ASP.NET CoreยทMinimal APIsยทBlazor ์„ธ ๋ฐฉ์‹์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์ •๋ฆฌ๋๊ณ , JVM์˜ Apache Camel ์ฒ ํ•™์„ .NET์œผ๋กœ ๊ฐ€์ ธ์˜จ redb.Route๊ฐ€ 22๊ฐœ ์ „์†ก ๋ฐฉ์‹๊ณผ 30๊ฐœ ์ด์ƒ์˜ EIP ํŒจํ„ด์„ ์ปดํŒŒ์ผ ํƒ€์ž„ DSL๋กœ ์ œ๊ณตํ•˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ†ตํ•ฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์†Œ๊ฐœ๋๋‹ค. ํ‚ค์›Œ๋“œ: `clean-architecture` `csharp` `dotnet` `ddd` `asp.net` `CQRS` `MediatR` `featureflags` ## 5. ๋ณด์•ˆ & ํŒจํ‚ค์ง€ ์œ„์ƒ โ€” NuGet ํ”„๋ฃจ๋‹, ์ •๊ธฐ ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ, ์˜์กด์„ฑ ์ •๋ฆฌ .NET 10์— ๋„์ž…๋œ NuGet ํŒจํ‚ค์ง€ ํ”„๋ฃจ๋‹์ด ํ”Œ๋žซํผ์ด ์ด๋ฏธ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜์กด์„ฑ ๊ทธ๋ž˜ํ”„์—์„œ ์ž๋™ ์ œ๊ฑฐํ•ด ๊ฐ„์ ‘ ์ทจ์•ฝ์  ๊ฒฝ๊ณ ๋ฅผ 70% ์ค„์—ฌ์ค€๋‹ค๋Š” ์ˆ˜์น˜๊ฐ€ ๊ณต๊ฐœ๋๊ณ , transitive auditing๋„ ๊ธฐ๋ณธ ํ™œ์„ฑํ™”๋ผ ๋ณ„๋„ ์„ค์ • ์—†์ด ๋” ์ •ํ™•ํ•œ ๋ณด์•ˆ ๊ฐ์‚ฌ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค. .NET ๋ฐ .NET Framework ์ „ ์ง€์› ๋ฒ„์ „์— ๋Œ€ํ•œ 5์›” ์ •๊ธฐ ๋ณด์•ˆ ์„œ๋น„์Šค ์—…๋ฐ์ดํŠธ๋„ ๋ฐฐํฌ๋๋‹ค. VSTest๋Š” .NET 11ยทVS 18.8๋ถ€ํ„ฐ Newtonsoft.Json ์˜์กด์„ฑ์„ ์ œ๊ฑฐํ•  ์˜ˆ์ •์ด์–ด์„œ, ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜์กดํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ๋ฏธ๋ฆฌ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ณ„ํš์ด ํ•„์š”ํ•˜๋‹ค. DebugProbe๋ฅผ ํ™œ์šฉํ•ด ๋™์ผ ์š”์ฒญ์ด ๊ฐœ๋ฐœยทํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š”์ง€ ๋น„๊ตยท์ง„๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์†Œ๊ฐœ๋ผ, ํ™˜๊ฒฝ ์ฐจ์ด๋กœ ์ธํ•œ ์žฅ์•  ์›์ธ ๋ถ„์„ ๋„๊ตฌ๋กœ ์ฃผ๋ชฉ๋ฐ›์•˜๋‹ค. ํ‚ค์›Œ๋“œ: `.NET` `NuGet` `Security` `package-pruning` `vulnerabilities` `.NET 10` `audit` `vstest`

ํ‚ค์›Œ๋“œ

์ถœ์ฒ˜

โ† ๋ฆฌ์ŠคํŠธ๋กœ