2021.03.17

이너루프 성능 향상 外··· MS, 두 번째 닷넷 6 프리뷰 공개

Paul Krill | InfoWorld
마이크로소프트가 차세대 소프트웨어 개발 플랫폼 ‘닷넷 6’의 두 번째 프리뷰를 공개했다. 닷넷 5부터 시작된 닷넷 통합 작업의 일환인 ‘닷넷 6’의 두 번째 프리뷰는 개선된 API 및 라이브러리, 향상된 런타임 성능, 자마린(Xamarin) 기반의 최신 UI 툴킷 닷넷 마우이(Multi-Platform App UI; MAUI)의 초기 빌드를 제공한다.  
 
ⓒGetty Images

닷넷 6의 프로덕션 릴리즈는 오는 11월 출시될 예정이다. 첫 번째 프리뷰가 지난 2월 17일 발표된 데 이어서 이번 프리뷰는 3월 11일에 공개됐다. 각 프리뷰에서는 서버/클라우드, 데스크톱, IoT, 모바일 애플리케이션 개발을 위한 닷넷 6의 개선사항을 확인할 수 있다. 

회사에 따르면 닷넷 6는 현재 자마린 오픈소스 모바일 닷넷 플랫폼을 쓰는 안드로이드, iOS, 맥OS용 개발 기능을 통합할 계획이다. 또한 데스크톱과 모바일 사용 시나리오에서 웹과 네이티브 UI를 결합하는 하이브리드 클라이언트 앱을 빌드할 수 있도록 블레이저(Blazor) 클라이언트 웹 앱 개발 도구를 확장하고 있다. 

블레이저 웹어셈블리(Blazor WebAssembly)는 닷넷 5부터 제공된 최초의 통합 플랫폼이다. 마이크로소프트는 지난 2020년 11월에 발표한 닷넷 5부터 자마린 개발자가 통합된 닷넷 플랫폼을 사용할 수 있는 초석을 마련하면서 통합 프로세스를 시작했다. 

통합 프로세스를 통해 별도의 닷넷 코어(.NET Core), 닷넷 프레임워크(.NET Framework), 자마린(Xamarin)/모노(Mono) 등이 하나의 닷넷으로 합쳐진다. 닷넷 프레임워크 일부는 이미 닷넷 코어로 이전하고 있는 중이고, 기본 클래스 라이브러리와 툴체인에 닷넷 코어와 모노/자마린을 결합하는 과정도 시작됐다.

마이크로소프트는 두 번째 프리뷰에서 코드를 업데이트, 빌드, 테스트하기 위해 자주 그리고 반복적으로 사용하는 도구 및 워크플로우를 최적화하는 등의 ‘이너 루프(inner loop)’ 성능을 향상시켰다고 공식 블로그를 통해 언급했다

예를 들면 핫 리로드(Hot reload)는 디버거(Debugger)가 연결돼 있지 않더라도 앱이 실행되는 동안 코드를 편집할 수 있도록 해 지원되는 모든 운영체제 및 하드웨어 플랫폼에서 개발자 생산성을 향상시킬 것이라고 회사 측은 설명했다. 

또한 통합된 닷넷용 모바일 제품을 포함해 클라이언트 앱 개발 환경이 개선되고 있는 중이라고 마이크로소프트는 말했다. 이러한 작업의 일환으로 닷넷 6에서는 iOS, 안드로이드, 맥OS 개발이 닷넷 SDK 환경에 통합되고, 닷넷 라이브리를 사용하게 된다. 

크로스 UI 프레임워크 자마린.폼즈(Xamarin.Forms)는 닷넷 마우이로 진화해 이를 사용하면 동일한 코드베이스로 안드로이드, 윈도우, 맥OS용 앱을 개발할 수 있다. 블레이저 앱은 닷넷 마우이를 통해 윈도우 및 맥OS에서 네이티브로 실행된다. 

API 및 닷넷 라이브러리 개선도 이뤄졌다. 예를 들면 JsonSerializer(System.Tex.Json)는 이제 객체 그래프를 직렬화할 때 주기를 무시하는 기능을 지원한다. PriorityQueue<TElement.TPriority>는 값과 우선순위가 있는 새 항목을 추가할 수 있는 새 컬렉션이다. 이 밖에 표준 숫자 형식으로 개선된 구문 분석, 향상된 런타임 및 JIT 등을 지원한다. 

첫 번째 닷넷 6 프리뷰에서는 마우이가 안드로이드와 iOS를 지원했다. 이어서 두 번째 프리뷰에서는 맥OS를 추가했다. 향후 윈도우 지원이 추가될 예정이다. 마우이 위에 빌드된 블레이저는 네이티브 애플리케이션 컨테이너 및 네이티브 애플리케이션 컨테이너 컨트롤에 관한 UI 스택을 사용한다. 

이 밖에 닷넷 6 프리뷰에서 이뤄지고 있는 작업들은 다음과 같다. 

• 닷넷의 표준 기능으로 코드 변경을 위한 빠른 빌드 및 작업을 지원하고자 마이크로소프트는 모든 앱 유형에서 새로운 핫코드 리로딩 모델을 정의하고 있다. 이는 빠르고 반복적인 개발을 지원하는 이너 루프 개선 프로젝트를 기반으로 한다. 여기에는 코드 편집을 다시 시작하지 않고 실시간 프로세스에 적용하여 빌드를 건너뛸 수 있도록 하는 기능이 포함돼 있다.

• ARM64 하드웨어와 관련해서 닷넷 6는 기능 활성화에 중점을 두고 있다. 윈도우에서는 윈도우 폼즈(Windows Forms) 및 윈도우 프레젠테이션 프레임워크(Windows Presentation Framework)를 지원한다. 맥에서는 애플 실리콘(ARM64) 칩 지원을 추가한다. 

• 확장 개선, 컨테이너 크기 축소, 시작 및 처리량 성능 향상을 포함해 닷넷 6에서 컨테이너를 개선하기 위한 여러 프로젝트가 진행 중이다. 

• 닷넷 스레드 풀이 매니지드 구현체로 재구축됐으며, 이제 닷넷 6의 기본 스레드 풀이 됐다. 

• 마이크로소프트는 런타임 실행 정보를 사용해 닷넷 6의 시작 속도 및 런타임 처리량을 개선하고자 한다. 이 작업은 PGO(Profile Guided Optimization)를 통해 이뤄지고 있다. 

• 닷넷 6에서는 윈도우 및 맥OS용 단일 파일 앱이 활성화됐다. 닷넷 5에서는 리눅스로 제한됐었다. ciokr@idg.co.kr

 



2021.03.17

이너루프 성능 향상 外··· MS, 두 번째 닷넷 6 프리뷰 공개

Paul Krill | InfoWorld
마이크로소프트가 차세대 소프트웨어 개발 플랫폼 ‘닷넷 6’의 두 번째 프리뷰를 공개했다. 닷넷 5부터 시작된 닷넷 통합 작업의 일환인 ‘닷넷 6’의 두 번째 프리뷰는 개선된 API 및 라이브러리, 향상된 런타임 성능, 자마린(Xamarin) 기반의 최신 UI 툴킷 닷넷 마우이(Multi-Platform App UI; MAUI)의 초기 빌드를 제공한다.  
 
ⓒGetty Images

닷넷 6의 프로덕션 릴리즈는 오는 11월 출시될 예정이다. 첫 번째 프리뷰가 지난 2월 17일 발표된 데 이어서 이번 프리뷰는 3월 11일에 공개됐다. 각 프리뷰에서는 서버/클라우드, 데스크톱, IoT, 모바일 애플리케이션 개발을 위한 닷넷 6의 개선사항을 확인할 수 있다. 

회사에 따르면 닷넷 6는 현재 자마린 오픈소스 모바일 닷넷 플랫폼을 쓰는 안드로이드, iOS, 맥OS용 개발 기능을 통합할 계획이다. 또한 데스크톱과 모바일 사용 시나리오에서 웹과 네이티브 UI를 결합하는 하이브리드 클라이언트 앱을 빌드할 수 있도록 블레이저(Blazor) 클라이언트 웹 앱 개발 도구를 확장하고 있다. 

블레이저 웹어셈블리(Blazor WebAssembly)는 닷넷 5부터 제공된 최초의 통합 플랫폼이다. 마이크로소프트는 지난 2020년 11월에 발표한 닷넷 5부터 자마린 개발자가 통합된 닷넷 플랫폼을 사용할 수 있는 초석을 마련하면서 통합 프로세스를 시작했다. 

통합 프로세스를 통해 별도의 닷넷 코어(.NET Core), 닷넷 프레임워크(.NET Framework), 자마린(Xamarin)/모노(Mono) 등이 하나의 닷넷으로 합쳐진다. 닷넷 프레임워크 일부는 이미 닷넷 코어로 이전하고 있는 중이고, 기본 클래스 라이브러리와 툴체인에 닷넷 코어와 모노/자마린을 결합하는 과정도 시작됐다.

마이크로소프트는 두 번째 프리뷰에서 코드를 업데이트, 빌드, 테스트하기 위해 자주 그리고 반복적으로 사용하는 도구 및 워크플로우를 최적화하는 등의 ‘이너 루프(inner loop)’ 성능을 향상시켰다고 공식 블로그를 통해 언급했다

예를 들면 핫 리로드(Hot reload)는 디버거(Debugger)가 연결돼 있지 않더라도 앱이 실행되는 동안 코드를 편집할 수 있도록 해 지원되는 모든 운영체제 및 하드웨어 플랫폼에서 개발자 생산성을 향상시킬 것이라고 회사 측은 설명했다. 

또한 통합된 닷넷용 모바일 제품을 포함해 클라이언트 앱 개발 환경이 개선되고 있는 중이라고 마이크로소프트는 말했다. 이러한 작업의 일환으로 닷넷 6에서는 iOS, 안드로이드, 맥OS 개발이 닷넷 SDK 환경에 통합되고, 닷넷 라이브리를 사용하게 된다. 

크로스 UI 프레임워크 자마린.폼즈(Xamarin.Forms)는 닷넷 마우이로 진화해 이를 사용하면 동일한 코드베이스로 안드로이드, 윈도우, 맥OS용 앱을 개발할 수 있다. 블레이저 앱은 닷넷 마우이를 통해 윈도우 및 맥OS에서 네이티브로 실행된다. 

API 및 닷넷 라이브러리 개선도 이뤄졌다. 예를 들면 JsonSerializer(System.Tex.Json)는 이제 객체 그래프를 직렬화할 때 주기를 무시하는 기능을 지원한다. PriorityQueue<TElement.TPriority>는 값과 우선순위가 있는 새 항목을 추가할 수 있는 새 컬렉션이다. 이 밖에 표준 숫자 형식으로 개선된 구문 분석, 향상된 런타임 및 JIT 등을 지원한다. 

첫 번째 닷넷 6 프리뷰에서는 마우이가 안드로이드와 iOS를 지원했다. 이어서 두 번째 프리뷰에서는 맥OS를 추가했다. 향후 윈도우 지원이 추가될 예정이다. 마우이 위에 빌드된 블레이저는 네이티브 애플리케이션 컨테이너 및 네이티브 애플리케이션 컨테이너 컨트롤에 관한 UI 스택을 사용한다. 

이 밖에 닷넷 6 프리뷰에서 이뤄지고 있는 작업들은 다음과 같다. 

• 닷넷의 표준 기능으로 코드 변경을 위한 빠른 빌드 및 작업을 지원하고자 마이크로소프트는 모든 앱 유형에서 새로운 핫코드 리로딩 모델을 정의하고 있다. 이는 빠르고 반복적인 개발을 지원하는 이너 루프 개선 프로젝트를 기반으로 한다. 여기에는 코드 편집을 다시 시작하지 않고 실시간 프로세스에 적용하여 빌드를 건너뛸 수 있도록 하는 기능이 포함돼 있다.

• ARM64 하드웨어와 관련해서 닷넷 6는 기능 활성화에 중점을 두고 있다. 윈도우에서는 윈도우 폼즈(Windows Forms) 및 윈도우 프레젠테이션 프레임워크(Windows Presentation Framework)를 지원한다. 맥에서는 애플 실리콘(ARM64) 칩 지원을 추가한다. 

• 확장 개선, 컨테이너 크기 축소, 시작 및 처리량 성능 향상을 포함해 닷넷 6에서 컨테이너를 개선하기 위한 여러 프로젝트가 진행 중이다. 

• 닷넷 스레드 풀이 매니지드 구현체로 재구축됐으며, 이제 닷넷 6의 기본 스레드 풀이 됐다. 

• 마이크로소프트는 런타임 실행 정보를 사용해 닷넷 6의 시작 속도 및 런타임 처리량을 개선하고자 한다. 이 작업은 PGO(Profile Guided Optimization)를 통해 이뤄지고 있다. 

• 닷넷 6에서는 윈도우 및 맥OS용 단일 파일 앱이 활성화됐다. 닷넷 5에서는 리눅스로 제한됐었다. ciokr@idg.co.kr

 

X