๐ ๊ฒ์
"dotnet" ๊ฒ์ ๊ฒฐ๊ณผ 31๊ฑด
-
C# yield์ ์จ๊ฒจ์ง ๋น์ฉ, ์ปดํ์ผ๋ฌ๊ฐ ์๋ ค์ฃผ์ง ์๋ ๊ฒ๋ค
๋๋ถ๋ถ์ C# ๊ฐ๋ฐ์๋ yield return์ ์ธ ์ค์ ์์ง๋ง, ๊ทธ ๋ค์์ ์ค์ ๋ก ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๋์ง๋ ์ ๋ชจ๋ฅธ๋ค๋ ๋ฌธ์ ์์์์ ์ถ๋ฐํ ๊ธ์ ๋๋ค. yield return์ ์ฌ์ฉํ๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ๋ด๋ถ์ ์ผ๋ก ์ํ ๋จธ์ (state machine)์ ์๋ ์์ฑํด์ฃผ๋๋ฐ, ์ด ๊ณผ์ ์์ ์์์น ๋ชปํ ์ฑ๋ฅ ๋น์ฉ์ด ๋ฐ์ํ ์ ์๋ค๋ ๋ด์ฉ์ ๋ค๋ฃน๋๋ค. ๋ฐ๋ณต๋ฌธ์ด๋ ์ปฌ๋ ์ ์ฒโฆ
-
C# ๋ฆฌํ๋ ์
์ด๋ ๋ฌด์์ด๊ณ ์ ์กด์ฌํ ๊น
C#/.NET ๊ฐ๋ฐ์๋ผ๋ฉด ์ง๊ฐ์ ์ ์ผ๋ก ํ ๋ฒ์ฏค ์จ๋ดค์ ๋ฆฌํ๋ ์ (Reflection) ๊ธฐ๋ฅ์ ๊ธฐ์ด๋ถํฐ ์ง์ด์ฃผ๋ ๊ธ์ ๋๋ค. ํ์ ์ ๋ณด๋ฅผ ๋ฐํ์์ ๋์ ์ผ๋ก ์กฐํํ๊ณ ์กฐ์ํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฆฌํ๋ ์ ์ด ์ ํํ ๋ฌด์์ธ์ง ๋จผ์ ์ค๋ช ํฉ๋๋ค. ์ด์ด์ .NET์ด ์ด ๊ธฐ๋ฅ์ ์ ํ์๋ก ํ๊ฒ ๋๋์ง, ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ๋์ง๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ์ง์ต๋๋ค. ์ง๋ ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋โฆ
-
AWS Textract vs Google Vision, ๊ทธ๋ฆฌ๊ณ ๋ ๋ค ๊ฑด๋๋ฐ์ด์ผ ํ ๋
๋ฌธ์ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ ์ธ OCR(๊ดํ ๋ฌธ์ ์ธ์) ์๋น์ค๋ฅผ ๊ณ ๋ฅด๋ฉด์ ํ ์ฃผ ๋ด๋ด AWS Textract์ Google Vision์ ๋ฒค์น๋งํนํ๋ ๊ฒฝํ์ ๋ด์ ๊ธ์ ๋๋ค. ๋ ํด๋ผ์ฐ๋ OCR ์๋น์ค๋ฅผ ์ค์ ๋ฌธ์๋ก ํ ์คํธํ๋ฉด์ ์ ํ๋์ ์ฒ๋ฆฌ ์๋ ์ฐจ์ด๋ฅผ ์ง์ ๋น๊ตํฉ๋๋ค. ์ฌ๊ธฐ์ ๊ทธ์น์ง ์๊ณ , ์ด๋ค ์ํฉ์์๋ ๋ ๋ค ์ฐ์ง ์๊ณ ๋ค๋ฅธ ๋์์ ํํ๋ ๊ฒ ๋ ๋์ ์ โฆ
-
์ด๋ฒ ์ฃผ Cursor + .NET: ๊ท์น 8๊ฐ์ ์์ธ์ด 1ํธ
Agentic Architect๊ฐ ๋งค์ฃผ ๊ณต์ ํ๋ Cursor ์๋ํฐ์ .NET ๊ฐ๋ฐ์ ์ํ ๋ค์ด์ ์คํธ๊ฐ ์ด๋ฒ ์ฃผ์๋ ์ฌ๋ผ์์ต๋๋ค. ์ธ์ ์ด ๋ฐ๋์ด๋ Cursor๊ฐ ์ผ๊ด๋ ์ฝ๋ฉ ๊ท์น์ ์งํค๋๋ก ๋ง๋๋ ์๋์ด C#/.NET ๊ฐ๋ฐ์์ฉ ๊ท์น 8๊ฐ์ง์ ์์ธ์ด ํ ํธ์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. AI ์ฝ๋ฉ ์ด์์คํดํธ๋ฅผ ํ ์ปจ๋ฒค์ ์ ๋ง๊ฒ ๊ธธ๋ค์ด๋ ์ค์ ํ ์์ฃผ๋ผ ์ค๋ฌด์ ๋ฐ๋ก ์ โฆ
-
์๊ฐ C# / .NET ์ข
ํฉ
2026๋ 6์ .NET ์ํ๊ณ๋ AI ํตํฉ์ด ์ด์ ์๋ํยท๋น๋ ์ง๋จยท๋ก์ปฌ ์ถ๋ก ๋ฑ ๊ฐ๋ฐ ์ ์์ญ์ผ๋ก ํ์ฐ๋ ํ ๋ฌ์ด์์ต๋๋ค. Microsoft Build 2026์ ๊ธฐ์ ์ผ๋ก .NET 11๊ณผ C# ์ ๊ธฐ๋ฅ ๋ก๋๋งต์ด ๊ฐ์ํ๋๊ณ , ์ํคํ ์ฒ ์ค๊ณ์ ์ธ์ด ๊ธฐ๋ฅ ์ฌํ๋ผ๋ ์ค์ฉ์ ์ฃผ์ ๋ ์ปค๋ฎค๋ํฐ์ ๋์ ๊ด์ฌ์ ๋ฐ์์ต๋๋ค. ## 1. .NET ร AI ์ค์ ๊ตฌํ โ ์ดโฆ
-
C# Generics์ Collections โ ๊ธฐ์ ๋ฉด์ ์์ ํญ์ ๋์ค๋ ์ฃผ์ ์ด์ ๋ฆฌ
C# ๊ธฐ์ ๋ฉด์ ์์ ๊ฐ์ฅ ์์ฃผ ๋ฑ์ฅํ๋ ์ฃผ์ ์ธ ์ ๋ค๋ฆญ(Generics)๊ณผ ์ปฌ๋ ์ (Collections)์ ๋ฉด์ ๊ด์ ์์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. List<T>, Dictionary<TKey, TValue>, IEnumerable<T> ๊ฐ์ ํต์ฌ ์ปฌ๋ ์ ํ์ ์ ์ฐจ์ด์ ์ ๋ค๋ฆญ ์ ์ฝ(generic constraints)์ ๋์ ์๋ฆฌ๋ฅผ ์ค์ ์ ์ผ๋ก ๋ค๋ฃน๋๋ค. ๋จ์ ์๊ธฐ๋ณด๋คโฆ
-
์คํ ํธ๋ ์ด์ค ๋ฐ์ 4์ด ๋ง์ ์์ ์ ์๊น์ง โ Self-Healing .NET API Gateway ๊ตฌ์ถ๊ธฐ
Semantic Kernel, Groq, Hangfire, SignalR์ ์กฐํฉํด .NET 10 API ๊ฒ์ดํธ์จ์ด์์ ์์ธ ๋ฐ์ ์ 4์ด ์์ LLM์ด ์์ ์ ์์ ์์ฑํ๊ณ ๋ผ์ด๋ธ ๋์๋ณด๋์ ์ค์๊ฐ ํธ์ํ๋ ์์คํ ์ ๊ตฌํํ ์ฌ๋ก์ ๋๋ค. ์์ธ๊ฐ ๋ฐ์ํ๋ฉด Hangfire๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ก์ ์์ฑํด Groq์ ํตํด LLM์ ๋ถ์์ ์์ฒญํ๊ณ , SignalR๋ก ๊ฒฐ๊ณผ๋ฅผโฆ
-
2026๋
.NET 8 Clean Architecture ์คํํฐ ํ
ํ๋ฆฟ โ EF Core + JWT ์ธ์ฆ ํฌํจ
20๋ ์ด์ ์ํฐํ๋ผ์ด์ฆ C# ์์คํ ์ ๊ฐ๋ฐํด์จ ์ ์๊ฐ ๊ณต๊ฐํ Clean Architecture 4-ํ๋ก์ ํธ ํ ํ๋ฆฟ์ ๋๋ค. ๋๋ฉ์ธ, ์ ํ๋ฆฌ์ผ์ด์ , ์ธํ๋ผ, API ๋ ์ด์ด 4๊ฐ ํ๋ก์ ํธ๋ก ๊ตฌ์ฑ๋๋ฉฐ ์๊ฒฉํ ์์กด์ฑ ๋ฐฉํฅ ๊ท์น์ ์ ์ฉํ๊ณ ๋๋ฉ์ธ ์ํฐํฐ๊ฐ ์์ฒด ๋ถ๋ณ์ฑ(invariant)์ ๊ด๋ฆฌํ๋๋ก ์ค๊ณํ์ต๋๋ค. EF Core์ JWT ์ธ์ฆ์ด ๋ด์ฅ๋์ด ์์ผ๋ฉฐ Appโฆ
-
.NET 8 + Ollama + React๋ก 30๋ถ ๋ง์ ๋ก์ปฌ RAG ์ฑ๋ด ๋ง๋ค๊ธฐ
API ํค๋, ํด๋ผ์ฐ๋๋, ์์ ์ก ๋น์ฉ๋ ์์ด ๋ด PC์์๋ง ๋์๊ฐ๋ PDF Q&A ์ฑ๋ด์ .NET 8๊ณผ React๋ก ๊ตฌํํ ์ค์ต ํํ ๋ฆฌ์ผ์ ๋๋ค. ์์ค ํ์ผ 9๊ฐ, ์ฝ 400์ค์ ์ฝ๋๋ก RAG(Retrieval-Augmented Generation) ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ก์ปฌ LLM์ธ Ollama์ ์ฐ๋ํ์ต๋๋ค. ์ ์ฒด ์ํคํ ์ฒ ์ค๋ช ๊ณผ ํจ๊ป ๊ตฌํ ๊ณผ์ ์์ ์ง์ โฆ
-
.NET 8 Clean Architecture ์คํํฐ ํ
ํ๋ฆฟ (2026๋
ํ) โ EF Core + JWT ํฌํจ
"๋น์ฆ๋์ค ๋ก์ง์ ์ด๋์ ๋๋๊ฐ"๋ผ๋ ํ ๋ด ๋จ๊ณจ ๋ ผ์์ ๋๋ด๊ธฐ ์ํด ๋ง๋ Clean Architecture ์คํํฐ ํ ํ๋ฆฟ์ GitHub์ MIT ๋ผ์ด์ ์ค๋ก ๊ณต๊ฐํ ๊ธ์ ๋๋ค. Domain, Application, Infrastructure, Presentation 4๊ฐ ํ๋ก์ ํธ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์๊ฒฉํ ์์กด์ฑ ๋ฐฉํฅ๊ณผ ์์ฒด ๋ถ๋ณ ์กฐ๊ฑด์ ์์ ํ๋ ๋๋ฉ์ธ ์ํฐํฐ๊ฐ ํนโฆ
-
์คํ ํธ๋ ์ด์ค์์ ์์ ์ ์๊น์ง 4์ด โ Self-Healing .NET API Gateway ๊ตฌ์ถ๊ธฐ
Semantic Kernel, Groq, Hangfire, SignalR์ ์กฐํฉํด ์์ธ ๋ฐ์ ์ LLM์ด ์์ ์์ ์ ์ํ๊ณ ์ค์๊ฐ ๋์๋ณด๋์ ํธ์ํด์ฃผ๋ .NET 10 API ๊ฒ์ดํธ์จ์ด ๊ตฌ์ถ ๊ฒฝํ์ ๊ณต์ ํ ๊ธ์ ๋๋ค. ์์ธ ๋ฐ์ ํ 4์ด ์ด๋ด์ AI ๋ถ์ ๊ฒฐ๊ณผ๊ฐ ์ ๋ฌ๋๋ ๊ตฌ์กฐ๋ก, ์ด์ ์๋น์ค์ ์๊ฐ ์น์ (self-healing) ๊ฐ๋ฅ์ฑ์ ์ค์ ๋ก ๊ตฌํํด ๋ณด์ธ ์ โฆ
-
API ํคยทํด๋ผ์ฐ๋ ๋น์ฉ ์ ๋ก โ .NET 8 + Ollama + React๋ก 30๋ถ ๋ง์ RAG ์ฑ๋ด ๋ง๋ค๊ธฐ
.NET 8๊ณผ React, ๋ก์ปฌ LLM ๋๊ตฌ์ธ Ollama๋ฅผ ์กฐํฉํด PDF ์ง์์๋ต ์ฑ๋ด์ ์์ ํ ๋ด PC ์์์ ๊ตฌ๋ํ ๊ฒฝํ๋ด์ ๋๋ค. ์ ์ฒด ์์ค๊ฐ ๋จ 9๊ฐ ํ์ผ, ์ฝ 400์ค์ ๋ถ๊ณผํ ์ ๋๋ก ๊ฐ๊ฒฐํ๊ฒ ๊ตฌ์ฑ๋์ผ๋ฉฐ, ์ธ๋ถ API ํค๋ ์์ ์ก ๋น์ฉ ์์ด RAG(Retrieval-Augmented Generation) ์ํคํ ์ฒ๋ฅผ ๋ก์ปฌ์์ ์คํํ ๊ฒ์ด ํต์ฌ์ ๋๋ค.โฆ
-
์ฌ์์ฑ ์์ด ๋ ๊ฑฐ์ .NET ์ ํ๋ฆฌ์ผ์ด์
ํ๋ํํ๊ธฐ
12๋ ๋ .NET Framework 4.5 Web API๋ฅผ ์ ๋ฉด ์ฌ์์ฑ ์์ด ๋จ๊ณ์ ์ผ๋ก ํ๋ํํ ์ค์ ์ฌ๋ก๋ฅผ ๋ค๋ฃฌ ๊ธ์ ๋๋ค. ๋น ๋ฑ ๋ฐฉ์ ๋์ ์คํธ๋ญ๊ธ๋ฌ ํผ๊ทธ(Strangler Fig) ํจํด ๋ฑ์ ํ์ฉํด ๊ธฐ์กด ์์คํ ์ ์ด์ํ๋ฉด์ ์กฐ๊ธ์ฉ ๊ต์ฒดํด ๋๊ฐ๋ ์ ๋ต์ด ํต์ฌ์ ๋๋ค. ๋ ๊ฑฐ์ ์ฝ๋๋ฒ ์ด์ค์ ์จ๋ฆํ๋ ํ์ด๋ผ๋ฉด ๊ณต๊ฐํ ๋ด์ฉ์ด ๋ง์ผ๋ฉฐ, ์ค์ ๋ง์ฃผ์น๋ ์์กด์ฑ ๋ฌธ์ ์โฆ
-
Squirix๊ฐ .NET ๋ถ์ฐ ์บ์์ ์๊ฒฉํ ํด๋ผ์ด์ธํธ/์๋ฒ ์ํคํ
์ฒ๋ฅผ ์ ํํ ์ด์
์คํ์์ค .NET ๋ถ์ฐ ์บ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Squirix์ ์ค๊ณ ์ฒ ํ์ ์ค๋ช ํ๋ ๊ธ์ ๋๋ค. ๋ง์ ์บ์ ์๋ฃจ์ ์ด ์๋ฒ ๋๋ ๋ฐฉ์์ ํํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, Squirix๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ฅผ ๋ช ํํ ๋ถ๋ฆฌํ๋ ์ํคํ ์ฒ๋ฅผ ๊ณ ์งํฉ๋๋ค. ์ด ๋ฐฉ์์ ์บ์ ์ํ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ธฐ ์ฝ๊ณ , ์๋ฒ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ค์ผ์ผ์์ํ ์ ์์ผ๋ฉฐ, ์ฌ๋ฌ ์๋น์ค๊ฐ ํ๋์ ์บ์ ์๋ฒ๋ฅผ ๊ณต์ ํ๊ธฐ ํธ๋ฆฌํโฆ
-
Cursor + .NET ์ฃผ๊ฐ ์์: ์๋์ด C#/.NET ๊ฐ๋ฐ์๋ฅผ ์ํ 6๊ฐ์ง ๊ท์น๊ณผ ์์ธ์ด
AI ์ฝ๋ฉ ๋๊ตฌ์ธ Cursor๋ฅผ C#/.NET ๊ฐ๋ฐ์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๊พธ์คํ ์ ๋ฆฌํด์จ 'Agentic Architect' ์๋ฆฌ์ฆ์ ์ฃผ๊ฐ ๋ค์ด์ ์คํธ์ ๋๋ค. ์ด๋ฒ ํธ์๋ ์ฌ๋ฌ ์ธ์ ์ ๊ฑธ์ณ Cursor๊ฐ ์ผ๊ด๋ ์ปจํ ์คํธ๋ฅผ ์ ์งํ๋๋ก ๋๋ ์๋์ด ์์ค์ ๊ท์น 6๊ฐ์ง์, ๊ทธ ๋ฐฐ๊ฒฝ ์ฒ ํ์ ๋ด์ ์์ธ์ด 1ํธ์ด ๋ด๊ฒจ ์์ต๋๋ค. AI ๋๊ตฌ๊ฐ ๋น ๋ฅด๊ฒ ์ ๋ฌด์ ์ค๋ฉฐ๋คโฆ
-
C# 14์ ์๋ก์ด `field` ํค์๋ ์์ ์ ๋ณต
C# 14(.NET 10 / VS2026)์ ์๋กญ๊ฒ ์ถ๊ฐ๋ `field` ํค์๋๋ฅผ ์๊ฐํ๋ ๊ธ์ ๋๋ค. ๊ธฐ์กด์๋ ํ๋กํผํฐ ์ ๊ทผ์์ ์ปค์คํ ๋ก์ง์ ๋ฃ์ผ๋ ค๋ฉด ๋ณ๋์ backing field๋ฅผ ์ง์ ์ ์ธํด์ผ ํ๋๋ฐ, ์ด์ `field` ํ ํฐ์ ์ฐ๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก ์์ฑํ backing field์ ๋ฐ๋ก ์ ๊ทผํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด `set { field =โฆ
-
dateutil vs DateTimeOffset: ํ์์คํฌํ 100๋ง ๊ฐ ํ์ฑ ์ฑ๋ฅ ๋น๊ต โ 19๋ฐฐ ์ฐจ์ด
Python์ `dateutil.parser.parse`์ C#์ `DateTimeOffset.TryParseExact`๋ฅผ ํ์์คํฌํ 100๋ง ๊ฑด ์ฒ๋ฆฌ ๊ธฐ์ค์ผ๋ก ์ง์ ๋ฒค์น๋งํฌํ ๊ฒฐ๊ณผ๋ฅผ ๊ณต์ ํ๋ ๊ธ์ ๋๋ค. `dateutil`์ ํ์์ ์๋์ผ๋ก ์ถ๋ก ํ๋ ML ๋ฐฉ์์ ํ ํฌ๋์ด์ ๋ฅผ ์ฌ์ฉํด ํธ๋ฆฌํ์ง๋ง, `DateTimeOffset.TryParseExact`๋ ๋ฏธ๋ฆฌ โฆ
-
๋ณ๊ฒฝ ์ฌํญ์ ๋๋๋ฆด ์ ์๋ EF Core์ฉ audit log ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์ ๋ง๋ค๊ธฐ
๋น์ฆ๋์ค ์ฑ์ ๋ช ๊ฐ ๋ง๋ค๋ค ๋ณด๋ฉด audit log(๋ณ๊ฒฝ ์ด๋ ฅ ๊ธฐ๋ก)๋ฅผ ๋ฐ๋ณตํด์ ๊ตฌํํ๊ฒ ๋๋ค๋ ๊ฒฝํ์์ ์ถ๋ฐํ ์คํ์์ค ํ๋ก์ ํธ ์๊ฐ ๊ธ์ ๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํต์ฌ์ ๋จ์ํ ๊ธฐ๋ก์ ๊ทธ์น์ง ์๊ณ , ํน์ ๋ณ๊ฒฝ์ ์ค์ ๋ก ๋๋๋ฆฌ๋(undo) ๊ธฐ๋ฅ๊น์ง ์ง์ํ๋ค๋ ์ ์ ๋๋ค. EF Core์ ๋ณ๊ฒฝ ์ถ์ (change tracking) ๊ธฐ๋ฅ์ ํ์ฉํด ์ํฐํฐ ์์ ์ ํ โฆ
-
์๊ฐ 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 ์ฒ๋ฆฌ ํ์ดํ๋ผโฆ
-
ardalis/CleanArchitecture โ ASP.NET Core 10 ์ง์ Clean Architecture ์๋ฃจ์
ํ
ํ๋ฆฟ (18,000+ โ
)
GitHub์์ 18,000๊ฐ ์ด์์ ์คํ๋ฅผ ๋ฐ์ ardalis์ Clean Architecture ์๋ฃจ์ ํ ํ๋ฆฟ์ด ASP.NET Core 10 ๋ฒ์ ์ ์ง์ํฉ๋๋ค. DDD(Domain-Driven Design) ์์น์ ๊ธฐ๋ฐํด ๋๋ฉ์ธ, ์ ํ๋ฆฌ์ผ์ด์ , ์ธํ๋ผ, UI ๋ ์ด์ด๊ฐ ๋ช ํํ๊ฒ ๋ถ๋ฆฌ๋ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฒ์ฆ๋ ์ํคํ ์ฒ ํจํด์ด ๋ฏธ๋ฆฌ ์ธํ ๋์ด ์์ด ํ ๊ท๋ชจโฆ
-
ArrayPool๋ก ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์์ด 10๋ง ์ ํธ์ง ๊ฑฐ๋ฆฌ(Edit Distance) ๊ณ์ฐ โ 14์ด โ 200ms
Python์ textdistance ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ .NET์ ArrayPool ๊ธฐ๋ฐ ๊ตฌํ์ ๋น๊ตํ ์ฑ๋ฅ ๋ฒค์น๋งํฌ์ ๋๋ค. Python์ ๋ฌธ์์ด ์๋ง๋ค O(mรn) ํฌ๊ธฐ์ ํ๋ ฌ์ ์๋ก ํ ๋นํ๊ธฐ ๋๋ฌธ์ 10๋ง ์ ์ฒ๋ฆฌ์ 14์ด๊ฐ ์์๋ฉ๋๋ค. .NET์์๋ ArrayPool๋ก ํ ํ๋๋ฅผ ๋ฏธ๋ฆฌ ํ ๋นํ ๋ค ๋ชจ๋ ํธ์ถ์์ ์ฌ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ ์์ ์ 200ms ๋ฏธ๋งโฆ
-
.NET 8์์ Feature Flags ์์ ์ ๋ณต โ ASP.NET Core, Minimal APIs, Blazor ๋ชจ๋ ์ง์
Feature Flags(๊ธฐ๋ฅ ํ๋๊ทธ)๋ ์ฝ๋ ๋ฐฐํฌ ์์ด ํน์ ๊ธฐ๋ฅ์ ์ผ๊ณ ๋ ์ ์๋ ๊ธฐ๋ฒ์ผ๋ก, ์์ ํ ์ ์ง์ ๋ฐฐํฌ์ A/B ํ ์คํธ์ ํ์์ ์ ๋๋ค. ์ด ๊ธ์ .NET 8 ํ๊ฒฝ์์ ASP.NET Core ์ ํต ๋ฐฉ์, Minimal APIs, Blazor ๊ฐ๊ฐ์์ Feature Flags๋ฅผ ์ด๋ป๊ฒ ์ค์ ํ๊ณ ํ์ฉํ๋์ง ๋จ๊ณ๋ณ๋ก ์๋ดํฉ๋๋ค. .NET์๋ Micrโฆ
-
NuGet ํจํค์ง ํ๋ฃจ๋ โ .NET 10์์ ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ ๋ฐ ์ทจ์ฝ์ ๋ณด๊ณ ๋ํญ ๊ฐ์
.NET 10์ ๋์ ๋ NuGet ํจํค์ง ํ๋ฃจ๋(package pruning) ๊ธฐ๋ฅ์ด ์ค์ ๋ก ์ผ๋ง๋ ํจ๊ณผ์ ์ธ์ง .NET ํ์ด ์์น๋ก ๊ณต๊ฐํ์ต๋๋ค. ํจํค์ง ํ๋ฃจ๋์ด๋ .NET ํ๋ซํผ ์์ฒด๊ฐ ์ด๋ฏธ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ๋ก์ ํธ ์์กด์ฑ ๊ทธ๋ํ์์ ์๋์ผ๋ก ์ ๊ฑฐํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก transitive ์ทจ์ฝ์ ๋ณด๊ณ ์(๊ฐ์ ์์กด ํจํค์ง์ ๋ณด์ ์ทจ์ฝ์ ๊ฒฝ๊ณ )๊ฐ โฆ
-
redb.Route โ .NET์ฉ Apache Camel: 22๊ฐ ์ ์กยท30+ EIP ํจํดยท์ปดํ์ผ DSL
JVM ์ํ๊ณ์์ 2007๋ ๋ถํฐ ์ํฐํ๋ผ์ด์ฆ ํตํฉ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์จ Apache Camel์ ์ค๊ณ ์ฒ ํ์ .NET์ผ๋ก ๊ฐ์ ธ์จ ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ redb.Route๊ฐ ์๊ฐ๋์์ต๋๋ค. HTTP, AMQP, Kafka ๋ฑ 22๊ฐ์ง ์ ์ก ๋ฐฉ์๊ณผ 30๊ฐ ์ด์์ EIP(Enterprise Integration Patterns) ํจํด์ ์ง์ํ๋ฉฐ, ๋ฐํ์ ํด์ ๋์ ์ปดโฆ
-
.NET Aspire์์ ํ๋ก๋์
๊ธ Entra ID ์ธ์ฆ ๊ตฌํํ๊ธฐ
.NET Aspire์์ ํ๋ก๋์ ๊ธ Entra ID ์ธ์ฆ์ ๊ตฌํํ๋ ์ค์ ๊ฐ์ด๋์ ๋๋ค. ๊ฐ๋ฐ ์ด๊ธฐ ๋จ๊ณ์ localhost ํ๊ฒฝ์์๋ ์ธ์ฆ์ด ๊ฐ๋จํ์ง๋ง, ๋ถ์ฐ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์์ ์ค์ ํ๋ก๋์ ํ๊ฒฝ์ผ๋ก ๋์๊ฐ ๋ ๋ ๋ณต์กํด์ง๋๋ค. ์ด ๊ธ์ .NET Aspire๋ฅผ ํ์ฉํ์ฌ Azure Entra ID๋ฅผ ํตํด ์์ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ธ์ฆ ์์คํ ์ ๊ตฌ์ถํ๋โฆ
-
DebugProbe๋ก ASP.NET Core ํ๊ฒฝ ๊ฐ ์์ฒญ ๋น๊ตํ๊ธฐ
DebugProbe๋ ASP.NET Core ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋์ผํ ์์ฒญ์ด ์๋ก ๋ค๋ฅธ ํ๊ฒฝ์์ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋๋์ง ๋น๊ตํ ์ ์๋ ๋๊ตฌ์ ๋๋ค. ๊ฐ๋ฐ ํ๊ฒฝ์์๋ ์ ์์ ์ผ๋ก ์๋ํ์ง๋ง ํ๋ก๋์ ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์ํฉ์ ํํฉ๋๋ค. ์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๊ฒฝ ๊ฐ์ ์ฐจ์ด๋ฅผ ๋ช ํํ ํ์ ํ๊ณ ๋๋ฒ๊น ์๊ฐ์ ํฌ๊ฒ ์ค ์ ์์ต๋๋ค.
-
.NET 10์์ MediatR์ ๋ฒ๋ฆฌ๊ณ CQRS๋ฅผ ์ง์ ๊ตฌํํ ์ด์
๊ฐ๋ฐ์๊ฐ ์ธ๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ MediatR์ ์ฌ์ฉํ๋ ํ๋ก์ ํธ๋ฅผ ํฌ๊ธฐํ๊ณ CQRS ํจํด์ ์ง์ ๊ตฌํํ ๊ฒฝํ์ ๊ณต์ ํ์ต๋๋ค. MediatR์ด ์ ๋ช ํ๊ณ ์ข์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด์ง๋ง, ๋ผ์ด์ ์ฑ ์ ์ฑ ๋ณํ์ ํ๋ก์ ํธ์ ํน์ ์๊ตฌ์ฌํญ์ด ๋ง์ง ์์ ์ง์ ๊ตฌํํ๋ ๊ฒ์ด ๋ ๋์๋ค๊ณ ์ค๋ช ํฉ๋๋ค. .NET 10์ ์ต์ ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด ๊ฐ๋ณ๊ณ ์ ์ฐํ CQRS ๊ตฌํ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ด๋ ๋ถโฆ
-
Ubuntu 26.04, .NET 10๊ณผ ํจ๊ป ์ถ์ - Linux ๊ฐ๋ฐ ํ๊ฒฝ ์
๊ทธ๋ ์ด๋
Ubuntu 26.04 (Resolute Raccoon)๊ฐ .NET 10์ ํฌํจํ์ฌ ๊ณต์ ์ถ์๋์์ต๋๋ค. ์์นด์ด๋ธ์์ ์ง์ .NET 10์ ์ค์นํ ์ ์์ผ๋ฉฐ, ์๋ก์ด -resolute ์ปจํ ์ด๋ ํ๊ทธ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. Native AOT ์ฑ ๋น๋ ๋ฐฉ๋ฒ๋ ์ง์๋๋ฉฐ, dotnet-backports PPA๋ฅผ ํตํด .NET 8๊ณผ 9๋ ํจ๊ป ์ค์น ๊ฐ๋ฅํฉ๋๋ค. Lโฆ
-
์๊ฐ C# / .NET ์ข
ํฉ
.NET 10์ ์ ์ ์ถ์ ๋ฐ ๋ณด์ ๊ฐํ, Native AOT ๊ธฐ์ ์ ์ค๋ฌด ํ์ฐ, Semantic Kernel์ ํตํ AI ํตํฉ ํ์คํ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ์์ผ๋ฉฐ, Linux ์ง์ ๊ฐํ์ Node.js ์ฐ๋์ผ๋ก C# ๊ฐ๋ฐ์ ํ๋ซํผ ํ์ฅ์ด ๊ฐ์ํ๋๊ณ ์์ต๋๋ค. ## 1. .NET 10์ ์ ์ ์ถ์์ ๋ณด์ ๊ฐํ .NET 10์ด Ubuntu 26.04์์ ์ ์ ์ง์๋โฆ
-
Ubuntu 26.04์์ .NET 10 ์ถ์ ๋ฐ ์๋ก์ด ๊ธฐ๋ฅ
Ubuntu 26.04 (Resolute Raccoon)๊ฐ .NET 10์ ์ ์ ์ง์ํ๋ฉฐ ์ถ์๋์์ต๋๋ค. ์์นด์ด๋ธ์์ ์ง์ .NET 10์ ์ค์นํ ์ ์์ผ๋ฉฐ, Docker ์ฌ์ฉ์๋ฅผ ์ํ ์๋ก์ด `-resolute` ์ปจํ ์ด๋ ํ๊ทธ๊ฐ ์ ๊ณต๋ฉ๋๋ค. Native AOT ์ ํ๋ฆฌ์ผ์ด์ ๋น๋๊ฐ ๊ธฐ๋ณธ ์ง์๋๋ฉฐ, dotnet-backports PPA๋ฅผ ํตํด .NET 8๊ณผ โฆ