.NET 11, C# 15 유니온 타입으로 애플리케이션 상태를 컴파일러가 검증한다
.NET 11이 정식 출시됐다. C# 15의 유니온 타입과 닫힌 계층 구조로 애플리케이션 상태를 컴파일러가 검사하는 패턴 매칭을 지원하고, Native AOT CLI 호스트와 상시 대기 MSBuild 서버로 일상 개발 속도를 끌어올렸다. ASP.NET Core에는 비동기 유효성 검사와 OpenAPI 3.2, Blazor AI 컴포넌트가 더해졌고, MEAI·MCP·Microsoft Agent Framework로 에이전트 기반 AI 앱을 만들 수 있다. .NET MAUI는 기본 런타임을 CoreCLR로 전환했으며, 표준 지원 기간은 2년이다.
유니온 타입은 기존 타입을 조합할 때 유용하고, 닫힌 계층 구조는 상속 관계를 직접 소유한 모델에 적합하다.
HN 토론
190- CharlieDigital
제 경험상 C#과 .NET이 둘 다 크게 저평가받는 이유는 상당 부분 레거시 때문입니다.
아직도 .NET이 Windows 전용이라고 생각하는 사람들이 있고, .NET Framework 시절 이후로 C#을 쳐다보지 않은 사람들도 있습니다. 또 마이크로소프트의 오픈소스 관련 결정(디버거, 핫 리로드 대참사 등)에 아직도 앙금이 남은 사람들도 있죠.
하지만 백엔드에서 C#과 .NET으로 일상적으로 작업해 보면? 정말 환상적입니다. AI가 이걸 굉장히 좋아하는 것 같고, 에이전트가 마음껏 날뛸 수 있는 도구도 많습니다. Roslyn 분석기, 소스 생성기, (컴파일 언어치고는) 쓸 만한 핫 리로드, 마이크로소프트의 정말 좋은 문서들, 코드베이스마다 편차가 적고 일관성이 높은 점(예: Node 진영에서 Drizzle vs Prisma vs TypeORM vs Kysely vs ... 마주치는 것과 대조적)이 있죠.
제 이전 팀은 TS에서 C#과 F#[0][1]로 전환했는데 축복이었습니다. 플랫폼 운영이 많이 단순해졌어요. 그냥 아주 견고한 도구 체인 하나이고 패키지도 대체로 안정적입니다(플랫폼 설정/도구 유지보수에 드는 노력이 훨씬 적고 그냥 만드는 데 집중). 자사 패키지는 일관된 보안 업데이트를 받고, C#은 JS/TS 생태계에서 마주치는 수준의 전이 패키지 노출이 거의 없습니다.
C#은 AI 코딩 시대에 전반적인 안정성, 강력한 정적 분석기, 타입 고집, 정말 좋은 도구 덕분에 아주 견고한 선택처럼 느껴집니다. 모든 사용 사례에 맞지는 않지만(예: CLI, 서버리스 함수) 백엔드 API에는 환상적입니다.
혹시 찾고 있다면 […]
- giancarlostoro
C#은 VB6 다음으로 배운 두 번째 프로그래밍 언어였습니다. 2000년대 초 제가 12살이었을 때, 가장 친한 친구 컴퓨터(인터넷이 더 빨랐음)로 VB .NET을 다운로드하려고 했던 기억이 납니다. 그냥 무료라서였는데, VB6 프로젝트를 그 위에서 실행할 수 없다는 걸 알고 엄청 실망했죠... 몇 년 후 2007~2009년쯤 C#을 시도했는데 인생이 바뀌었습니다.
디즈니에서 소매업으로 일하다가 결국 대학에 갔고, 졸업 후 첫 직장은 C#이어야 했는데 프로젝트 승인이 안 나서 대신 Python을 처음 접했습니다. 정말 좋아했죠. 그다음 JavaScript는 싫어했지만 지금까지 애증의 관계입니다. 마지막으로 C#인데 .NET 3.5가 아니라 .NET Core를 쓰기 시작했어요. 그건... 뭐랄까, 초기 .NET Core 시절엔 고생이 많았습니다.
.NET으로 만든 멋진 프로젝트가 정말 많은데, 유일한 불만은 마이크로소프트가 실제로 계속 밀고 나갈 크로스 플랫폼 GUI 스택을 만들어서 Linux에서도 되게 해줬으면 하는 것입니다. ;)
대안이 있다는 건 알지만 GUI 스택을 고를 때 동료에게 "그냥 내장된 걸 쓰자"라고 말하는 것만큼 좋은 건 없죠.
- 1a527dd5
https://learn.microsoft.com/en-us/dotnet/core/compatibility/...
주의하세요
(decimal)0.1
// .NET 10: 0.1
// .NET 11: 0.1000000000000000055511151231
- dead_hn_theory
C#과 .NET은 프로그래밍하는 게 정말 즐겁습니다. 제게는 약간 더 "엔터프라이즈스러운" Ruby on Rails 같은데, 일단 들어가면 나름의 흐름이 있습니다. 특히 LINQ와 함께라면 것들이 아주 잘 맞아떨어지죠. Roslyn Compiler Services 등으로 런타임 코드 컴파일/"스크립팅"하는 것도 그냥 훌륭합니다.
- wofo
.NET 릴리스에서 늘 그렇듯 멋진 내용입니다! 런타임 비동기 지원은 놀랍네요... 코드에 상태 머신이 없으면 스택 트레이스가 더 친절하다는 건 알겠지만, 런타임 버전으로 전환하고도 동등한 성능을 낼 수 있을 거라고는 예상 못 했습니다. 멋지네요!
- Rapzid
DotNet에 드디어 공식 버전 관리자가 생겼습니다! dotnetup을 확인해 보세요: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnetup...
- jotato
요즘 사람들은 C#에 어떤 IDE를 쓰나요? 예전(2008년쯤)에는 Visual Studio가 사실상 유일한 선택지였죠.
그런데 지금은 Linux를 쓰고 있습니다. 다시 시작하려면 뭘 써야 할까요?
- GaProgMan
> .NET 11은 .NET 지원 정책에 따라 2년 지원되는 표준 기간 지원(STS) 릴리스입니다. STS와 장기 지원(LTS) 릴리스는 품질 및 서비스 정책이 동일하며, 차이는 지원 기간입니다. .NET 10은 계속 지원되는 LTS 옵션입니다. 어떤 릴리스를 선택하든 서비스 업데이트로 최신 상태를 유지하세요.
이번 건은 핵심을 묻어버렸네요.
- .NET 10은 2028년 11월 14일에 지원 종료
- .NET 11은 2028년 11월 9일에 지원 종료
즉, 11로 업그레이드하는 사람은 지원 일수가 더 적습니다. 하지만 의도는 12가 RTM되자마자 업그레이드하라는 것이죠.
문제는 2.1에서 꿈쩍도 안 하거나(2.1 재출시인 2.3으로 업그레이드조차 거부하는) 고객들이 있다는 겁니다.