๐ ๊ฒ์
"Performance" ๊ฒ์ ๊ฒฐ๊ณผ 10๊ฑด
-
์๊ฐ C# / .NET ์ข
ํฉ
2026๋ 5์์ .NET 11 Preview๋ฅผ ์ถ์ผ๋ก ๋ฐํ์ยท์ธ์ดยทAPI ์ ๋ฐ์ ๊ฑธ์น ๋๊ท๋ชจ ์ ๋ฐ์ดํธ๊ฐ ๊ณต๊ฐ๋๊ณ , Microsoft Agent Framework์ MCP๋ฅผ ์ค์ฌ์ผ๋ก .NET AI ์์ด์ ํธ ์ํ๊ณ๊ฐ ๋น ๋ฅด๊ฒ ๊ตฌ์ฒดํ๋ ํ ๋ฌ์ด์๋ค. ์ฑ๋ฅ ๋ฒค์น๋งํฌ, ์ํคํ ์ฒ ํจํด ํ๋ํ, ํจํค์ง ๋ณด์ ์์ ์์ญ์์๋ ์ค์ง์ ์ธ ์ง์ ์ด ์ด์ด์ก๋ค. ## 1. .NEโฆ
-
๋๊ท๋ชจ PDF ํ
์คํธ ์ถ์ถ ์ฑ๋ฅ ๋น๊ต: pypdf vs PdfPig โ ์ต๋ 6๋ฐฐ ์ฐจ์ด
Python์ PDF ํ์ pypdf์ C# ๋๋ฑ ๊ตฌํ์ฒด์ธ PdfPig๋ฅผ ๋๊ท๋ชจ ํ ์คํธ ์ถ์ถ ์๋๋ก ๋น๊ตํ ๊ธ์ ๋๋ค. ๋์ผํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ ๋ PdfPig(C#)๊ฐ 4~6๋ฐฐ ๋ ๋น ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ ๋๋ค. Python์ ๋ชจ๋ ๋ฐ์ดํธ๊ฐ CPython ์ธํฐํ๋ฆฌํฐ๋ฅผ ๊ฑฐ์น๋ ๋ฐ๋ฉด, C#์ ์ปดํ์ผ๋ ๋ค์ดํฐ๋ธ ์ฝ๋๋ก ์คํ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. PDF ์ฒ๋ฆฌ ํ์ดํ๋ผโฆ
-
ArrayPool๋ก ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์์ด 10๋ง ์ ํธ์ง ๊ฑฐ๋ฆฌ(Edit Distance) ๊ณ์ฐ โ 14์ด โ 200ms
Python์ textdistance ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ .NET์ ArrayPool ๊ธฐ๋ฐ ๊ตฌํ์ ๋น๊ตํ ์ฑ๋ฅ ๋ฒค์น๋งํฌ์ ๋๋ค. Python์ ๋ฌธ์์ด ์๋ง๋ค O(mรn) ํฌ๊ธฐ์ ํ๋ ฌ์ ์๋ก ํ ๋นํ๊ธฐ ๋๋ฌธ์ 10๋ง ์ ์ฒ๋ฆฌ์ 14์ด๊ฐ ์์๋ฉ๋๋ค. .NET์์๋ ArrayPool๋ก ํ ํ๋๋ฅผ ๋ฏธ๋ฆฌ ํ ๋นํ ๋ค ๋ชจ๋ ํธ์ถ์์ ์ฌ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ ์์ ์ 200ms ๋ฏธ๋งโฆ
-
Blazor WebAssembly์ Virtual DOM์ ์ฐํํด ์์ WASM ํฌ์ธํฐ๋ก ์ฑ๋ฅ ๊ทนํ๊น์ง ๋์ด์ฌ๋ฆฌ๊ธฐ
ํ ๊ฐ๋ฐ์๊ฐ Blazor WebAssembly์ Virtual DOM ๋ ๋๋ง ๋ฐฉ์์ ์์ ํ ์ฐํํ๋ ์คํ์ ์ ๊ทผ๋ฒ์ ๊ณต๊ฐํด ํ์ ์ ๋๋ค. V.A.L.I.D.(Validated Abstraction Layer for Immediate Diffing)๋ผ๋ ์ปดํ์ผ ํ์ ์ํ ์ถ์ ํ๋ ์์ํฌ๋ฅผ ํตํด, ์์ WebAssembly ๋ฉ๋ชจ๋ฆฌ ์ฌ๋ฉ(memory slab)์ โฆ
-
.NET 11 Process API ๋ํญ ๊ฐ์ โ ๊ต์ฐฉ ์๋ ์ถ๋ ฅ ์บก์ฒยทํธ๋ค ์ ์ด API ์ถ๊ฐ
.NET 11์์ ์ธ๋ถ ํ๋ก์ธ์ค๋ฅผ ๋ค๋ฃจ๋ Process API๊ฐ ํฌ๊ฒ ๊ฐํ๋ฉ๋๋ค. ๊ฐ์ฅ ๋์ ๋๋ ๋ถ๋ถ์ ํ์ค ์ถ๋ ฅ์ ์บก์ฒํ ๋ ๋ฐ์ํ๋ ๊ต์ฐฉ(deadlock) ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ๊ณ ์์ค API๊ฐ ์ถ๊ฐ๋ ๊ฒ์ ๋๋ค. ๊ทธ ์ธ์๋ ์์ ํ๋ก์ธ์ค์ ํธ๋ค์ ์์ํ ์ง ์ฌ๋ถ๋ฅผ ์ธ๋ฐํ๊ฒ ์ ์ดํ๋ ๊ธฐ๋ฅ, ํ๋ก์ธ์ค ์๋ช ๊ด๋ฆฌ ๊ฐ์ , ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฒผ์ด `SafeProcessHandlโฆ
-
Copilot Studio, .NET 10 WebAssembly ๋ง์ด๊ทธ๋ ์ด์
์ผ๋ก ์ฑ๋ฅ ํฅ์
Microsoft Copilot Studio๊ฐ .NET 10 ๊ธฐ๋ฐ์ WebAssembly ์์ง์ผ๋ก ์ ๊ทธ๋ ์ด๋๋์์ต๋๋ค. ์ด๋ฒ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ฐ๋จํ์ ๋ฟ๋ง ์๋๋ผ ๋ฐฐํฌ๋ฅผ ๋จ์ํํ๊ณ ์ต์ข ์ฌ์ฉ์๋ค์ ์ํด ์๋ฏธ ์๋ ์ฑ๋ฅ ํฅ์์ ์ ๊ณตํ์ต๋๋ค. WebAssembly ํ๊ฒฝ์์ .NET 10์ ์ต์ ์ต์ ํ ๊ธฐ๋ฅ๋ค์ด ์ค์ ํ๋ก๋์ ํ๊ฒฝ์์ ํจ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ข์ ์ฌ๋ก์ ๋โฆ
-
Valve๊ฐ Microsoft์ Windows ๊ฒ์ด๋ฐ ์ฑ๋ฅ ๋ํญ ๊ฐ์ ๊ฐ์
Valve๊ฐ Microsoft์ Windows ๊ฒ์ด๋ฐ ์ฑ๋ฅ ๊ฐ์ ์ ๊ฐํ๊ฒ ์๊ตฌํ๊ณ ์๋ค๋ ์์์ด ๋ณด๋๋์์ต๋๋ค. Valve๋ ๊ทธ๋์ Steam Deck๊ณผ Linux ์ค์ฌ ์ ๋ต์ ์ถ์งํ๋ฉด์ Windows์ ๊ฒ์ด๋ฐ ์ต์ ํ ๋ถ์กฑ์ ๋นํํด์์ต๋๋ค. Microsoft๋ DirectStorage, Windows Game Pass ๋ฑ์ ๊ธฐ์ ๋ก ๋์ํ๊ณ ์์ง๋ง, Valvโฆ
-
.NET์ Postgres๋ฅผ ํ์ฉํ ๊ณ ์ฑ๋ฅ ๋ถ์ฐ ์บ์ฑ ๊ตฌํ
๋ง์ดํฌ๋ก์ํํธ๊ฐ .NET ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ ๋ถ์ฐ ์บ์ฑ ํจํด๊ณผ ์ต์ ํ ๊ธฐ๋ฒ์ ์์ธํ ์ค๋ช ํฉ๋๋ค. Azure ์์์ Postgres๋ฅผ ํ์ฉํ์ฌ ์บ์ฑ์ ๊ตฌํํ๋ฉด ์ง์ฐ ์๊ฐ์ ์ค์ด๊ณ , ํ์ ์์คํ ์ ๋ถํ๋ฅผ ๊ฐ์์ํค๋ฉฐ, ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ต์ฑ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ์ด ๊ธ์์๋ ์ค์ ๊ตฌํ์ ์ฐธ๊ณ ํ ์ ์๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ .NET ์ ํ๋ฆฌโฆ
-
์๊ฐ C# / .NET ์ข
ํฉ
.NET 10์ Minimal APIs ์ฑ์ํ, Linux ์ํ๊ณ ํ๋, Native AOT ์ค๋ฌด ํ์ฉ์ด ์ด๋ฒ ์๊ฐ์ ์ค์ฌ์ด๋ฉฐ, ๋์์ Semantic Kernel์ ํตํ AI/LLM ํตํฉ์ด ํ์ฐ๋๊ณ ์์ต๋๋ค. ## 1. .NET 10, ํ๋ก๋์ ํ์ค ๊ธฐ์ ๋ก ํ๋ฆฝ .NET 10์ Minimal APIs๊ฐ ์ด์ ํ๋ก๋์ ํ๊ฒฝ์์ ์์ ํ ๊ฒ์ฆ๋ ๊ธฐ์ ๋ก ์ธ์ ๋ฐโฆ
-
async/await ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๊ธฐ - ์ฑ๋ฅ ๋ญ๋น ๋ฌธ์ ํด๊ฒฐ
๋๋ถ๋ถ์ .NET ๊ฐ๋ฐ์๋ค์ด async/await๋ฅผ ์๋ชป ์ฌ์ฉํ๊ณ ์๋ค๋ ํ์ค์ ์ง์ํ๋ ๊ธ์ ๋๋ค. ์ผ๋ฐ์ ์ธ ์ค์ ์ฌํญ๋ค๊ณผ ๊ฐ๊ฐ์ ์ฑ๋ฅ ์ํฅ์ ๋ถ์ํ๊ณ , ์ฌ๋ฐ๋ฅธ ๋น๋๊ธฐ ํจํด์ ์ ์ํฉ๋๋ค. ํนํ ConfigureAwait ์ฌ์ฉ, Task.Result ํผํ๊ธฐ, async all the way ์์น ๋ฑ ์ค๋ฌด์์ ์์ฃผ ๋์น๋ ๋ถ๋ถ๋ค์ ๋ค๋ฃน๋๋ค. ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์โฆ