마이크로소프트는 최근 닷넷(.NET) 10 버전의 첫 미리보기를 공개했다.
닷넷10은 장기지원(LTS) 릴리스로 출시 후 3년 간 기술지원을 제공한다. 현재 최신 버전인 닷넷9 버전은 단기지원(STS) 릴리스로 2026년 5월 12일 기술지원을 종료한다.
닷넷10 미리보기1은 런타임, 핵심 라이브러리, 엔티티 프레임워크, C#, F#, 비주얼베이직, ASP닷넷, 윈도우폼즈, 윈도우프리젠테이션파운데이션(WPF), 멀티플랫폼앱UI(MAUI) 등 플랫폼 전반의 개선사항을 담았다.
닷넷10 런타임은 인기있는 언어 기능의 추상화 오버헤드를 줄인다. 배열 인터페이스 메소드를 포함하도록 JIT의 메소드 호출을 비정상화하는 기능이 확장됐다. JIT은 가상 호출 포함 경우에도 배열을 반복하는 코드를 최적화할 수 있다. 배열 인터페이스의 가상화를 해제해 JIT가 코드를 최적화할 수 있다.
JIT은 또한 가비지콜렉터(GC) 포인터를 포함하지 않는 값 형식의 작은 고정 크기 배열을 스택 할당해 참조 형식의 추상화 패널티를 더울 줄일 수 있다.
64비트 프로세서에 대한 고급벡터확장(AVX) 10.2를 지원한다. AVX 10.2를 지원하는 하드웨어를 아직 사용할 수 없기 때문에 이 기능은 기본적으로 비활성화돼 있다.
닷넷10 라이브러리는 새로운 기능을 담았다. 새로운 ‘FindByThumbprint’ 메소드를 사용하면 SHA-1 이외의 해시 알고리즘을 사용해 지문으로 인증서를 찾을 수 있다. ASCII로 인코딩된 파일에서 직접 PEM으로 인코딩된 데이터를 읽기 위한 지원이 추가됐다. iSOWeek 클래스에 DataOnly 형식을 지원하는 새 메소드 오버로드를 포함한다. 유니코드 문자열 정규화 API는 문자 범위에서 작동하도록 향상됐다. 숫자 문자열 비교를 위한 새 옵션이 도입됐다.
단일 매개 변수를 사용하는 새 ‘TimeSpan.FromMilliseconds’ 오버로드가 추가됐다. Zip 악축을 더 효율적으로 하게 됐고, 더 빠른 성능과 더 낮은 메모리 사용량을 제공한다. 기존 보관소에 2GB 파일을 추가하는 특정 사례에서 실행 시간이 99.8% 감소하고, 메모리 사용량이 훨씬 더 크게 감소한다고 한다.
ASP닷넷은 OpenAPI 3.1 버전 문서를 생성하고, 생성된 OpenAPI 문서를 YAML 형식으로 제공할 수 있게 됐다. 블레이저(Blazor) 프레임워크를 구현하는 자바스크립트는 정적 웹 자산으로 제공돼 압축 가능하고 크기를 76%까지 줄일 수 있다.
닷넷10은 윈도우 플랫폼용 개발언어의 최신 버전인 C# 14를 처음으로 포함한다. C# 14는 필드 기반 속성을 포함하게 됐다. C#에서 속성은 속성 값을 저장하는 숨겨진 필드가 있는 축약된 형식으로 저장되곤 하는데, 새로운 필드 키워드는 간결한 속성 정의를 사용하면서 해당 속성에 대한 접근을 제공한다.
그밖의 C# 14 새 기능 다수는 아직 닷넷10 미리보기에 포함되지 않았다.
윈도우폼즈는 바이너리포매터(BinaryFormatter)의 보안 문제를 극복하기 위해 JSON 직렬화를 사용하는 새로운 클립보드 API를 제공한다. 닷넷 MAUI는 안드로이드, iOS, 맥OS, tvOS 등의 품질 향상에 중점을 뒀다. 엔티티프레임워크(EF) 10은 언어통합쿼리(LINQ) 및 SQL 번역 기능이 향상됐다. xecuteUpdateAsync는 이제 정규식이 아닌 람다를 허용한다.
닷넷10 미리보기는 앞으로 최소 2차례 더 나올 예정이다. 대부분의 업데이트는 닷넷9 안정화 위주다. 닷넷10은 9월 첫 릴리스후보(RC) 공개를 거쳐 11월 정식 출시될 예정이다.
글. 바이라인네트워크
<김우용 기자>yong2@byline.network