한 주 동안 .NET 생태계에서 있었던 주요 이슈와 아티클, 기술 트렌드를 정리해 소개합니다.
새 Windows 버전에서 .NET Framework 3.5가 독립 설치(Standalone)로 전환
- 저자: Jeremy Likness (.NET Team)
- 태그: #dotnetframework #windows11 #deployment #eos
주요 내용
- Windows 11 Insider Preview Build 27965부터 .NET Framework 3.5가 Windows 구성요소에서 제외되고 별도 설치로 제공
- 적용 범위: Windows 11 Insider Build 27965 이후(Windows 10, Windows 11 25H2까지는 영향 없음)
- .NET Framework 3.5 지원 종료(2029-01-09) 일정에 맞춰 마이그레이션 계획 수립을 권장
- 설치/호환성/이행 경로는 Microsoft Learn 가이드로 안내
WPF 메모리 누수: RAM을 잡아먹는 정적 이벤트 함정
주요 내용
- 정적(static) 이벤트 구독이 창/뷰 인스턴스를 GC에서 “살아있게” 만들어 누수를 유발할 수 있음
- unsubscribe 누락 시 닫힌 창도 참조가 남아 수거되지 않는 이유를 예제로 재현
- 간단한 반복 생성/폐기 시나리오로 누수 관찰 흐름을 제시
- 해결: 수명 관리, 약한 이벤트(WeakEvent) 등으로 구독/해제 구조를 정리
System.Text.Json + TypeInfoResolver Modifier로 프로퍼티 암호화하기
- 저자: Steve Gordon
- 태그: dotnet #systemtextjson #security #serialization
주요 내용
- 문서 DB/이벤트/로그 등에서 민감 프로퍼티를 직렬화 시 암호화, 역직렬화 시 복호화하는 요구를 소개
- Attribute로 암호화 대상 프로퍼티를 표시하는 설계를 제안
DefaultJsonTypeInfoResolverModifiers로 JsonTypeInfo/JsonPropertyInfo 계약을 수정하는 방식 설명- AES-GCM 기반
AesGcmDataEncryptor구현으로 암호화/복호화 핵심 API를 구성 - nonce/tag를 포함한 페이로드 구조와 길이 계산 포인트를 설명
Span<T>중심 저할당 구현을 통해 성능/할당 비용을 함께 고려
공변성과 불변성에 대해 깊게 파고들기
- 저자: Jeremy Davis
- 태그: csharp #generics #variance #immutability
주요 내용
- 제네릭 variance(공변/반공변) 규칙과 불변성(immutability)의 연결을 사례로 설명
- 읽기 전용/불변 컬렉션에서 타입 안전성이 중요한 이유를 정리
- 대입 가능성 규칙이 인터페이스/컬렉션 API 설계에 미치는 영향을 다룸
- 단순 문법이 아니라 “왜 이런 제약이 필요한가”에 초점
.NET에서 예외 vs Result 패턴: 성능 벤치마크
- 저자: Gramli
- 태그: dotnet #performance #exceptions #benchmarkdotnet
주요 내용
- 예외 던지기 vs Result 반환을 “성공/실패 경로”로 나눠 비교하는 벤치마크 설계
BenchmarkDotNet사용, async 경계 비용은Task.Yield()로 포함- 여러 검증 레이어를 통과시키며 에러 전파 비용을 측정
- “예외는 예외 상황, Result는 흐름 제어” 같은 선택 기준을 함께 논의
try-catch 혼돈에서 구조화된 탄력성으로: Polly가 .NET 앱을 바꾸는 방법
- 저자: Sugumar Panneerselvam
- 태그: dotnet #polly #resilience #reliability
주요 내용
- 흩어진
try/catch가 만드는 중복/일관성/관측성 저하 문제를 제기 - Polly로 재시도/서킷 브레이커/타임아웃을 정책으로 구성하는 흐름을 소개
- 일시적/영구적 실패에 따라 정책을 분리해야 한다는 포인트를 강조
- 로깅/메트릭과 결합해 운영 가능한 복원력(resilience) 설계를 지향
GC가 구해주지 않았다: .NET에 가비지 컬렉션이 있어도 리소스를 누수시킨 방법
- 저자: Curious Orbit
- 태그: dotnet #gc #idisposable #resources
주요 내용
- GC는 관리 객체만 수거하며, 파일/소켓/핸들 등은
IDisposable로 명시 해제가 필요 Dispose누락, 이벤트/타이머/캐시 참조 유지 등 대표 누수 패턴을 정리using/await using으로 수명 관리를 습관화하라고 조언- 프로파일러/로깅으로 누수 추적에 접근하는 흐름을 소개
공유 라이브러리가 공유 족쇄가 되는 과정
- 저자: Steven Stuart
- 태그: #architecture #libraries #coupling
주요 내용
- 공유 라이브러리 의존이 결합도 상승, 배포 병목, 버전 지옥을 유발한다고 지적
- “공유=재사용”이 운영/조직 비용을 키울 수 있음을 사례로 설명
- API 안정성/하위호환/릴리스 프로세스/소유권(ownership) 이슈를 짚음
- 대안으로 계약(Contract) 중심, 복제+독립 진화, 경계 재설계를 제안
.NET 10 Linux 지원: 현대 개발자를 위한 결정판 가이드
주요 내용
- Linux에서 .NET 10 설치/운영 관점과 지원 범위를 정리(대표 배포판/Alpine 등)
- 배포판별 설치 커맨드와
dotnet-install.sh예시를 제공 - 컨테이너 이미지 선택/배포 팁을 소개
- ARM64 publish 예시와 기본 트러블슈팅(PATH, CA 인증서 등)을 정리
Avalonia for VS Code: 프리뷰 공개
주요 내용
- VS Code에서 Avalonia 개발을 지원하는 확장(프리뷰) 공개
- XAML/프로젝트 편집 경험 개선과 빠른 피드백 루프를 목표로 함
- Visual Studio/Rider 외 워크플로 옵션을 확장
- 프리뷰 단계이므로 기능 범위/제약/로드맵 확인을 권장
가벼운 읽을거리
후보 항목 중 메인 이슈로 선정되지 않은 가벼운 읽을거리들
C# 자동 DI: Needlr 완전 가이드
services.AddTransient<...>같은 수동 등록 보일러플레이트를 줄이는 자동 등록 접근을 소개- 어셈블리 스캔/규칙 기반 등록과 소스 생성(AOT) 옵션을 개괄
번거로움 없이 VS Code 테마 만들기: 확장 개발
- VS Code 테마 제작 과정을 “생각보다 빠르게 만들 수 있다”는 경험담으로 정리
- Shiki의 CSS 변수 기반 테마 워크플로를 예시로 소개
Comment Studio (Visual Studio 확장)
- Visual Studio에서 주석(Comments) 작성/관리 경험을 개선하는 확장
- 코드 리뷰/협업 흐름에서 코멘트를 남기는 방식을 보조하는 도구
“이 async 메서드는 await가 없어서 동기적으로 실행됩니다”의 진짜 의미
async+await미사용 경고의 의미와 왜 “동기 실행”이 될 수 있는지 설명- 예제로
await없는async메서드가 사실상 Task 래핑이 되는 점을 정리
C# 반올림 완전정복: .NET에서 숫자를 반올림하는 궁극 가이드
Math.Round/Floor/Ceiling등 반올림 API와 사용 포인트를 정리MidpointRounding(ToEven/AwayFromZero 등) 차이를 예제로 설명
애플리케이션과 DB 사이의 타임존 불일치 문제 해결
- 타임존 불일치의 흔한 원인(저장 방식, 서버/DB 설정, ORM 변환 등)을 정리
- 저장/처리는 UTC, 표시(UI)에서만 로컬 변환 원칙을 강조
NDC London 2026 참관/봉사 후기
- NDC London 2026 세션을 날짜별로 요약(접근성, 테스트, AI 등)
- Playwright MCP, .NET 소스 제너레이터 등 인상 깊은 포인트를 메모로 정리
1997년처럼 Quake를 컴파일해보자!
- 1990년대 환경 제약 속에서 Quake 빌드 과정을 재현하며 툴체인을 설명
- 컴파일러/링커/호환성/플랫폼 차이 같은 빌드 이슈를 다룸
“LaunchyBar” Visual Studio 확장 소개
- Visual Studio에서 명령/기능을 빠르게 실행하는 확장(LaunchyBar) 소개
- 반복 작업을 단축하는 사용 시나리오를 간단히 제시
C# Random: .NET에서 신뢰할 수 있는 난수 생성 결정판 가이드
Random의 시드/재현성/스레드 안전성 같은 함정을 정리Random과RandomNumberGenerator(보안 난수)의 구분을 강조
stong/gradscii-art: 머신러닝 기반 ASCII 아트 생성기
- 머신러닝 기반 ASCII 아트 생성기 프로젝트(README/예시 중심)
- 설치/실행 후 입력을 ASCII로 변환하는 기본 흐름을 제공
