Senin, 01 Juni 2020

윈도 API 통합 선언, MS 리유니언 프로젝트 - ZD넷 코리아

730
마이크로소프트 리유니언 프로젝트 아키텍처

마이크로소프트(MS)가 파편화된 윈도 API를 통합한다. 윈도7 이전부터 존재해온 API와 윈도8 이후의 API를 OS 영역에서 떼어내 통합 계층으로 합치겠다는 계획이다.

마이크로소프트는 지난달 19일 온라인에서 개최된 '빌드2020' 컨퍼런스에서 Win32 API와 유니버셜윈도플랫폼(UWP)을 통합하는 '프로젝트 리유니언(Project Reunion)'을 발표했다.

윈도10은 현재 두 갈래의 앱 유형을 갖고 있다. 윈도7 이전부터 만들어져 과거 윈도 데스크톱 애플리케이션을 형성한 Win32 API와, 윈도8.1부터 시작된 현대화된 애플리케이션 플랫폼 'UWP'다.

마이크로소프트는 윈도10에 이르러 'UWP'를 애플리케이션 형식의 표준으로 삼았지만, 공고히 구축된 Win32 기반 데스크톱 앱을 UWP로 전환하는데 어려움을 겪었다. Win32 앱을 UWP로 전환하도록 돕는 '데스크톱 앱 컨퍼터'를 제공했지만 실효를 거두지 못했다. UWP로 만들어지지 않은 앱에 최신 윈도 API 접근을 제한하는 등 강력한 정책도 실행중이지만 성과는 부진했다. 결과적으로 윈도 앱 생태계는 Win32와 UWP로 나뉜 상태로 유지되고, 개발자는 여러 형식을 고민하고 관리해야 하는 부담을 안고 있다.

'프로젝트 리유니언'은 혼란과 부담을 주는 Win32 API를 현대화하고, UWP와 자연스럽게 공존하는 환경을 만드는 것을 목표로 한다. 별개였던 API 간 장벽을 허무는 것이라고 케빈 갈로 마이크로소프트 윈도개발자플랫폼 기업부사장은 밝혔다.

■ UWP와 Win32, API 경계 없는 자유로운 앱 개발

리유니언 프로젝트의 힌트는 작년부터 흘러나왔다. 작년 빌드2019 행사에서 케빈 갈로 마이크로소프트 윈도개발자플랫폼 기업부사장은 "유니버셜 앱/원 윈도 플랫폼 전략으로 만들어진 지난 실수 일부를 되돌리려는 계획"이라며 "윈도 개발자는 Win32에 모던 데스크톱 요소를 추가해 윈도 앱을 구축할 수 있게 되고, OS에서 UWP 플랫폼 부분을 떼어내는 작업도 하고 있다"고 설명했었다.

올해 공개된 리유니언 프로젝트는 두가지 요소를 가졌다. 윈도개발자플랫폼팀은 'WinUI 3'와 '웹뷰(WebView) 2.0'의 프리뷰를 공개했다.

WinUI 3.0은 작년 가을 알파테스트 단계에서 알려졌다. 윈도10을 위한 네이티브 UI 프레임워크다. 웹뷰2.0은 앱 내부의 웹콘텐츠를 통합하는 제어영역이다. 두 요소 모두 올해말 정식버전으로 나온다.

케빈 갈로 마이크로소프트 윈도개발자플랫폼 CVP

마이크로소프트는 두 라이브러리를 오픈소스로 공유하고, 개발자가 원하는 대로 코드에 통합해 활용하게 한다는 방침이다.

또한, 윈도개발자플랫폼팀은 깃허브에서 개발자들에게 리유니언에 포함되면 좋을 다음 라이브러리 세트를 요청받을 계획이다.

윈도10 기반 개발자는 리유니언 프로젝트를 통해 10억개 이상의 윈도10 PC 사용자를 즉시 겨냥할 수 있게 된다. 단 최신 윈도10 빌드를 사용하는 것으로 제한돼 있다. 또, 리유니언은 디바이스를 PC로 한정한다.

WinUI 3.0의 아키텍처

마이크로소프트는 윈도 IoT와 홀로렌즈를 포함한 모든 윈도10 기반 기기를 목표로 삼는다는 UWP 중심주의를 버린 것으로 보인다.

케빈 갈로 부사장은 "오늘날 앱은 Win32 API든 UWP API든 윈도의 API를 직접 호출하는 반면, 리유니언은 OS에서 분리된 API 계층"이라며 "개발자는 필요에 따라 API를 혼용할 수 있게 한다"고 설명했다.

리유니언은 OS와 별도 계층이기 때문에, 개발자는 특정 API에 종속되지 않는다. 최종사용자의 OS 업데이트를 기다리지 않고도 최신 API를 바로 채택하는 것도 가능해진다.

케빈 갈로 부사장은 데모용 농장관리앱을 Win32 데스크톱 앱으로 만들고, 리유니언 프로젝트 요소를 추가한 모습을 시연했다.

케빈 갈로 부사장은 UWP, WinForms, WPF, 리액트네이티브, C++ 등 어던 방식으로도 윈도 앱을 개발할 수 있다고 강조했다. 그러면서 기존 데스크톱 앱에 최신 WinUI와 웹뷰를 간단히 적용하는 것을 시연했다. SDK를 사용하지 않고 누겟(NuGet) 패키지를 추가해 모든 새 API 적용이 가능했다. 비즈니스 로직 변경이 없으며, 곧바로 모든 윈도10 버전의 기기로 앱을 배포할 수 있었다.

지리정보시스템(GIS) 전문업체 에스리(ESRI)가 리유니언을 채택해 사용하고 있다고 케빈 갈로 부사장은 밝혔다.

케빈 갈로 부사장의 농장관리앱은 일반 데스크톱 앱으로 만들어졌지만 리유니언 프로젝트의 WinUI 3 요소를 통해 현대화된 앱 형태를 갖게 됐다.

기존 UWP 중심주의는 윈도10 앱 설치 경로를 공식 앱마켓인 윈도스토어로 한정한다는 뜻도 있다. 리유니언 프로젝트는 Win32와 UWP의 경계를 허무는 만큼, 윈도스토어를 거치지 않고 윈도10에 앱을 설치하는 것을 더 자유롭게 만든다는 의미도 갖는다.

마이크로소프트는 이 부분에 대한 입장을 밝히지 않았다. 다만, 비즈니스용 윈도스토어와 교육용 윈도스토어를 폐기하려는 계획이 세워져있다. 당초 일정보다 미뤄졌지만 기업고객용 윈도10만큼은 윈도스토어 기반의 앱 관리체계를 없애는 것은 기정사실로 보인다.

■ 윈도 API 혼란의 역사, 이제 끝

빌드2011 행사였다. 마이크로소프트는 윈도8의 개발자 프리뷰를 공개하면서, 애플 아이패드와 경쟁할 수 있는 새 하드웨어와 OS를 선보이겠다고 밝혔다. 윈도8은 기존 Win32 API 기반 소프트웨어를 과감히 포기하고, 모던앱이라 불리는 최신 설계를 채택했다.

이 전략은 서피스RT란 태블릿 속의 윈도RT로 구체화됐다. ARM 아키텍처를 위한 전용 OS였던 윈도RT는 기존 데스크톱 앱을 설치할 수 없었다. 메트로UI를 채택하는 모던앱만 쓸 수 있었다.

이후 윈도8.1을 거쳐 2015년 윈도10에 이르러 모던앱 전략은 UWP로 진화했다. 그 사이 윈도RT가 사라졌고, 마이크로소프트 윈도의 신화를 견인했던 Win32 데스크톱 앱은 어느새 골치거리가 됐다. 마이크로소프트는 오피스 앱을 UWP로 전환하면서 소비자를 설득했지만, 개발자 생태계의 터줏대감들은 움직이지 않았거나, 움직이지 못했다.

리유니언 프로젝트에 이르러 Win32 API는 'Windows API'란 새 명칭을 갖게 됐다.

마이크로소프트의 API 통합 선언은 모바일 OS 시장에 대한 고집을 꺾으면서 가능했다. 마이크로소프트는 윈도모바일 개발을 중단하고, 크로스플랫폼 앱과 개발플랫폼으로 애플과 구글의 생태계에 파고드는 전략을 취했다. 태블릿 영역은 윈도10으로 계속 공략하고, 퀄컴을 파트너삼아 ARM 기반 윈도 태블릿을 출시했다.

■ 리눅스 품은 윈도10, 새로운 윈도패키지매니저

마이크로소프트는 올해 빌드 행사에서 윈도10의 리눅스용윈도서브시스템(WSL)2.0을 공개했다. WSL2.0은 완전한 리눅스커널을 담고 있고, GPU 기능과 GUI를 지원한다.

이밖에 키보드 리맵퍼와 파워토이런 등의 유틸리티도 소개했다. 키보드리맵퍼는 키를 재배치하고 단축키를 원하는 대로 재구성하게 해준다. 윈도95 시절 OS를 사용자 입맛에 맞게 꾸밀 수 있었던 파워토이가 작년 윈도10 버전으로 오픈소스화됐는데, 올해 새로운 기능이 추가됐다.

마이크로소프트는 윈도의 새 패키지매니저 '윈겟'을 공개했다.

관련기사

또, 윈도패키지매니저가 '윈겟(WinGet)'이란 이름으로 재탄생했다. 윈겟은 커맨드라인인터페이스로 개발자가 선호하는 툴을 쉽고 빠르게 설치할 수 있도록 돕는다.

사티아 나델라 마이크로소프트 최고경영자(CEO)는 기조연설에서 "Win32와 UWP API를 리유니언 프로젝트로 매끄럽게 통합할 수 있게 됐다"며 "윈도는 우리에게 가장 중요한 플랫폼이었으며, 수많은 개발자가 다양한 프레임워크를 가로지르며 윈도를 개발 도구로 사용하고 있다"고 강조했다.

Let's block ads! (Why?)


https://news.google.com/__i/rss/rd/articles/CBMiLmh0dHA6Ly93d3cuemRuZXQuY28ua3Ivdmlldy8_bm89MjAyMDA2MDIxMDUxMzTSAQA?oc=5

2020-06-02 02:14:16Z
CBMiLmh0dHA6Ly93d3cuemRuZXQuY28ua3Ivdmlldy8_bm89MjAyMDA2MDIxMDUxMzTSAQA

Tidak ada komentar:

Posting Komentar