2018.01.11

초보 UWP 앱 개발자를 위한 필수 툴 '윈도우 템플릿 스튜디오'

Simon Bisson | InfoWorld
회사가 새 SDK나 API를 배포할 때 자주 하는 말이 있다. “어떻게 시작해야 할까?” 물론 이것이 진짜 중요한 질문이 아니다. 그 안에 더 복잡한 질문이 숨어 있는, 일종의 '상징적인' 질문이다. 핵심은 코딩이 아니다. 플랫폼이 기업의 필요사항을 충족하는지다. 누구나 헬로우 월드(Hello World) 앱을 코딩 할 수 있지만 모든 플랫폼이 LoB(Line of Business) 애플리케이션을 제대로 구현할 수 있는 것은 아니다.



마이크로소프트의 유니버설 윈도우 플랫폼(Universal Windows Platform)에 대한 질문도 이와 비슷하다. 친숙한 Win32와 닷넷 API를 ‘리팩토링’한 UWP는 윈도우 애플리케이션 개발의 ‘미래’이다. 닷넷 표준 라이브러리를 지원하므로 하나의 비주얼 스튜디오(Visual Studio) 프로젝트로 윈도우 데스크톱과 여러 플랫폼에서 사용할 수 있는 자마린(Xamarin) 애플리케이션을 동시에 구현하고, 사용자 인터페이스 코드와 핵심 로직은 분리해 유지할 수 있다.

그러나 다른 새로운 플랫폼처럼 코드를 새로운 무엇으로 전환하는 것은 까다로운 작업이다. 특히 새로운 플랫폼에 초점을 맞추는 경우는 더 그렇다. 만약 새 플랫폼에서 기존 코드를 실행시킬 수는 없다면 애초에 마이그레이션을 할 이유가 없을 것이다. 그렇다면 Win32가 아직 유효한 선택지인 상황에서 엔터프라이즈용 UWP 개발은 어떻게 시작해야 할까?

윈도우 템플릿 스튜디오
한 가지 방법은 애플리케이션 빌더로 첫 빌더를 단순화하는 것이다. 즉 도구를 사용해 애플리케이션을 지원할 수 있는 최소한의 ‘뼈대’를 만드는 것이다. 이 작업에는 윈도우 템플릿 스튜디오(Windows Template Studio)가 안성맞춤이다. 이를 이용하면 비즈니스 로직과 사용자 경험(환경) 모두를 지원하는 구조를 만들고, 핵심 UWP 기능과 클라우드 서비스를 통합할 수 있는 지원 기능을 추가할 수 있다. 지난 해 출시됐으며, 현재 버전은 1.6이다. 버전마다 새로운 페이지 옵션과 UWP 기능 지원 기능이 추가됐다.

마이크로소프트는 윈도우 템플릿 스튜디오를 기트허브(GitHub)에 호스팅하고, 다운로드 받을 수 있는 오픈 소스 프로젝트로 구현했다. 비주얼 스튜디오 익스텐션으로 설치하면, 'C# New Project 대화창'이라는 새 옵션이 추가된다. 템플릿 스튜디오를 사용해 앱을 구축하기 시작하면, 애플리케이션과 사용할 애플리케이션 프레임워크를 선택할 수 있는 여러 옵션이 표시된다.

사용할 수 있는 레이아웃은 단순하다. 기본적인 탐색 창에 햄버거(점 3개) 메뉴가 있는 레이아웃, 탭으로 제어하는 피벗 보기 레이아웃, 빈 캔버스 레이아웃 등이다. 비교적 제한된 수의 레이아웃이다. 첫 두 옵션이 대부분의 사례에서 사용될 것이다. 세 번째는 원하는 것이면 무엇이든 구축할 수 있는 자유로운 레이아웃이다.

코드 ‘스캐폴드(뼈대)’ 구축
레이아웃을 선택한 후, 코드에 맞는 프레임워크를 선택할 수 있다. 현재 4가지 옵션을 지원한다. 마이크로소프트가 윈도우 비스타 이후에 XAML 기반 닷넷 애플리케이션에 사용해온 친숙한 코드 기반의 모델과 많이 사용하는 MVVM(Model-View-View Model) 디자인 패턴을 지원하는 3가지 각기 다른 옵션이다. 마이크로소프트가 윈도우 템플릿 스튜디오의 토대로 MVVM을 선택한 것은 놀랍지 않다. XAML과 C# 결합에 적합하기 때문이다.

두 가지 MVVM 옵션은 서드파티의 ‘작품’이다. MVVM 라이트와 칼리번 마이크로(Caliburn.Micro)다. 마이크로소프트가 개발한 오픈 소스 소프트웨어와 마찬가지로 MIT 라이선스를 사용하므로 자유롭게 코드에 사용할 수 있다.

레이아웃과 프레임워크를 선택하고 나면, 페이지로 앱의 뼈대를 만들 수 있다. 대부분의 최신 애플리케이션처럼, 윈도우 템플릿 스튜디오는 웹 앱에서 사용되는 페이지 모델에 기반을 둔다. 쉽게 PC에서 실행되는 C# 앱을 모바일 장치의 자마린 앱, 웹 애플리케이션으로 옮길 수 있다. 모두 같은 백엔드에서 실행된다.

이는 단일 페이지에 국한되지 않는다. 윈도우 템플릿 스튜디오를 사용해 여러 페이지를 추가할 수 있다. 또한 그리드와 마스터/디테일 페이지, 차트와 지도 등 친숙한 애플리케이션 요소를 지원한다. 현재 사용할 수 있는 페이지의 종류는 11개다. 릴리스마다 새 페이지가 추가되고 있다. 일부 페이지는 장치 카메라 같은 특정 UWP 기능을 지원한다. 그러나 특정 애플리케이션과 기본 페이지 레이아웃을 지원하는 종류가 대부분이다. 차트(Chart)와 그리드(Grid) 옵션은 텔레릭(Telerik)의 무료 UWP 컨트롤(아파치 라이선스인 오픈 소스다)을 사용한다. 이를 통해 코드에 서드파티 UWP 구성요소를 사용할 수 있다.


빠른 UWP 기능 액세스
앱 뼈대 구축이 중요하지만, UWP에는 더 많은 것이 있다. 윈도우 템플릿 스튜디오의 피처(Feature) 기능은 16가지 UWP 기능을 지원하는 코드가 포함하고 있다. 기본적인 사용자 상호작용을 지원한다. 예를 들어, 앱을 처음 실행했을 때, 또는 업데이트 했을 때 정보를 표시하는 기능을 지원한다. 기타 맞춤형 URI를 통한 딥 링크, 윈도우 10의 다양한 알림 도구를 지원하는 옵션도 있다.

UWP 기능 중 가장 중요한 특징은 아마도 쉽게 핵심 애플리케이션 라이프사이클 요소를 추가하는 방식일 것이다. UWP는 윈도우 8에서 도입된 WinRT 모델에 기반을 두고 있다. 앱이 클라우드를 통해 세팅을 로밍하는 기능, 종료 대신 ‘중지 및 재개’를 적용할 수 있는 기능이 추가됐다. 윈도우 템플릿 스튜디오는 이런 기능을 지원하는 코드가 추가됐고 애플리케이션이 백그라운드에서 실행되고 있는 동안에도 원격 서비스로 작동할 수 있도록 도와주는 인-프로세스 백그라운드 프로세스를 지원한다. 백그라운드 작업이 실행되는 동안 데이터가 업데이트되면, 사용자가 변경 사항을 확인할 수 있다. 코드를 개발할 때 이를 지원할 별도 백그라운드 서비스를 개발할 필요가 없다.

UWP 코드가 준비된 스캐폴드
윈도우 템플릿 스튜디오 마법사를 마치면, 자신의 코드와 XAML을 집어 넣을 수 있는 코드 스캐폴드가 생성된다. 여기에 장점이 많다. 클릭 몇 번으로 마법사부터 앱 윤곽까지 만들 수 있다.

윈도우 템플릿 스튜디오를 이용하면 UWP 애플리케이션 개발 과정을 단순화할 수 있지만 그렇다고 해서 (지금은 지원이 중단된) 비주얼 스튜디오 라이트스위치(LightSwtich) LOB 애플리케이션 빌더를 대체할 수 있는 것은 아니다. 라이트스위치나 코드가 거의 없는 사촌격인 파워앱(PowerApp) 같은 툴을 대체하려면 포르테(Forte) 같은 언어로 구현해야 한다. 이는 4GL을 지원한다.

윈도우 템플릿 스튜디오는 최소한의 코드로 폼 양식의 애플리케이션을 개발할 수 있는 툴은 아니다. 비즈니스 로직을 호스팅 할 수 있는 프레임워크를 신속하게 하나의 UWP 앱으로 구현할 수 있는 툴에 더 가깝다. 간단한 애플리케이션 빌더로 한계를 느끼고 있다면 윈도우 템플릿 스튜디오는 검토할 가치가 있다. 이를 이용해 만든 UWP 앱은 미래의 릴리스를 지원하는 것은 물론, 새 기능도 추가할 수 있다. ciokr@idg.co.kr

2018.01.11

초보 UWP 앱 개발자를 위한 필수 툴 '윈도우 템플릿 스튜디오'

Simon Bisson | InfoWorld
회사가 새 SDK나 API를 배포할 때 자주 하는 말이 있다. “어떻게 시작해야 할까?” 물론 이것이 진짜 중요한 질문이 아니다. 그 안에 더 복잡한 질문이 숨어 있는, 일종의 '상징적인' 질문이다. 핵심은 코딩이 아니다. 플랫폼이 기업의 필요사항을 충족하는지다. 누구나 헬로우 월드(Hello World) 앱을 코딩 할 수 있지만 모든 플랫폼이 LoB(Line of Business) 애플리케이션을 제대로 구현할 수 있는 것은 아니다.



마이크로소프트의 유니버설 윈도우 플랫폼(Universal Windows Platform)에 대한 질문도 이와 비슷하다. 친숙한 Win32와 닷넷 API를 ‘리팩토링’한 UWP는 윈도우 애플리케이션 개발의 ‘미래’이다. 닷넷 표준 라이브러리를 지원하므로 하나의 비주얼 스튜디오(Visual Studio) 프로젝트로 윈도우 데스크톱과 여러 플랫폼에서 사용할 수 있는 자마린(Xamarin) 애플리케이션을 동시에 구현하고, 사용자 인터페이스 코드와 핵심 로직은 분리해 유지할 수 있다.

그러나 다른 새로운 플랫폼처럼 코드를 새로운 무엇으로 전환하는 것은 까다로운 작업이다. 특히 새로운 플랫폼에 초점을 맞추는 경우는 더 그렇다. 만약 새 플랫폼에서 기존 코드를 실행시킬 수는 없다면 애초에 마이그레이션을 할 이유가 없을 것이다. 그렇다면 Win32가 아직 유효한 선택지인 상황에서 엔터프라이즈용 UWP 개발은 어떻게 시작해야 할까?

윈도우 템플릿 스튜디오
한 가지 방법은 애플리케이션 빌더로 첫 빌더를 단순화하는 것이다. 즉 도구를 사용해 애플리케이션을 지원할 수 있는 최소한의 ‘뼈대’를 만드는 것이다. 이 작업에는 윈도우 템플릿 스튜디오(Windows Template Studio)가 안성맞춤이다. 이를 이용하면 비즈니스 로직과 사용자 경험(환경) 모두를 지원하는 구조를 만들고, 핵심 UWP 기능과 클라우드 서비스를 통합할 수 있는 지원 기능을 추가할 수 있다. 지난 해 출시됐으며, 현재 버전은 1.6이다. 버전마다 새로운 페이지 옵션과 UWP 기능 지원 기능이 추가됐다.

마이크로소프트는 윈도우 템플릿 스튜디오를 기트허브(GitHub)에 호스팅하고, 다운로드 받을 수 있는 오픈 소스 프로젝트로 구현했다. 비주얼 스튜디오 익스텐션으로 설치하면, 'C# New Project 대화창'이라는 새 옵션이 추가된다. 템플릿 스튜디오를 사용해 앱을 구축하기 시작하면, 애플리케이션과 사용할 애플리케이션 프레임워크를 선택할 수 있는 여러 옵션이 표시된다.

사용할 수 있는 레이아웃은 단순하다. 기본적인 탐색 창에 햄버거(점 3개) 메뉴가 있는 레이아웃, 탭으로 제어하는 피벗 보기 레이아웃, 빈 캔버스 레이아웃 등이다. 비교적 제한된 수의 레이아웃이다. 첫 두 옵션이 대부분의 사례에서 사용될 것이다. 세 번째는 원하는 것이면 무엇이든 구축할 수 있는 자유로운 레이아웃이다.

코드 ‘스캐폴드(뼈대)’ 구축
레이아웃을 선택한 후, 코드에 맞는 프레임워크를 선택할 수 있다. 현재 4가지 옵션을 지원한다. 마이크로소프트가 윈도우 비스타 이후에 XAML 기반 닷넷 애플리케이션에 사용해온 친숙한 코드 기반의 모델과 많이 사용하는 MVVM(Model-View-View Model) 디자인 패턴을 지원하는 3가지 각기 다른 옵션이다. 마이크로소프트가 윈도우 템플릿 스튜디오의 토대로 MVVM을 선택한 것은 놀랍지 않다. XAML과 C# 결합에 적합하기 때문이다.

두 가지 MVVM 옵션은 서드파티의 ‘작품’이다. MVVM 라이트와 칼리번 마이크로(Caliburn.Micro)다. 마이크로소프트가 개발한 오픈 소스 소프트웨어와 마찬가지로 MIT 라이선스를 사용하므로 자유롭게 코드에 사용할 수 있다.

레이아웃과 프레임워크를 선택하고 나면, 페이지로 앱의 뼈대를 만들 수 있다. 대부분의 최신 애플리케이션처럼, 윈도우 템플릿 스튜디오는 웹 앱에서 사용되는 페이지 모델에 기반을 둔다. 쉽게 PC에서 실행되는 C# 앱을 모바일 장치의 자마린 앱, 웹 애플리케이션으로 옮길 수 있다. 모두 같은 백엔드에서 실행된다.

이는 단일 페이지에 국한되지 않는다. 윈도우 템플릿 스튜디오를 사용해 여러 페이지를 추가할 수 있다. 또한 그리드와 마스터/디테일 페이지, 차트와 지도 등 친숙한 애플리케이션 요소를 지원한다. 현재 사용할 수 있는 페이지의 종류는 11개다. 릴리스마다 새 페이지가 추가되고 있다. 일부 페이지는 장치 카메라 같은 특정 UWP 기능을 지원한다. 그러나 특정 애플리케이션과 기본 페이지 레이아웃을 지원하는 종류가 대부분이다. 차트(Chart)와 그리드(Grid) 옵션은 텔레릭(Telerik)의 무료 UWP 컨트롤(아파치 라이선스인 오픈 소스다)을 사용한다. 이를 통해 코드에 서드파티 UWP 구성요소를 사용할 수 있다.


빠른 UWP 기능 액세스
앱 뼈대 구축이 중요하지만, UWP에는 더 많은 것이 있다. 윈도우 템플릿 스튜디오의 피처(Feature) 기능은 16가지 UWP 기능을 지원하는 코드가 포함하고 있다. 기본적인 사용자 상호작용을 지원한다. 예를 들어, 앱을 처음 실행했을 때, 또는 업데이트 했을 때 정보를 표시하는 기능을 지원한다. 기타 맞춤형 URI를 통한 딥 링크, 윈도우 10의 다양한 알림 도구를 지원하는 옵션도 있다.

UWP 기능 중 가장 중요한 특징은 아마도 쉽게 핵심 애플리케이션 라이프사이클 요소를 추가하는 방식일 것이다. UWP는 윈도우 8에서 도입된 WinRT 모델에 기반을 두고 있다. 앱이 클라우드를 통해 세팅을 로밍하는 기능, 종료 대신 ‘중지 및 재개’를 적용할 수 있는 기능이 추가됐다. 윈도우 템플릿 스튜디오는 이런 기능을 지원하는 코드가 추가됐고 애플리케이션이 백그라운드에서 실행되고 있는 동안에도 원격 서비스로 작동할 수 있도록 도와주는 인-프로세스 백그라운드 프로세스를 지원한다. 백그라운드 작업이 실행되는 동안 데이터가 업데이트되면, 사용자가 변경 사항을 확인할 수 있다. 코드를 개발할 때 이를 지원할 별도 백그라운드 서비스를 개발할 필요가 없다.

UWP 코드가 준비된 스캐폴드
윈도우 템플릿 스튜디오 마법사를 마치면, 자신의 코드와 XAML을 집어 넣을 수 있는 코드 스캐폴드가 생성된다. 여기에 장점이 많다. 클릭 몇 번으로 마법사부터 앱 윤곽까지 만들 수 있다.

윈도우 템플릿 스튜디오를 이용하면 UWP 애플리케이션 개발 과정을 단순화할 수 있지만 그렇다고 해서 (지금은 지원이 중단된) 비주얼 스튜디오 라이트스위치(LightSwtich) LOB 애플리케이션 빌더를 대체할 수 있는 것은 아니다. 라이트스위치나 코드가 거의 없는 사촌격인 파워앱(PowerApp) 같은 툴을 대체하려면 포르테(Forte) 같은 언어로 구현해야 한다. 이는 4GL을 지원한다.

윈도우 템플릿 스튜디오는 최소한의 코드로 폼 양식의 애플리케이션을 개발할 수 있는 툴은 아니다. 비즈니스 로직을 호스팅 할 수 있는 프레임워크를 신속하게 하나의 UWP 앱으로 구현할 수 있는 툴에 더 가깝다. 간단한 애플리케이션 빌더로 한계를 느끼고 있다면 윈도우 템플릿 스튜디오는 검토할 가치가 있다. 이를 이용해 만든 UWP 앱은 미래의 릴리스를 지원하는 것은 물론, 새 기능도 추가할 수 있다. ciokr@idg.co.kr

X