Build 2015 Day 2 Keynote 요약
다양한 분야의 개발자들은 마이크로소프트의 기술들을 활용하여 다양한 결과물들을 만들어 내고 있습니다. 빌드 둘째 날은 바로 이런 개발자들의 이야기를 들어보는 시간이었습니다.
미디어 분야를 예로 든다면 Muzik 팀은 낮은 Latency에서 동작할 수 있도록 새롭게 추가된 AudioGraph를 활용한 가상 드럼 세트를 만들어 냈으며, Propellerhead와 같은 회사는 클라우드와 다양한 디바이스를 이용하여 음악을 만드는 제품을 만들어 냈습니다.
빌드 첫째날 생중계를 시청하신 분이 30만명에 이르고, 7만5천명이 동시시청을 하였으며, 최근 수퍼볼 경기에서는 마이크로소프트의 미디어 기술을 이용하여 120만명이 동시에 스트리밍 미디어를 시청하였다고 합니다. 이 모두가 마이크로소프트의 기술을 활용하여 서비스 되고 있습니다.
Autodesk와 같은 회사는 프로토타이핑과 프린팅 분야에서 마이크로소프트의 기술을 활용하고 있습니다. Acumatica와 같은 회사는 클라우드 기반의 ERP 시스템을 개발 하였는데 ORM과 OData 기술을 이용하기 때문에, 손쉽게 PowerBI와 연동하여 데이터를 분석하고 다양한 방식으로 결과를 살펴볼 수 있는 기능을 제공하고 있습니다
Universal Windows Platform은 Desktop, Xbox, Surface Hub, Holographic, IoT, Mobile과 같은 다양한 분야에서 활용할 수 있는 단일의 개발 플랫폼입니다. 이처럼 다양한 디바이스들은 디스플레이 장치, 키보드, 마우스, 센서, 터치 등 다양한 peripheral과 결합되어 더욱더 개인화된 컴퓨팅 환경을 만들어 냅니다. 마이크로소프트는 이러한 다양성을 극복하는 단일의 플랫폼과 함께 단일의 디자인, 개발, 디버깅, 배포 환경을 제공합니다.
디자인 단계에서 Universal Windows Platform이 제공하는 모든 컨트롤들은 마우스, 터치, 펜, 게임 컨트롤러에 이르기까지 다양한 입력 방식에도 올바르게 동작하도록 개발 되어 있으며, 단 하나의 디자인 방식을 유지하고 있기 때문에, 단일의 코드로 다양한 디바이스를 지원할 수 있습니다. 더불어 개발자는 개별 디바이스의 특성에 맞추어 가장 적합한 형태로 사용자의 인터페이스를 맞춤형으로 구성할 수도 있습니다.
개발자들은 Universal Windows Platform을 이용하기 때문에 디바이스의 다양성에도 불구하고 동일한 플랫폼 특성과, 단일의 API를 공유하게 됩니다. XAML, DirectX, HTML/CSS와 같이 이미 익숙한 방식으로 UX를 디자인하고 개발할 수 있으며, C#/VB, C/C++, JavaScript와 같이 다양한 언어들을 사용할 수 있습니다. 뿐만 아니라 Feature Detection이나 Extension API 등의 이용하면 디바이스별 고유 특성을 세부적으로 제어할 수도 있습니다. 이렇게 개발된 앱은 다양한 디바이스에서 활용될 수 있는 단일의 패키지로 구성될 수 있습니다. Windows 10에는 2,500개 이상의 플랫폼 기능이 새롭게 추가되었으며, 이에 따라 8,000개 이상의 API가 추가 되었습니다.
Visual Studio 2015를 사용하면 각각의 디바이스에서 앱 들이 어떻게 나타날지를 미리 살펴보고 조정할 수 있습니다. 새로운 Visual Tree를 사용하면 수행 중인 앱의 구성 요소도 살펴볼 수 있으며, 웹 개발의 경우 F12 개발툴도 빼놓을 수 없는 디버깅 기능입니다. 뿐만 아니라 디버거를 떠나지 않고 PerfTip, CPU & Memory 사용률 그래프 등을 이용하여 성능 문제를 분석하고, 다양한 지표를 살펴보면서 최적화를 수행할 수 있습니다.
한번의 앱 제출과 인증 과정을 거치면 모든 디바이스에 배포가 가능하고, 이 과정에서 앱의 다운로드 수나 유료 판매 현황 등을 분석할 수 있습니다. 또한 앱 인사이트와 결합하여 앱 사용 추의를 살펴본다거나 특정 기능을 사용자가 얼마만큼 자주 사용하고 있는지 등을 살펴볼 수 있으며, 캠페인 기능도 추가되어 캠페인을 수행하고 그 결과를 실시간으로 조회할 수도 있습니다.
유니버셜 앱 플랫폼을 사용하는 또 다른 방법도 다양하게 제공합니다. 가장 먼저 알아볼 것은 첫째 날 키노트에서 발표한 Microsoft Edge입니다. Microsoft Edge는 4,200개 이상의 상호운용을 위한 기능과 45개 이상의 새로운 웹 표준 기술을 새롭게 탑재하였습니다. 기능의 확대에 더하여 성능도 대폭 향상되었습니다. 애플의 JetStream 벤치마크나 Google의 Octane 벤치마크 결과를 통해 Microsoft Edge가 IE11 보다 2배나 나은 성능을 보여주고, Chrome(43.0.2369.0), FireFox(Alpha 40.0a1) 보다 높은 성능을 보여주는 것을 확인할 수 있었습니다.
Microsoft Edge에서 정상적으로 동작하는 모든 웹사이트들은 수정 없이 앱으로 전환될 수 있는데, 이 과정에서 Xbox Live를 활용하도록 기능을 추가하거나 Cortana와 연동하여 기능을 풍성하게 확장할 수 있습니다. 이미 Shazam과 같은 회사는 이러한 방식으로 기능을 확장하여 음악 인식 앱을 성공적으로 만들고 있습니다.
마이크로소프트의 전통적인 응용 프로그램 개발 기술인 WPF나 WinForm을 사용하는 .NET 응용 프로그램, Win32를 사용하는 응용 프로그램 조차도 UWP를 사용하도록 코드를 추가할 수 있을 뿐 아니라 Appx로 패키징 하여 윈도우 스토어에 제출하고, 이를 통해 배포될 수 있습니다.
Java와 C++이용하여 개발한 안드로이드 앱도 기존 코드를 재활용 하여 손쉽게 윈도우 앱으로 변경할 수 있습니다. 기존에 사용하던 Java 개발도구를 그대로 사용할 수 있으며, 라이브 타일과 같은 UWP 고유의 기능을 사용할 수도 있습니다. Google의 위치 정보 서비스나, Google Map, Google 통지 서비스를 사용하는 부분은 마이크로소프트의 위치 정보 서비스와 Bing Map, Microsoft 통지 서비스를 사용하도록 하부 시스템 수준에서 리다이렉션을 수행 하도록 변경됩니다. 뿐만 아니라 Objective C를 이용하여 개발된 iOS 앱은 Visual Studio 내에서 재컴파일을 수행하여 윈도우 앱으로 만들 수 있습니다.
Cordova와 같은 기술을 이용하면 HTML/JavaScript와 같은 기반기술을 이용하여 동일한 코드로 윈도우나 안드로이드, iOS에서 수행되는 앱을 손쉽게 만들 수 있습니다. HTML/JavaScript 기술을 활용하는 웹앱의 디버깅 기능을 지원하기 위해서 마이크로소프트 Vorlon 이라는 도구를 만들었을 뿐 아니라 고성능 웹 개발을 위해서 asm.js를 지원합니다.
소스 공유와 관리는 개발자에게 매우 중요합니다. 이제 GitHub Enterprise를 쓰고 싶으신 분도 Azure를 활용할 수 있습니다.
마이크로소프트는 디지털 데이터의 폭발적인 증가와 디지털 데이터가 상호 연결되고 있는 현재와 미래의 현상을 직시하고, 데이터를 분석하는 다양한 방식과 이를 통해 미래 예측하는 통찰을 얻기 위한 기술을 개발하고 있습니다.
회고분석(Retrospective Analysis)의 한 예로, Fujitsu는 축산 농장에서 소의 질병을 신속히 확인하고, 소의 발정기를 정밀하게 확인하기 위한 용도로 센서기술과 Azure 클라우드 기술을 적용 하였습니다. 이를 통해 질병으로 소를 잃지 않고, 소의 체온을 이용한 데이터 분석 기술을 적용하여 발정기를 정밀하게 확인하여 생산량을 늘릴 수 있었을 뿐 아니라, 데이터 분석 과정에서 암수의 결정 메커니즘도 확인할 수 있었습니다. 이러한 서비스는 이제 또 다른 형태의 플랫폼 서비스로 확장 될 수도 있을 것입니다.
실시간 데이터 분석은 센서, 웹사이트, 소셜 등에서 변모하는 데이터를 살펴 즉각적으로 통찰을 얻기 위한 방법으로 사용됩니다. 마이크로소프트는 실시간 데이터 분석의 예를 보여주기 위해서 https://gallery.azureml.net/를 통해 다양한 머신 러닝 예를 보여 준 바 있으며, 이중 얼굴 인식, 음성 인식, 비전 인식 등의 몇 가지 서비스를 일반 개발자들이 손쉽게 사용할 수 있도록 공개 API로 서비스 하기 위한 옥스포드 프로젝트(https://www.projectoxford.ai/)를 시작하였습니다. 뿐만 아니라 얼굴 인식 API를 활용한 예로써 https://How-Old.net 을 오픈 하였는데 이를 통해 사진 속의 사람의 성별과 나이를 분석해 줍니다. 뿐만 아니라 이 사이트는 스트림 분석을 통해 획득한 사용자의 성별과 나이 정보를 사이트 모니터링 정보로 재활용 합니다.
과거 데이터의 패턴을 분석하여 미래를 예측하기 위한 데이터의 활용 예로서 에너지 제어나 의료분야 등이 있으며, 마이크로소프트 밴드도 이 같은 데이터 분석 기법을 활용하고 있습니다. 마이크로소프트 애저의 머신 러닝 또한 미래를 예측하기 위한 데이터 분석 기법을 지원하며, 예측 정보의 정밀도를 개선할 수 있는 다양한 알고리즘을 지원하고 합니다. 최근 마이크로소프트는 또한 지난 20년간 데이터 언어로 알려진 R을 이용하여 Big Data 분석 서비스를 제공하는 Revolution Analytics사를 인수하여 경쟁력을 강화하였습니다.
미래를 예측하기 위한 데이터 분석의 또 다른 예로 인간 지놈 분석을 예로 들 수 있습니다. 1인당 2GB에 가까운 지놈 분석을 위해서는 강력한 컴퓨팅 리소스가 필요합니다. 마이크로소프트 애저 데이터 센터중 4개의 데이터 센터와 8개의 HDInsight 클러스터를 이용하여 단시간에 지놈 분석을 통해서 힙 맵을 생성할 수 있었으며, 이를 통해 개인의 질병 가능성을 예측할 수 있었습니다. 또한 분석에 사용된 알고리즘은 간단히 REST기반 API로 전환할 수 있으며, 모바일 디바이스 등에서 활용될 수 있습니다. 이 같은 빅데이터 분석은 인간의 삶을 변화 시킬 수도 있을 것입니다.
또 다른 예로는 이탈리아 정부와 협력하여 비행기에서 촬영한 300,000개의 고화질 사진을 받아, 마이크로소프트 애저의 Machine Learning과 Big Data를 이용하여 폼페이를 3차원으로 재구성할 수도 있었습니다.
Windows 10에서 제공되는 DirectX 12를 이용하면 기존에는 상상하기 어려웠던 수준의 정밀도를 가진 게임들을 만들어 낼 수 있습니다. 파이널 판타지 15은 DirectX 12를 이용하여 한 화면에 6,300만개의 폴리곤을 이용하는 한 차원 높은 수준의 게임을 제공할 수 있게 되었습니다. 이는 DX 11에 비해 6배에서 11배에 이르는 숫자입니다.
마인크레프트는 또 다른 흥미로운 게임 플랫폼 입니다. Visual Studio안에서 Java를 이용하여 마인크레프트 게임을 만들 수도 있습니다.
빌드 둘째날의 결론은 바로 "We are Makers!" 입니다.