[시애틀(미국)=임민철 기자] 마이크로소프트(MS)가 차기 닷넷(.NET) 로드맵을 공개했다. 곧 출시를 앞둔 닷넷 코어(.NET Core) 3.0 버전에서, 그 4 버전대를 건너 뛰고 내년중 '닷넷5'를 내놓는다고 예고했다. MS의 계획에 따르면 닷넷5 버전은 내년 릴리즈된다.
MS의 차세대 애플리케이션 플랫폼 닷넷5는 데스크톱, 모바일, 웹을 아우르는 통합 개발 수단을 지원할 전망이다. 대상 플랫폼에 따라 닷넷 프레임워크, 닷넷 코어, 모노(Mono) 중 하나를 선택해야 했던 기존 닷넷 개발자들에게 상당한 변화가 예고된 셈이다.
MS는 지난 6일 미국 시애틀 워싱턴스테이트컨벤션센터 '빌드2019' 컨퍼런스를 진행하며 출시 일정을 포함한 닷넷5 플랫폼의 주요 변화를 발표했다. 발표 내용을 간단히 요약하면, 앱의 타깃 구동환경에 따라 다르게 쓰여 온 닷넷 프레임워크, 닷넷 코어, 모노 등이 모두 닷넷 우산아래 합쳐진다. 닷넷 코어가 단일 플랫폼으로 통합될 닷넷5의 근간이다.
먼저 닷넷5는 어떤 유형의 애플리케이션을 제작하든 쓰일 API를 포함한 단일 베이스 클래스 라이브러리(BCL)를 갖게 된다. 이를 통해 모든 닷넷 워크로드가 기존 애플리케이션 프레임워크로 지원된다. 여기에 ASP닷넷(ASP.NET)을 쓰는 크로스플랫폼 웹개발, 자마린(Xamarin)을 쓰는 iOS와 안드로이드 모바일앱 개발, 윈도 데스크톱 개발, 크로스플랫폼 사물인터넷(IoT) 기기 개발 시나리오가 포함된다.
또 닷넷5는 다중 연산 및 디바이스 환경을 지원하는 저스트인타임(JIT) 및 어헤드오브타임(AOT) 컴파일 모델을 모두 지원한다. JIT 컴파일은 서버와 데스크톱 워크로드 및 개발 환경에 더 나은 성능을 보여 준다. AOT 컴파일은 기동속도와 적은 자원 점유량이 이점으로 모바일과 IoT 기기에 더 적합하다.
MS에 따르면 닷넷은 또 소프트웨어개발도구(SDK) 프로젝트 유형으로 지원되는 새 단일 통합 툴체인, 독립형 및 자체 포함된 EXE 형태가 가능한 유연한 배포 모델을 제공한다. 그리고 닷넷코어의 서버 및 클라우드 워크로드에 대응하는 고성능을 지속 보장한다. 새로운 C# 프로그래밍 언어 버전을 포함해 모든 닷넷 관련 개발 및 특성 기능이 닷넷5의 일부가 된다.
■ 닷넷 코어, 닷넷 프레임워크, 모노를 하나의 플랫폼으로
리차드 랜더 MS 닷넷팀 프로그램 매니저는 빌드2019 컨퍼런스 첫날 공식 개발자 블로그를 통해 닷넷5 플랫폼의 주요 변화와 로드맵을 소개했다. 그에 따르면 앞으로는 하나의 닷넷만이 존재하게 되며, 개발자들은 그 하나의 닷넷을 사용해 윈도, 리눅스, 맥OS, iOS, 안드로이드, tvOS, 워치OS, 웹어셈블리, 그밖에 여러 환경을 타깃으로 하는 애플리케이션을 개발할 수 있게 된다. 같은 닷넷 API와 개발 언어로 광범위한 애플리케이션 유형, 운영체제, 칩 아키텍처를 타깃으로 삼을 수 있다. [원문보기 ☞ Introducing .NET 5]
MS는 이런 닷넷5 플랫폼의 특징으로 새로운 닷넷 API와 런타임 기능 그리고 언어의 특성을 소개했다. 먼저 5만개 가까운 닷넷 프레임워크(.NET framework) API가 닷넷 코어 프로젝트에 추가됐다. 현존 닷넷 코어 3.0는 그간 닷넷 프레임워크 4.8와의 기능 격차를 좁히면서 윈도폼즈(Windows Forms), 윈도프리젠테이션파운데이션(WPF), 엔티티프레임워크(Entity framework) 6를 쓸 수 있게 됐다. 닷넷5는 이 상태에 닷넷코어와 모노(Mono)의 우수함을 취해 모든 현대적인 닷넷 코드를 사용할 수 있는 단일 플랫폼으로 만들어진다.
랜더 매니저의 예고에 따르면 MS는 우선 내년 상반기중 닷넷5 첫 시험판을 내놓고, 이후 11월께 정식 출시할 계획이다. 이 때 닷넷5가 MS의 통합개발환경 비주얼스튜디오2019 및 맥용 비주얼스튜디오 그리고 코드에디터 비주얼스튜디오 코드의 후속 업데이트를 통해 지원된다. 개발자들은 이런 개발도구나 애저 데브옵스(Azure DevOps) 또는 명령줄로 애플리케이션을 빌드하는 환경 구성을 바꿀 수 있다.
■ 2020년 나올 닷넷5와 후속 로드맵
단일화될 닷넷5 플랫폼에서 개발자들은 앱마다 동일한 런타임, API, 언어 기능을 쓸 수 있다는 점, 같은 코드베이스로 서로 다른 타깃 구동환경에서 돌아가는 앱을 만들 수 있다는 점, 동일한 '룩앤필'을 보여줄 수 있다는 점을 기대할 수 있다. 예를 들어 '코어FX(CoreFX)' 라이브러리와 '코어CLR(CoreCLR)' 런타임처럼 닷넷 코어용으로 만들어진 툴의 성능 및 기능상 이점을 지닌 구성요소를 어디에나 쓸 수 있게 된다.
랜더 매니저의 설명에 따르면 향후 닷넷 플랫폼에 다음과 같은 개선점과 기능이 추가될 예정이다. 런타임 경험 선택지가 주어진다. 모든 플랫폼에서 자바 상호운용성을 지원한다. 오브젝티브C(Objective-C) 및 스위프트(Swift) 상호운용성이 다중 운영체제에서 지원된다. 코어FX가 닷넷의 AOT 방식 정적 컴파일을 지원하고, 시스템 자원을 더 적게 쓰고, 더 많은 운영체제를 지원하도록 확장된다.
MS는 향후 닷넷 플랫폼의 메이저 버전을 매년 내놓고, 그중 짝수 버전마다 LTS 버전으로 제공하는 로드맵을 제시했다. 이에 따르면 오는 7월 닷넷코어3.0 출시후보(RC) 시험판이 나온다. 9월 닷넷코어 3.0 정식판(GA)이 나온다. 11월 닷넷코어 3.1 장기지원(LTS) 버전이 나온다. 내년 11월 닷넷5.0 GA가 나온다. 오는 2021년 11월 닷넷6.0 LTS가 나온다. 2022년 11월 닷넷7.0 GA가 나온다. 2023년 닷넷8.0 LTS가 나온다.
로드맵에서 볼 수 있듯 MS는 닷넷코어3 버전에서 닷넷4 버전을 건너 뛰고 곧장 닷넷5 버전을 만들고 있다. 이는 닷넷코어와 별개인 닷넷 프레임워크가 오랫동안 4.x 버전대를 사용해 왔기 때문에, 닷넷 플랫폼에 4 버전이 붙었을 때 발생할 수 있는 혼선을 피하기 위해서다. 이에 더해 MS 측은 닷넷5가 진정한 닷넷 플랫폼의 미래라는 점을 분명히 나타내기 위해 이런 버전을 쓰기로 했다고 설명했다.
■ 닷넷 프레임워크의 운명은?…"4.8 버전이 마지막"
별도 툴로 개발돼 온 닷넷 프레임워크가 단일 닷넷 플랫폼에 흡수 통합됨에 따라 그 지속가능성도 달라졌다. 일단 MS는 현존 최신 닷넷 프레임워크 4.8 버전이 이 툴의 마지막 메이저 버전이 될 것이라고 밝혔다. [원문보기 ☞ .NET Core is the Future of .NET]
스콧 헌터 MS 닷넷 프로그램 매니지먼트 디렉터는 포스팅에 "새 애플리케이션은 닷넷 코어 기반으로 개발돼야 한다"면서 "닷넷의 미래 투자가 이뤄질 자리에 닷넷 코어가 있다"고 썼다. 이어 "기존 애플리케이션은 (호환성이) 지원될 닷넷 프레임워크에 안전하게 남게 된다"며 "닷넷의 신기능으로 이점을 얻고자하는 기존 애플리케이션은 닷넷코어로 옮기길 고려해야 한다"고 덧붙였다.
글에서 그는 닷넷 코어의 플랫폼 단일화 흐름이 기존 닷넷 코어 1.0 때부터 이어져 왔다고 설명했다. 닷넷 코어 1.0은 당초 고성능 웹과 마이크로서비스에 집중해 나왔다. 닷넷 코어 2.0은 2만개 이상 API와 레이저 페이지, 시그널R같은 컴포넌트를 추가로 확보해 웹 애플리케이션을 닷넷 코어로 더 쉽게 이식되게 했다. 이제 닷넷 코어 3.0은 윈폼스(WinForms), WPF, 엔티티 프레임워크 6을 더해 데스크톱 애플리케이션을 닷넷 코어 기반으로 이식할 가능성까지 끌어안았다.
헌터 디렉터는 "닷넷 코어 3.0 이후엔 닷넷 프레임워크에서 더 이상 기능을 이식받지 않을 것"이라며 "웹폼즈 개발자에겐 그와 가장 유사한 프로그래밍 모델을 제공하는 블레이저에서 새 닷넷 코어 기반 애플리케이션을 만들라"고 조언했다. 또 리모팅 또는 WCF 개발자라면 닷넷 코어 기반 새 애플리케이션 개발시 ASP닷넷 코어 웹API 또는 gRPC를 추천한다"면서 "윈도 워크플로(Windows Workflow) 개발자에겐 닷넷코어에 이식된 오픈소스 워크플로가 있다"고 덧붙였다.
이어 그는 "닷넷 프레임워크 4.8은 닷넷 프레임워크의 마지막 메이저 버전이 될 것"이라고 언급했다. 다만 MS는 버그, 신뢰성, 보안 픽스를 포함한 닷넷 프레임워크 서비스 및 지원을 지속할 방침이라고 밝혔다. 닷넷 프레임워크에 의존하는 윈도 생태계가 존재하기 때문에 윈도에 계속 탑재할 계획이고, 비주얼스튜디오 내부의 닷넷 지원 툴 부분도 계속 개선하겠다고 예고했다.
■ 통합을 앞둔 닷넷 코어 3.0 최신 버전 현황
빌드2019 컨퍼런스에선 닷넷 코어 3.0 프리뷰5 버전 배포 소식과 그 특징도 소개됐다. 랜더 매니저는 이 프리뷰 버전의 주요 변화를 소개하는 블로그 포스팅을 별도로 게재하기도 했다. [원문보기 ☞ Announcing .NET Core 3.0 Preview 5]
닷넷 코어는 이 버전을 통해 윈도 데스크톱 워크로드를 지원한다. 이 버전은 ASP닷넷 코어 블레이저(Blazor)로 지원되는 풀스택 C# 웹개발 기능을 갖췄다. 레이저(Razor)와 C# 문법을 사용해 개발자는 자바스크립트를 써야할 곳에 C#코드를 작성할 수 있다. 서버사이드 블레이저는 네이티브 브라우저 지원을 위한 오픈소스 웹어셈블리 프로젝트로 지속 개발된다.
닷넷 코어 3.0은 향후 고성능 원격프로시저콜 오픈소스 구현인 gRPC 지원과 클라우드네이티브 및 고성능 웹애플리케이션과 서비스 구축을 위한 다른 개선사항을 얻게 된다.
■ 닷넷 생태계 주변부의 변화들
현재 제공되는 'ML닷넷(ML.NET)' 프레임워크는 개발자들이 타깃 시나리오별 머신러닝 모델을 만들도록 돕는다. MS는 지난 6일 공식 닷넷 블로그를 통해 ML닷넷 1.0 버전을 소개했다. [원문보기 ☞ Announcing ML.NET 1.0]
ML닷넷은 개발자가 데이터과학 분야나 머신러닝에 높은 전문성을 갖출 필요 없이 그 영역의 작업을 수행할 수 있도록 해주는 툴로 묘사됐다. ML닷넷이 지원하는 머신러닝 작업은 분류, 회귀, 군집화, 순위매기기, 추천, 이상탐지 등이다. 텐서플로(TensorFlow)같은 딥러닝 프레임워크와의 통합을 지원하고 ONNX를 통한 상호운용성도 제공한다.
ML닷넷은 윈도, 리눅스, 맥OS에서 구동되는 오픈소스 크로스플랫폼 프레임워크다. 닷넷 개발자들이 머신러닝 개발업무에 접근할 수 있게 만들어 맞춤 머신러닝 모델을 제작해 맞춤 인공지능(AI)을 품은 애플리케이션을 빌드할 수 있도록 해준다.
크로스플랫폼 네이티브 UI 툴킷 '자마린 폼즈(Xamarin.Forms)' 4.0 버전의 공개 프리뷰 버전 배포 소식과 그 특징도 소개됐다.
자마린 폼즈 4.0은 모바일 개발자가 크로스플랫폼 모바일 앱을 빠르게 만들도록 돕는 도구로 묘사됐다. 이 버전의 셸(shell) 기능은 단순하게 앱 구조를 기술하는 방법을 제공하고 플라이아웃 메뉴, 하단 및 상단 탭같은 온전한 내비게이션 기능을 즉시 볼 수 있게 해준다. 셸은 또 편리한 경로 API로 URI 기반 내비게이션, 통합 검색 핸들링, 차세대 안드로이드용 GPU 오버드로 최소화, 템플릿 로딩 최적화를 지원한다.
자마린 폼즈 4.0은 또 콜렉션뷰(CollectionView)라는 더 빠르고 효율적인 컨트롤을 제공한다. 이는 기존 리스트뷰(ListView)를 대신한다. 수직, 수평 스택과 그리드 및 커스텀 레이아웃용 새 레이아웃을 지원한다.
관련기사
- MS 윈도, 리눅스 커널 품는다2019.05.08
- MS, 새 터미널 앱 '윈도 터미널' 만든다2019.05.08
- MS, 3대 닷넷 언어 비전 밝히다2019.05.08
- MS, 닷넷코어 새 로드맵 공개2019.05.08
그리고 닷넷 오픈소스소프트웨어(OSS) 라이브러리에 아파치 스파크(Apache Spark) 지원이 추가됐다. 개발자들이 새 언어를 배울 필요 없이 아파치 스파크를 사용해 솔루션을 개발할 수 있게 됐다.
이밖에 현재 제공되는 닷넷용 MS인증라이브러리(MSAL)는 이제 개발자들이 MS 계정 플랫폼으로 패턴, 보안기능, 통합지점을 구현하면서 작업을 단순화하고 복잡한 요소를 감출 수 있게 도와 준다.