Korea Evangelist

Developer & Platform Evangelism, Microsoft Korea

  • Korea Evangelist

    [Build 2014] Visual Studio에서 새롭게 제공되는 기능들

    • 0 Comments

    Visual Studio 2013 Update 2에 대한 요약

    지난 4월 2일부터 4일까지 3일간 샌프란시스코에서는 빌드(Build) 2014라는 마이크로소프트의 개발자 컨퍼런스가 개최되었습니다. 빌드는 2011년부터 매해 마이크로소프트의 주요 제품과 더불어 개발자를 위한 미래전략을 소개하고, 개발자들을 위한 백여 개 이상의 기술 세션으로 구성되는데 올해에는 그 어느 때보다 풍성하고 파격적인 내용들로 가득 채워졌습니다. 더욱이 사티야 나델라(Satya Nadella) 회장의 취임 이후의 첫 대형 개발자 행사라 내, 외부적으로 많은 관심이 집중되었던 것 같습니다. 저를 비롯하여 DPE 팀의 여러 에반젤리스트들은 각자 기술 컬럼을 통해서 이번 Build 행사에서 발표된 기술 업데이트에 대한 내용을 소개하고 있는데요, 본 컬럼에서는 개발도구 즉, Visual Studio에서 새롭게 제공되는 기능들 위주로 살펴보도록 하겠습니다.

    Visual Studio Online의 공식 서비스 발표

    가장 큰 변화는 그 동안 Preview로 제공되던 Visual Studio Online(이하 VSO)이 완전하게 공식 서비스를 시작했다는 것입니다. 사실 이는 본 컬럼에서 다루고자 하는 통합 개발도구인 Visual Studio 와는 직접적으로 관련이 있는 부분은 아니지만 중요한 업데이트이기에 간단하게라도 언급을 하고자 합니다. VSO는 기존에 Preview 버전으로 서비스되고 있던 클라우드 ALM 서비스인 Team Foundation Service에 다양한 고급 서비스를 추가하여 재 명명된 서비스로서, 클라우드 상에서 ALM(Application Lifecycle Management)을 이용할 수 있도록 할 뿐만 아니라 빌드 자동화 및 부하 테스트, 응용프로그램 인사이트(Application Insight) 등의 다양한 고급 서비스를 활용할 수 있도록 개선된 통합 클라우드 ALM 서비스입니다.

    VSO가 공식적으로 서비스를 시작하게 됨에 따라, 온프레미스에 별도의 인프라를 준비하지 않고도 쉽게 ALM 및 웹 응용프로그램 모니터링, 클라우드 부하 테스트를 이용할 수 있게 되었기에 국내, 외 많은 기업들이 관심을 갖는 눈치입니다. 국내에서도 몇몇 글로벌 기업이 클라우드 부하 테스트에 관심을 보이고 있으며 이를 활용해 보려는 움직임이 있기도 합니다. 이에 대해서는 별도의 오프라인 세미나나 컬럼을 통해서 자세히 소개할 예정입니다.

    clip_image002[4]

    clip_image004[4]

    Windows Phone 앱 개발 관련

    어찌보면 개발 툴 입장에서 가장 큰 기능 추가는 Windows Store앱 및 Windows Phone 앱과 관련된 업데이트일 것입니다. 아무래도 Windows Phone 8.1 공개에 따라 그를 위한 개발기능이 Visual Studio에 탑재되어야 하기 때문이겠죠? 그렇습니다. 이번 빌드 행사를 통해서 Windows Phone 8.1을 위한 새로운 개발자 플랫폼 기능이 새롭게 공개되었는데요, 그에 따라 Visual Studio 2013 Update 2에는 Windows Phone 8 과Windows Phone 8.1용 앱을 개발하는 데 필요한 모든 도구들이 추가되었습니다.

    기존에 개발된 Windows Phone 8 앱은 Windows Phone 8 과 8.1 모두에서 실행되며, Visual Studio 편집기에서 제공하는 코드렌즈나 엿보기 기능, XAML 인텔리센스 등의 향상된 기능들을 활용할 수 있습니다. 또한, 기존에 개발된 Windows Phone 8 앱은 Visual Studio 2013 Update 2를 이용하여 간단하게 Windows Phone 8.1앱으로 업그레이드를 할 수도 있습니다. 그러면 Windows Phone 8.1의 새로운 플랫폼 기능들도 활용할 수 있게 되겠죠.

    Windows Store 앱 개발을 위해서 사용할 수 있는 Visual Studio의 모든 개발 도구들은 Windows Phone 8.1 앱을 개발하거나 디버깅 및 진단하기 위해서도 마찬가지로 사용할 수 있습니다. 예를 들면, 메모리 프로파일러나 UI 응답성 진단기, 에너지 소비량 측정기 등의 진단 도구들을 사용하여 여러분의 Windows Phone 8.1 앱을 분석해 볼 수 있다는 것이죠.

    clip_image006

    Universal Windows 앱

    플랫폼 통합의 일환으로 Windows 8.1과 Windows Phone 8.1 앱 모두를 동일한 Windows 런타임을 기반으로 하여 구축하고자 한다면, 개발자는 새롭게 추가된 Universal Windows 앱을 활용해 볼 수 있습니다. 이는 Windows 8.1과 Windows Phone 8.1에서 대부분의 코드를 재활용할 수 있도록 해 줍니다.

    clip_image008

    Visual Studio 2013 Update 2 에서는 C#, C++, JavaScript를 개발언어로 사용할 수 있는Universal 앱 템플릿을 활용할 수 있습니다. 본 템플릿을 활용하여 솔루션을 만들면 Windows 8.1 프로젝트와 Windows Phone 8.1프로젝트가 함께 포함되어 있고 각각은 자신의 폼 팩터에 맞는 UI 요소들을 사용하게 됩니다., 또한 공유프로젝트(Shared Project) 라는 새로운 프로젝트도 추가되어 있는데요, 공유프로젝트(Shared Project)를 통해서 가능한 쉽게 코드와 자산들을 공유할 수 있습니다.

    clip_image010

    clip_image012


    기존 응용프로그램이 있는경우에는 마우스 오른쪽 클릭을 해서 Windows 및 Windows Phone 프로젝트를 추가할 수도 있습니다.

    .NET 네이티브(Preview)

    더불어, .NET 네이티브의 Preview 버전이 공개되었습니다. 이는 C# 및 .NET의 생산성과 함께 네이티브 코드의 뛰어난 성능을 누릴 수 있도록 하는 새로운 기술입니다. .NET 네이티브는 메모리 사용량과 전반적인 응용프로그램의 성능 및 구동 시간을 향상시키는 네이티브 이미지를 만들기 위해서 C++ 컴파일러 최적화 도구를 사용하는 새로운 사전(ahead-of-time) 컴파일러입니다. 현재는 Preview 버전이긴 하지만, 원한다면 개발자들은 X64 및 ARM을 대상으로 하는 Windows Store 앱에 이러한 새로운 컴파일 기술을 시범 사용해 볼 수 있습니다.

    Team Foundation Server 2013 Update 2 관련

    사실, Visual Studio 2013 Update 2의 향상과 함께 통합 ALM 제품이라고 할 수 있는 Team Foundation Server 2013 제품도 Update 2가 공개되었는데요, TFS에도 수 많은 새로운 기능이 추가되었습니다. 이에 대한 자세한 내용은 후에 따로 다룰 예정입니다만, 간단하게만 소개하면 새롭게 추가되거나 향상된 기능으로는 Git 지원 향상, TFS Web Access에서의 백로그 관리 기능 향상, Visual Studio 전반적인 태그 기능 및 경량의 차트(Chart) 기능 등을 거론할 수 있을 듯 합니다.

    더불어, 테스트 도구에도 많은 향상이 있었는데요. 특히 Windows Phone 앱을 위한 Coded UI 테스트 기능이 추가되었고 TFS 웹 엑세스에서 테스트 아티팩트들을 내보내기 할 수 있는 기능 등도 추가되었습니다.

    clip_image014

    여기서는 그러한 멋진 기능 중 Visual Studio와 연계되어 향상된 기능을 하나 소개할까 합니다. 이는 TFS 2013 Update 2 + VS 2013 Update 2가 함께 연계하여 제공하는 기능으로서, 코드 렌즈 영역에 새롭게 추가된 Incoming Changes 표시기입니다.

    코드 렌즈는 C#이나 VB 소스 코드의 선언 부에 ALM과 연계된 정보 및 소스 관리와 관계된 정보를 보여주는 일종의 정보 표시 영역인데요, Visual Studio 2013에서 처음 소개된 코드 렌즈는 그 영역 안에 참조 정보, 최근에 소스를 변경한 사람, 소스와 관련된 작업항목과 버그등 다양한 표시기를 나타내 보여줍니다. 이번 Visual Studio 2013 Update 2에서 새롭게 추가된 매우 유용한 표시기는 "Incoming Changes" 표시기인데요. 이는 소스 코드의 다양한 브랜치들의 이력을 살펴볼 수 있도록 해 줍니다. 어떤 브랜치들이 있고, 누가 그 브랜치에서 작업 중이고 어떤 변경사항들이 있었는지를 확인할 수 있도록 말이죠. 관리자가 아닌 개발자 입장에서 전체적인 개발 상황을 한 눈에 살펴볼 수 있도록 하는 상당히 유용한 기능이라 할 수 있습니다.

    TypeScript 1.0

    더불어, TypeScript 1.0도 공식적으로 발표되었습니다. TypeScript는 지난 18개월간 CodePlex 에서 오픈소스 프로젝트로 진행되어 왔으며, Visual Studio 2012에서도 애드온을 제공하여 사용해 볼 수는 있었는데요, 이번에 1.0 버전이 공개되면서 공식적으로 새로운 발걸음을 내디딘 것이라 할 수 있습니다. 이로써 응용프로그램 규모의 JavaScript 개발을 위한 초석이 마련된 것입니다.

    TypeScript는 JavaScript의 Superset이기에, JavaScript를 그대로 사용할 수 있을 뿐만 아니라 개발자가 입력한 코드를 JavaScript로 컴파일할 수 있도록 지원합니다. 더불어, 정적 타입검사, 심볼 기반 탐색, 코드 리팩토링 등의 다양한 개발 편의성도 누릴 수 있으며 이를 통해서 개발자들이 좀 더 쉽게 JavaScript를 응용하여 응용프로그램을 개발할 수 있습니다.

    TypeScript 1.0 RTM 관련 도구들은 Visual Studio 2013 Update 2에 포함되어 있으며, 크로스 플랫폼 개발을 지원하기 위해서 NPM package도 제공하고 있습니다.

    clip_image018

    clip_image020

    디버깅, 진단, 프로파일링

    더불어, 이번 릴리즈에서는 새롭게 추가된 프로파일링 도구도 존재할 뿐만 아니라 기존에 제공되던 디버거 및 .NET 에서 관리되는 메모리 분석기, IntelliTrace, 성능 및 진단 허브 등도 성능이 크게 향상되었습니다.

    그 내용들을 간단히 살펴보면 다음과 같습니다.

    clip_image024

      • 더불어, Windows Phone 8.1 에뮬레이터 안에서 웹 사이트를 디버그하는 것도 가능해졌습니다.
    • 성능 도구 및 분석기 관련
      • 새로운 CPU 사용량 측정도구가 성능 및 진단 허브에 추가되었습니다. 그렇기에 WPF, Console, Windows 8.1, Windows Phone 8.1 등의 프로젝트에서 이를 활용하여 다양한 분석을 할 수 있습니다. 이 도구를 통해서 어떤 기능이 CPU를 얼마나 사용하고 있는지에 대해 살펴볼 수 있으며, 그러한 데이터를 분석하여 앱이 최상의 성능을 낼 수 있도록 코드를 최적화하는 부분에 집중하여 작업할 수 있을 것입니다.
      • Windows 런타임을 기반으로 하여 C#/VB/C++ 과 XAML을 프로그래밍 언어로 사용하여 구축된 앱들 및 Universal Windows 앱을 분석하기 위한 새로운 메모리 사용량 도구도 성능 및 진단 허브에 추가되었습니다
      • 더불어, 이제는 성능 및 진단 허브에 있는 도구를 동시에 하나 이상 실행할 수 있게 되었습니다. 그렇기에, 성능 문제를 파악하거나 트레이드오프를 알아내는 데 있어 더 뛰어난 통찰력을 가질 수 있습니다.
      • clip_image026
    • IntelliTrace 관련
      • Microsoft Monitoring Agent (MMA)에 의해 수집되는 IntelliTrace 성능 이벤트에도 새로운 기능이 추가되었습니다.
        • 성능 데이터 안에서 동일한 성능 이벤트를 그룹지어 볼 수 있는 기능을 제공하며, Hot path도 살펴볼 수 있게 되었습니다(자세한 내용은 클릭)
        • ADO.NET 이벤트 데이터가 존재할 경우 SQL을 즉시 확인할 수 있습니다. Visual Studio의 SQL 도구를 사용해서 IntelliTrace 데이터에 캡춰된 SQL 쿼리를 곧바로 살펴볼 수 있게 해 주는 기능이 추가되었습니다.
        • ASP.NET MVC 웹 사이트에서 수집된 데이터의 경우에는 Action/Controller를 쉽게 확인 및 탐색할 수 있습니다.
      • MMA(Microsoft Monitoring Agent)에 의해 수집된, 예외 데이터를 포함하고 있는 IntelliTrace 파일을 살펴볼 경우, 이제는 매개변수를 파악하기가 훨씬 쉬워졌으며, 코드맵을 이용해서 호출 스택을 시각화해서 볼 수 있기에 어디서 예외가 발생되었는지도 쉽게 파악할 수 있게 되었습니다.
    • Windows Store 앱
      • Windows 8.1 스토어 앱을 디버깅할 경우를 위한 프리페치 트리거 기능 지원
        • ContentPrefetcher가 올바르게 등록되었는 지를 확인하기 위해서 혹은 프로그램의 동작을 테스트하기 위해서 프리페치를 수동으로 트리거할 수 있습니다.

    clip_image028

      • Windows Store 앱이나 Windows Phone 앱으로 테스트용 통지(Notification) 메시지를 보내기 위해서 Windows Azure Notification 허브를 사용할 수 있을 뿐만 아니라 실시간으로 결과를 확인할 수 있습니다.

    Microsoft Azure 및 Web 개발

    그 밖에도, Web 개발자를 위해서 새롭게 지원되는 기능이나 향상된 기능들도 상당히 많습니다. 자세한 내용은 [새롭게 추가 및 향상된 ASP.NET 및 Web 기능] 링크에서 확인하실 수 있는데요. 전체 내용은 시간이 되면 따로 한번 정리해야 할 정도로 분량이 많습니다. 그렇기에, 이번 컬럼에서는 전체 내용 중 주목할만한 부분만을 추려서 간략하게 정리하고자 합니다. 여기에는 ASP.NET MVC, Web API, Web Pages에 대한 업데이트도 포함되어 있을 뿐만 아니라 Microsoft Azure를 활용하기 위해 향상된 내용도 포함되어 있습니다.

    주목할만한 부분 :

    • 코드 편집기의 기능향상 및 새로운 두 파일(SASS와 JSON 파일)에 대한 편집기 지원
      • 새로운 JSON 편집기 제공
        • 구문 유효성검사, 코드 컬러, 인텔리센스 등의 기능 지원

    clip_image030

      • 새로운 SASS 편집기 제공
        • 코드 컬러, 인텔리센스, 구문 유효성검사, 정의로 이동, 색상 선택기 등의 기능 제공

    clip_image032

      • LESS 편집기 관련 향상
        • Knockout 인텔리센스 향상 및 Razor, CSS, LESS, SASS 페이지에서의 URL 선택기 등의 기능 제공
    • 브라우저 링크 지원 향상
      • HTTPS 연결, SPA(Single Page Applications), 정적 HTML 파일 지원
    • ASP.NET 기본 프로젝트 템플릿 업데이트
      • ASP.NET MVC, Web API, Web Pages, SignalR 등 최신 플랫폼 관련 템플릿들
    • Microsoft Azure 개발자를 위한 기능들
      • Azure를 좀 더 편하게 이용할 수 있도록 하기 위한 기능 추가
        • 파일 > 새 프로젝트 대화상자에서 Microsoft Azure 웹사이트나 가상머신에 직접적으로 웹 사이트를 생성할 수 있도록 하는 옵션을 새롭게 제공하고 있으며, 그렇게 생성한 이후에는 배포도 쉽게 할 수 있도록 지원하고 있습니다.

    clip_image034

      • 서버 탐색기에 Microsoft Azure 웹 사이트를 위한 새로운 기능 추가
        • 원격 웹 사이트에 있는 파일 목록 및 내용을 살펴볼 수 있는 기능
        • 원격 웹 사이트에 있는 로그 파일들을 살펴볼 수 있는 기능

    clip_image036

      • .NET 백엔드를 사용하는 모바일 서비스 관련 도구 지원
        • 새로운 프로젝트 템플릿 및 원격 디버깅을 위한 지원

    이 밖에도 많은 버그 픽스와 많은 업데이트가 존재하지만, 핵심적인 업데이트는 위와 같습니다. 사실 위에서 설명한 내용들은 말 그대로 간략하게 정리를 한 것이기에, 개발자별로 자신과 직접적으로 관련이 없는 분야의 업데이트 내용은 다소 추상적으로 들릴 수도 있습니다. 하지만, 각각의 기술과 직접 관련된 개발자들에게는 상기 요약만으로도 대략적으로 관련 업데이트가 어떤 내용인지 이해하실 수 있을 것이라 생각합니다. 더불어, 자세한 설명은 관련 링크를 통해서 좀 더 살펴볼 수 있습니다.

    참고

    · Visual Studio 2013 Update 2 (Build 2014)

    http://www.visualstudio.com/en-us/news/2014-apr-2-vs.aspx

    · CodeLens: New ‘Incoming Changes’ Indicator

    http://blogs.msdn.com/b/visualstudioalm/archive/2014/03/03/new-codelens-indicator-incoming-changes.aspx

    · TypeScript 1.0 (RTM)

    http://www.typescriptlang.org/

    · JSON Debugger Visualizer

    http://blogs.msdn.com/b/visualstudioalm/archive/2014/02/06/json-debugger-visualizer-in-visual-studio-2013.aspx

    · .NET Managed Memory Analyzer : Object Inspection

    http://blogs.msdn.com/b/visualstudioalm/archive/2014/02/06/net-memory-analysis-object-inspection.aspx

    · CPU Usage tool in the Performance and Diagnostics hub

    http://blogs.msdn.com/b/visualstudioalm/archive/2014/02/28/new-cpu-usage-tool-in-the-performance-and-diagnostics-hub-in-visual-studio-2013.aspx

    · Memory Usage Tool in the Performance and Diagnostics hub

    http://blogs.msdn.com/b/visualstudioalm/archive/2014/04/03/diagnosing-memory-issues-with-the-new-memory-usage-tool-in-visual-studio.aspx

    · Combining Tools in the Performance and Diagnostics Hub

    http://blogs.msdn.com/b/visualstudioalm/archive/2014/02/11/combining-tools-in-the-performance-and-diagnostics-hub-in-visual-studio-2013.aspx

    · Jump to SQL with IntelliTrace

    http://blogs.msdn.com/b/visualstudioalm/archive/2014/02/10/jump-to-sql-with-intellitrace.aspx

    · IntelliTrace MVC Navigation

    http://blogs.msdn.com/b/visualstudioalm/archive/2014/02/12/intellitrace-mvc-navigation.aspx

    · UI Enhancements for IntelliTrace

    http://blogs.msdn.com/b/visualstudioalm/archive/2014/02/11/ui-enhancements-for-intellitrace-with-visual-studio-2013-update-2.aspx

    · ASP.NET and Web Tools 2013.2 for Visual Studio 2013

    http://www.asp.net/visual-studio/overview/2013/aspnet-and-web-tools-20132-preview-for-visual-studio-2013-release-notes

    · Application Insights for Visual Studio Online

    http://msdn.microsoft.com/en-us/library/dn481095.aspx

  • Korea Evangelist

    테크데이즈 미니 토요세미나 발표자이신 유경상님을 미리 만나 보았습니다.

    • 0 Comments

    오늘은 www.simpleisbest.net 라는 기술 전문 블로그의 운영자이면서 “유수석의 WCF 바이블”의 저자이신 유경상님을 모시고 이야기를 나누어 보았습니다.

    HPIM8924김명신: 안녕하세요? 바쁘신 와중에도 이렇게 인터뷰에 응해 주셔서 감사합니다.

    유경상: 네, 반갑습니다. 이렇게 찾아와 주셔서 감사 드립니다.

    김명신: 최근에 .NET 기반 기술 컨설팅과 소프트웨어 개발에 여념이 없으실 걸로 알고 있습니다. 십여년간 다양한 산업분야와 회사에서 자문 활동을 하시면서 마이크로소프트 기술에 대한 개발자의 인식을 몸소 체험하셨으리라 생각됩니다. 최근 들어 국내 시장에서 마이크로소프트 기술이 주춤한다는 평가들도 없지 않은데 어디에 그 원인이 있다고 생각하시는지요?

    유경상: 개인적으로 마이크로소프트의 기술이 시장에서 올바르게 평가 받지 못하고 있는 부분이 있다고 생각합니다. 이것은 마이크로소프트의 기술의 문제라기 보다는 인식의 문제가 아닌가 합니다. 특히 마이크로소프트가 강점으로 내세우고 있는 사용자 편의성이 기업 내의 개발 환경에서는 도리어 좋지 않은 영향을 미치고 있는 부분이 있다고 생각하고 있습니다. Visual Studio와 같은 개발도구나 Windows Server와 같은 운영체제 전반을 살펴보면 굉장히 사용자 친화적인 GUI 환경을 제공하고 있음을 알 수 있습니다. 그런데 이처럼 사용자 친화적인 환경이 역설적으로 쉬운 개발환경, 쉬운 운영체제로 잘못 인식되어서 전문가 없이도 누구나 쉽게 접근할 수 있다는 오해를 불러 일으킨다는 것입니다. 이에 대비해서 Oracle, Apache 등의 DBMS나 웹서버들은 여전히 주요 관리 방식이 CUI를 근간으로 하거나 텍스트 파일을 이용한 구성 방식을 취하고 있기 때문에 보이지 않는 장벽들이 있습니다. 손쉽게 익혀서 사용하기에는 어려운 방식이지요. 그렇다 보니 관련 전문가들을 찾고 의뢰하는 것에 인색하지 않습니다. 이에 비하여 마이크로소프트의 SQL Server나 IIS 등은 GUI 환경 내에서는 대부분의 작업들을 손쉽게 수행할 수 있기 때문에, 관련 제품이나 기술의 전문가가 아니더라도, 마우스 클릭 몇 번 만으로도 대략적인 구성을 완료할 수 있고, 손쉽게 수정할 수 있는 것처럼 보입니다. 하지만 올바르게 구성을 설정하고 변경하는 작업은 그 방법의 차이일 뿐이지 반드시 동일 수준의 전문성이 전제되어야 하는 작업입니다.

    김명신: GUI 환경을 제공한다는 것은 대체로 장점으로 평가되고 있는 측면이 강한 것 같습니다만 개발 환경에 좋지 않은 영향을 미칠 수도 있다는 부분에 대해서는 어떻게 이해하는 것이 좋을까요?

    유경상: 최적화 되지 않은 구성 설정이나, 혹은 최적화 되지 않은 쿼리 등은 그 자체로는 문제가 되지 않을지 모르나, 이를 기반으로 하는 기업용 시스템의 성능이나 안정성 등에는 즉각적으로 문제를 일으킵니다. 특별히 미션 크리티컬(Mission Critical)한 업무이거나 사용자 수가 많은 대규모 시스템의 경우에는 업무의 특성을 완벽히 분석하고, 하드웨어와 소프트웨어의 성능을 최대한으로 뽑아 쓸 수 있어야 하는데, 그렇지 못할 수 있다는 것이고요. 그 보다 더 심각한 것은 이로 인해 개발된 시스템이 요구하는 성능에 부합하지 못하거나 혹은 문제를 일으키게 되면 그것이 마이크로소프트 기술에 대한 잘못된 인식으로 남게 된다는 것입니다. 그러한 인식은 쉽게 바뀌지 않아서 추후에 의사결정 과정에 큰 영향을 미치게 됩니다.

    김명신: 구체적으로 사례들이 있다면 말씀해 주실 수 있을런지요?

    유경상: 최근에 모 기업의 시스템에 성능 문제가 있어 방문 드린 적이 있었는데요, 하드웨어는 최상의 하드웨어를 도입하였고 64비트 운영체제를 이용하고 있었는데, IIS를 32비트로 설정해 두어서 메모리를 제대로 쓰지 못해 문제가 있었던 경우가 있었습니다. 단순히 IIS 설정을 64비트 설정으로 변경하는 것으로 원하는 수준의 성능을 얻을 수 있었습니다. 혹은 SQL 서버의 쿼리 수행 성능이 너무 느리다고 호소하는 업체도 있었는데, 실제로 제가 확인한 바에 따르면 어떤 데이터베이스를 쓰더라도 느릴 수 밖에 없는 쿼리(발쿼리라고들 하는)문으로 인해 현저하게 속도가 저하되는 것을 확인하고 최적화를 수행하여 수십배 이상 빠르게 수행되도록 변경한 사례도 있고, 다른 데이터베이스에서 사용하던 쿼리 구문을 SQL Server에 대한 이해 없이 그냥 적용하여 성능이 제대로 나오지 않는 경우도 있었습니다. 앞서 구성에 대한 부분만을 말씀드렸습니다만 실제로 응용 프로그램 레벨에서도 이러한 문제는 매우 심각합니다. Java를 이용하여 개발을 진행하는 경우에는 대체적으로 응용 프로그램 개발 스택들이 경험적으로 체계화 되어 있는 경우가 많습니다. 하지만 마이크로소프트의 개발 플랫폼 스택들은 다양성과 더불어 비교적 자유도가 높은 경우가 많지요. 이렇다 보니 업무에 적합한 기반 기술을 선택하지 않으면 좋지 않은 결과로 이어질 수 있습니다. 마이크로소프트가 빈번히 새로운 신기술들을 출시함에 따라 마치 신기술이 가장 좋다는 생각에 잘못된 선택을 하는 경우도 많고, 혹은 기존 기술만을 너무 고집하여 최신의 기술을 적용하지 못하는 경우도 있지요. 전문가 없이 초/중급 개발자들만으로 구성된 팀에서 프로젝트를 진행하는 경우, 성공확률도 낮아질뿐더러, 자신이 잘못 작성해서 문제가 되었다고 인정하기 보다는 문제의 원인을 기술로 치부하는 경우가 허다합니다.

    김명신: 수년 동안 마이크로소프트 기술이 유독 국내에서 시장 점유율이 낮은 이유도 비슷한 맥락에서 이해될 수 있을런지요?

    유경상: 그렇습니다. 소프트웨어 개발에 사용되는 기술들은 급속히 변화하고 발전하는 분야이지요. 그렇다 보니 최초에는 기업체 별로 나름의 특장점들이 드러날지 모르나, 장시간 동안 발전되고 진화하는 과정에서 유사한 형태로 발전됩니다. 이런 측면에서 특정 플랫폼이 다른 플랫폼에 비해서 턱없이 부족하다거나 혹은 훨씬 더 좋다고 판단하기에는 어려움이 있습니다. 여러 가지 형태의 영향이 있었을 것이나 앞서 말씀 드린것과 같은 전문성의 부재로 인한 편협한 시각도 일조했으리라 생각하고 있습니다.

    김명신: 그나마 최근에는 다시 마이크로소프트 기술을 사용하시는 기업체나 개발자들이 차츰 증가하고 있는 추세인 것 같습니다. “Mobile First, Cloud First”와 같은 슬로건 아래, 시장의 요구사항을 빠르게 수용할 수 있도록 변화하고 있습니다만 이에 대해서는 어떻게 평가하실 수 있을까요?

    유경상: 한국 시장만을 고려해 보았을 때, 마이크로소프트의 클라우드 전략은 부족함은 있을지언정 올바른 방향으로 제대로 순항하고 있다고 생각합니다. 산업별로 부침이 있겠으나 클라우드에 대한 인식은 나쁘지 않고, 클라우드가 제공하는 가치에 대해서 대체적으로 동의하는 편입니다. 하지만, 마이크로소프트의 모바일 전략에 대해서는 개인적인 관점에서 성공을 위해서는 상당한 노력이 수반되어야 할 것으로 보입니다. 이미 포화상태에 이른 시장에서 새로운 형태의 모바일 솔루션을 만들어 내고 시장에서 자리매김을 한다는 것은 쉽지 않은 일임에 분명합니다.

    김명신: 마지막으로 한국에서 40대 개발자로 살아가는 것에 대해서 여쭙고 싶습니다.

    유경상: 저는 중학교 때 코딩을 시작했습니다. 프로그래밍이 너무 좋아서 당시에 상고를 가려고 생각을 했을 정도입니다. 물론 이후 인문계를 거쳐 대학을 진학하였고, 학과 선택에 있어서도 고민한 적이 없어요. 좋아 하는 공부를 하다보니 열심히 할 수 있었던 것 같고, 졸업 이후에도 자연스럽게 프로그래밍을 직업으로 선택 한 경우입니다. 한국에서는 40대 개발자가 자리매김 하는 것이 참으로 어려운 것은 사실입니다. C++를 이용하는 일부 솔루션 개발사의 경우 40대 이상의 개발자가 꽤나 있지만, 일반적인 기업용 응용 프로그램 개발 분야에서는 많이 찾아 보기 어렵습니다. 그들이 가지고 있는 경험과 기술에 대한 전문성을 올바르게 평가하고, 가치를 인정하는 풍토가 적기 때문이라고 생각합니다. 하지만 이들만이 가지고 있는 경험과 기술에 대한 전문성은 어디서도 살 수 없는 것이기 때문에 기업들의 인식변화가 반드시 선행 되어야 한다고 생각합니다. 다행스럽게도 저도 여전히 프로그래밍을 하고 있는 것으로 봐서는 점차 환경이 나아지고 있다고 생각합니다.

    김명신: 끝으로 한국 마이크로소프트에 바라는 바가 있다면 한 말씀 부탁 드리겠습니다.1.png

    유경상: 최근에 한국 마이크로소프트에서 “테크데이즈 미니”나 “멜팅팟” 세미나 등을 지속적으로 진행하면서 개발자들에게 기술을 전파하는 장을 마련하신 부분에 대해서는 상당히 긍정적인 평가를 하고 있습니다. 하지만 실제 기업 환경에서 사용하는 기술은 마이크로소프트의 최신 기술이 아니기 때문에, 세미나를 듣는 그 때뿐이고 현업에 즉각적인 도움을 주지는 못하는 것 같습니다. 세미나의 주제나 내용 등을 다각도로 분석하고, 기술에 대한 방향성을 제시할 수 있었으면 합니다. 그런 의미에서 이번에 제가 다룰 “유닛테스트” 관련 세션은 현장의 개발자들이 바로 적용해 보실 수 있을 만큼의 실용적인 내용이 아닐까 싶습니다.

    김명신: 세션준비로 많이 바쁘실 텐데, 인터뷰에 응해 주셔서 감사합니다. 테크데이즈 미니 행사장에서 뵙겠습니다.

    테크데이즈 미니 토요세미나 안내

  • Korea Evangelist

    Build 2014 윈도우폰 관련 발표 내용 요약

    • 0 Comments

    마이크로소프트 개발자들의 가장 큰 컨퍼런스인 Build 2014 첫째날 키 노트에서 인상적인 내용들의 발표가 많았지만 중에서 윈도우폰8.1 대한 내용은 빼놓을 없을 같다. 여기에서는 윈도우폰 8.1 추가 향상된 부분으로 발표한 10가지를 살펴보도록 하겠다. (이 포스트는 중스의 마이크로소프트 이야기에 올린 포스트와 동일합니다.)

       

    #1. 전세계 12개의 OEM 파트너

     (현재 윈도우폰을 만들도록 마이크로소프트와 계약 된 전세계의 제조사 들)

    Build 2014에서 윈도우폰 제조사에 마이크로맥스와 프레스티지오를 추가함으로 12개가 되었다. 국내 업체의 경우 LG 다시 추가되었고, 향후 여러 제조사에서 출시한 다양한 종류의 윈도우폰을 보게 될 것으로 기대한다.

       

    #2. 액션센터

     (좌측: 액션센터를 통한 알림 메시지 목록 보기, 우측: 액센센터 상단 바로가기 편집 및 알림 설정)

    윈도우폰 상단에서 내리는 형태로 끄집어 있는 액션 센터가 생김으로써, 타일로 시작화면에 고정하지 않은 앱의 알림을 확인하는 것이 편해졌다. 액션 센터에서는 배터리 상태 등의 세부 정보도 확인할 있고, 앱의 바로가기 설정을 수도 있다. 윈도우폰 개발자들은 이제 오직 액션센터에서만 보이도록 하는 알림도 구현 가능하게 되었다.

       

    #3. 잠금 타일 화면 개선

     

    윈도우폰 8.1에서는 추가적인 UI 개선이 있었다. 중의 하나로 기존 이미지와 텍스트를 보여주던 잠금화면을 보다 다채롭게 설정할 있도록 하는API 공개할 예정이다. 또한 기존 화면의 윈도우폰에서만 가능했던 많은 타일을 배치하는 것을 작은 화면의 윈도우폰에서도 가능하도록 했고, 타일의 배경으로 백그라운드 이미지를 사용할 있게 했다. 이를 통해 윈도우폰이 지속적으로 추구해온 본인만의 폰을 만들 있는 부분이 확장되었다.

       

    #4. 디지털 비서 코타나

     (좌측: 코타나 실행화면, 중앙: 개인화된 서비스를 제공, 우측: 점점 학습되는 코타나 노트북)

    음성 인식을 통해서 특정 기능을 수행하도록 하는 것은 현대 IT 기기들에서 더이상 낯선 방식이 아니다. 윈도우폰8.1에서 발표한 코타나는 음성 인식과 더불어 사용자에게 특화된 디지털 비서로서 동작한다. 코타나는 헤일로라는 게임에서 등장한 인공 지능 캐릭터로 주인공을 돕는 비서 역할을 했었다. 윈도우폰의 코타나는 Bing 엔진을 통해서 인터넷과 사용자가 제공하는 데이터를 기반으로 정보를 제공한다. 예를 들면 편지함에 항공권이 있으면, 해당 항공기의 출발 시간이 변경 되지 않았는지 확인하고 이를 사용자에게 알려주기도 한다. 또한 상황에 맞게 전화를 걸어주고, 약속을 미리 알려주고, 자주 가는 장소 등을 노트에 기록하는 진짜 비서와 같은 역할을 수행한다. 코타나는 기본 앱들과 연동하는 뿐만 아니라 서드 파티 앱들과도 같이 연동할 있다. 페이스북을 포함해서 이미 많은 업체의 앱들이 코타나와 연동되어있다.

       

    #5. 비즈니스 기능

    (좌측: VPN에 연결중인 상태, 우측: 암호화된 메일 보는 화면)

    윈도우폰은 시간동안 검증된 윈도우 NT 커널을 사용하는 플랫폼이다. 윈도우폰8.1 비즈니스에도 활용하기 위해서, 마이크로소프트는 많은 비즈니스 솔루션 파트너들과 함께 작업을 하고 있다. 비즈니스에 윈도우폰을 활용하기 위해서 필요한 중에는 보안 디바이스 관리 부분이 있다. 관리 부분으로는 기업에서 신규 직원을 등록하면 윈도우폰8.1 메일과 , 정책, 설정 등을 자동으로 다운받게 있다. 보안 부분으로는 기업용 VPN 지원해서, 윈도우폰으로 기업 내부 사이트를 브라우징 있다. 또한, S/MIME 지원해서 암호화된 메일을 폰에서 읽을 있고, 폰에서 서명된 메일을 보낼 수도 있다. 그리고 MDM 정책을 통해서 폰에 복사본 파일을 저장할 없도록 하거나, 특정 앱을 실행하지 못하게 있다.

       

    #6. 윈도우폰 스토어 앱 및 기본 앱 향상

     (좌측: 새로운 윈도우폰스토어 UI, 중앙: 대폭 향상된 일정 앱, 우측: WI-FI를 쉽게 연결하도록 하는 Wi-Fi 센스)

    윈도우폰 스토어 앱은 사용자들이 앱을 찾고 설치하는 경험의 향상을 위해서 전체적인 UI 많은 개선을 하였고, 하나는 사용자의 설치 경향을 분석하여 앱을 추천해 주는 기능이다. 또한 일정 앱은 주간 보기 화면에서 한눈에 일정을 확인하고, 세부 일정을 선택할 있도록 업데이트되었다. 그리고 Wi-Fi 센스 앱은 무료 Wi-Fi 접속 포털 화면에서 매번 사용자 이름과 비밀번호를 입력하지 않고도 접속할 있도록 하거나, 데이터를 효율적으로 사용할 있게 한다.

       

    #7. 일반 전화를 화상 전화로 업그레이드

     

     (좌측: 일반 전화가 왔을 때 화상 전화 아이콘 표시, 우측: 화상 통화 앱을 전화 설정에 연결)

    비디오 기능이 있는 Skype 같은 앱이 설치되어 있고, 연락처에 Skype 주소가 연결된 경우에는 일반 전화 통화 시에 화상 전화로 업그레이드 있다. 사용자 입장에서는 일반 전화와 화상 전화가 플랫폼을 기반으로 원활하게 전환 있다.

       

    #8. 워드플로우 키보드

     

       

    새로운 문자 입력 방법으로 워드플로우 키보드가 생겼다. 기존 Qwerty 자판에서 입력하고자 하는 문자들을 하나씩 입력하는 것에 비해, 입력할 문자들을 슬라이드 하듯이 입력하는 것인데, 정확도가 매우 높고 편리하다. 실제 윈도우폰의 워드플로우 키보드를 이용해서 세계에서 가장 빠른 문자 입력 기록을 세웠다고 한다.

       

    #9. 윈도우 PC와의 연동 IE11

     (좌측: IE11의 브라우징 화면이며 탭 버튼과 리딩 모드 버튼이 보임, 우측: IE11의 리딩 모드)

    기존에 윈도우폰과 윈도우 PC와의 연동을 위해서 원드라이브를 이용할 있었는데, 윈도우폰8.1 부터는 사진이나 오피스 파일의 연동 외에도 Wi-Fi 센스나 테마 등도 동기화가 가능 해서 디바이스 별로 중복으로 설정을 하지 않아도 된다. 그리고 윈도우폰용 IE11 인프라이빗 브라우징을 기능이 추가되었고, 리딩 모드를 통해서 글자 크기를 크게 하거나 배경을 어둡게 해서 좀더 편안하게 있게 되는 여러 기능 들이 추가 되었다.

       

    #10. 새로운 Lumia 디바이스

     (좌측: 듀얼 심을 제공하는 Lumia 630, 우측: LTE를 지원하는 Lumia 635)

    신규 윈도우폰8.1 디바이스는 2014 중반에 출시될 예정이며, 기존 윈도우폰 8 출시된 모든 Lumia 디바이스는 윈도우폰8.1 업그레이드 된다. 제조사를 통해서 정식 윈도우폰 8.1 나오지 않은 경우에는 Developer Preview 프로그램을 통해서 윈도우폰 8.1 업데이트 있다. 출시 모델 플래그십 모델로는 Lumia 930 있으며, 가격 경쟁력이 있는 630 635 각각 듀얼 심과 LTE 지원 모델로 나올 예정이다. Lumia 디바이스는 자체 앱인 Nokia Radio Here Map 뿐만 아니라 Nokia Imaging SDK, SensorCore SDK등을 제공함으로서 보다 차별화된 디바이스 전략을 가져가게 된다.

       

    지금까지 Build 2014 키노트에서 소개된 윈도우폰 8.1 대해서 간략히 살펴보았다. 윈도우폰 8.1 통해서 보다 개인화된 경험을 있고, 코타나를 통한 디지털 비서 기능을 체험할 있으며, 비즈니스에서 활용할 있는 많은 기능들이 추가가 되었으므로 윈도우폰 8.1 성장을 더욱 기대해본다.

       

    #관련 자료

     

    Cortana (yes!) and Many, Many Other Great Features coming in Windows Phone 8.1

    http://blogs.windows.com/windows_phone/b/windowsphone/archive/2014/04/02/cortana-yes-and-many-many-other-great-features-coming-in-windows-phone-8-1.aspx

       

    Build 2014 Windows Phone 8 Sessions

    http://channel9.msdn.com/Events/Build/2014?sort=sequential&direction=desc&term=&tag=windows-phone&tag=windows-phone-apps

       

    What's new in Internet Explorer 11 for Windows Phone

    http://blogs.msdn.com/b/ie/archive/2014/05/07/what-s-new-in-internet-explorer-11-for-windows-phone.aspx

       

    Windows Phone Preview for Developers

    http://dev.windowsphone.com/en-us/develop/devpreview

      

  • Korea Evangelist

    Windows 개발 플랫폼 통합과 크로스 플랫폼 앱 개발

    • 0 Comments

    디바이스가 점점 다양해지고 멀티 스크린 환경이 되면서, 사용자들은 서로 다른 플랫폼에서 같은 앱을 이용하는 것을 당연하게 받아들이고 있습니다. 그러나 파편화된 플랫폼으로 인해서 개발자가 서로 다른 플랫폼을 넘나들며 개발을 하기에는 여전히 어려운 상황입니다.

    마이크로소프트는 앱 개발자들이 더욱 편리하게 멀티 스크린 앱을 개발할 수 있도록 Windows 개발 플랫폼 통합 작업을 몇 년에 걸쳐 진행해 왔고 Build 2014에서는 그 결과물인 Universal Windows App을 발표하였습니다. 또한, 타 플랫폼에서도 C#으로 앱을 개발할 수 있도록 크로스 플랫폼 앱 개발 솔루션인 Xamarin을 공식적으로 지원하기 시작했습니다.

    이 글에서는 통합된 Windows, Windows Phone 앱 개발 플랫폼에 대해서 살펴 보고, Android와 iOS 앱을 C#과 .NET Framework 으로 개발하는 방법을 알아 봅니다.

    clip_image002[6]

    개발자를 위한 하나의 Windows 앱 개발 플랫폼

    Build 2014에서는 Windows와 Windows Phone 앱 간에 코드를 공유하는 Universal Windows App, 스토어와 앱 아이덴터티의 통합을 발표하였습니다. 이러한 변화로 인해서 서로 다른 스토어에 동일 앱을 개발하는 생산성이 높아졌으며 최종 사용자 경험을 개선할 수 있습니다.

    Universal Windows App은 하나의 프로젝트에서 Windows와 Windows Phone 앱을 모두 개발할 수 있는 새로운 앱 개발 프로젝트를 말합니다. Universal Windows App은 이번 Windows Phone 8.1 업데이트를 통해 가능하게 되었는데, 그 바탕에는 Windows 8에서 처음 소개된 Windows Runtime(줄여서 WinRT)API들이 Windows Phone 8.1에서 완벽하게 이식되었기 때문입니다. 마이크로소프트는 Windows Phone 7.5에서부터 이러한 플랫폼 통합을 진행해 왔고, Universal Windows App은 플랫폼 통합의 결과물이자 완성 단계라고 할 수 있습니다.

    clip_image004[4]

    Windows 8의 WinRT앱와 달리, 이전 Windows Phone 8.0에서는 Silverlight 앱으로 개발을 했고 일부 WinRT API만 사용할 수 있었습니다. Silverlight앱과 WinRT 앱 모델, API 구성, UI 컨트롤의 차이로 인해서 기존의 C# 및 XAML 코드를 재활용하는 것이 상당히 복잡했습니다. 하지만, WinRT API가 Windows Phone 8.1에 완전히 적용이 되고 WinRT 앱을 개발할 수 있게 되면서 동일한 코드를 재사용하는 것이 가능해졌고, 단순한 코드 재사용 뿐 아니라 공유 프로젝트를 통해서 단일 코드를 사용하는 것도 가능하게 되었습니다.

    개발자들은 두 플랫폼에서 완전히 동일한 코드를 사용할 수 있습니다. 90% 이상의 WinRT API가 Windows와 Windows Phone 플랫폼에서 동일하게 지원되고, 스크린 사이즈에 따라 같은 UI컨트롤의 표시 방식을 자동으로 변경합니다. 단, PC와 폰의 사용 환경 차이로 인한 기능의 차이가 있기 때문에 10% 이하의 플랫폼 고유의 API는 다른 코드를 사용해야 하고, 디바이스에 최적화된 경험을 제공하고자 하는 경우 UI 코드도 일부 다르게 분기 구문 등을 이용해서 다르게 구성할 수 있습니다.

    clip_image006[4]

    Visual Studio 2013 Update 2 이상 버전에서는 Universal Windows App을 개발할 수 있는 프로젝트 템플릿을 제공하여, 처음 시작하는 개발자가 손쉽게 두 가지 플랫폼 앱을 동시에 개발할 수 있도록 지원합니다. (개발 툴에서 실제 Universal Windows App 프로젝트를 생성하는 방법은 Visual Studio 주제의 포스팅을 참고하시기 바랍니다.)

    개발자를 위한 Windows통합은 앞서 언급했듯이, 개발 플랫폼 뿐만 아니라 스토어의 통합도 함께 이루어 져야 합니다. 이를 위해서 마이크로소프트는 개발자가 두 가지 플랫폼 앱을 개발할 때 하나의 스토어 계정으로 할 수 있도록 통합하였고, Windows와 Windows Phone 스토어 간에 같은 앱을 인식할 수 있도록 앱 아이덴터티를 통합하였습니다.

    통합된 아이덴터티를 통해서 개발자는 사용자로 하여금 한번 결제한 앱을 다시 구매 하지 않도록 할 수 있으며, 앱 간에 클라우드를 통한 데이터 로밍이 가능하고, 단일 푸시 알림 서비스를 사용하여 앱을 효과적으로 운영할 수 있게 되었습니다.

    하나의 Windows 개발 환경을 통해서 개발자들은 멀티 스크린 앱 개발의 생산성을 높이고, 편리하게 앱을 관리할 수 있을 뿐 아니라, 더 나은 사용자 경험을 제공할 수 있게 되었습니다.

    크로스 플랫폼 앱 개발

    잘 알려지지는 않았지만 C#과 .NET API를 이용해서 Android나 iOS와 같은 타 플랫폼 앱도 개발할 수 있습니다. 실제로 해외에서는 C#을 이용한 크로스 플랫폼 프로젝트를 진행한 성공적인 비즈니스 앱 사례 들이 있습니다.

    clip_image008[4]

    Figure 1 인터넷 라디오 Rdio의 사례

    clip_image010[4]

    Figure 2 Kimberly Clark의 영업직 아이패드 앱 사례

    이러한 사례들은 크로스 플랫폼 앱 개발 솔루션인 Xamarin 을 이용하여 개발하였습니다. Xamarin은 C# 코드와 .NET API를 이용해서 Android와 iOS 네이티브 앱을 개발하는 솔루션이자 이를 서비스하는 회사 이름입니다. Xamarin에 따르면, 현재 3만 여개의 고객사와 50만 명의 개발자가 그들의 솔루션을 사용하고 있다고 합니다.

    clip_image012[4]

    마이크로소프트가 Xamarin와 협력하는 이유는, Xamarin이 .NET Framework를 Windows 외의 플랫폼에서 사용할 수 있도록 하는 오픈소스 프로젝트들에 기반하고 있으며, C# 개발자들이 다양한 크로스플랫폼에서 앱을 개발할 수 있도록 기회를 제공하고 있기 때문입니다.

    마이크로소프트는 차세대 C# 및 VB 컴파일러 플랫폼인 Roslyn을 오픈소스화 하면서 .NET Foundation을 설립하는데 Xamarin 과 협력하고 있다고 Build에서 발표하였습니다. Xamarin은 서로 다른 디바이스 환경에서 동일한 API를 사용할 수 있도록 하는 Xamarin Mobile, 크로스 플랫폼 인증 API인 Xamarin.Auth등의 6가지 오픈소스 프로젝트를 통해 .NET Foundation에 기여하기로 하였습니다.

    현재 Visual Studio 2013을 이용하면 Xamarin으로 개발한 Android와 iOS 앱에 기존 Universal Windows App의 공유 코드를 사용할 수 있습니다. 즉, 개발자들은 Windows와 Windows Phone 뿐만 아니라 타 플랫폼에서도 같은 C# 코드를 사용할 수 있다는 뜻입니다. 물론, Android와 iOS는 Windows에서 처럼 XAML UI를 사용하지 않기 때문에 UI 단계나 폰의 기능을 구현하는 API 단계에서는 다른 코드를 작성할 수 밖에 없습니다. 하지만 Java나 Object C를 새로 배우거나 혼용하지 않고도 C# 만으로도 각 플랫폼의 Native 기능을 100% 활용할 수 있습니다.

    clip_image014[4]

    마이크로소프트는 Build 2014의 C#과 .NET의 향후 방향으로 Open, Cross Platform, Native를 제시했습니다.

    이제 개발자들은 새로운 Universal Windows App프로젝트와 Xamarin을 통해서 플랫폼에 관계없이 멀티 스크린 앱을 C#과 WinRT/.NET API를 이용해서 개발할 수 있으며 같은 코드를 사용하는 공유 프로젝트가 가능해져 더욱 생산성을 높일 수 있게 되었습니다.

  • Korea Evangelist

    앱 개발 모임 시즌4 / 2주차 후기

    • 0 Comments

    오늘 앱 개발 모임 시즌4의 2번째 모임을 가졌습니다.

    WP_20140515_21_04_38_Pro

    먼저 새로 오신 분들의 소개를 하고(고재관MVP, 송종근 님) 각자 현재 진행하고 있는 프로젝트에 대한 공유 시간을 가졌습니다.

    첫 번째로 제가 앱 개발 모임 안내서 초안 작업한 것을 공유하고 새로 참가하신 분들이 도움이 될만한 내용을 잠깐 소개해 드렸어요. 그리고, 이번 시즌에 계획으로 소모임에서 진행 중인 Telegram 오픈소스 프로젝트와 Xamarin, Codova+WinJS 크로스 플랫폼 앱을 테스트해볼 계획을 공유했고요.

    이어서 이진백님이 그 동안 만드셨던 레알가사 앱 소개와 이번 업데이트를 소개해 주셨어요. 새로 업데이트를 하면서 UI를 많이 변경했는데, 사용자 리뷰가 안 좋아서 피드백을 반영해서 다시 업데이트한다고 하시더군요. 레알가사 앱을 사용하면서 자세한 후기를 올려주시는 분들이 있는 걸 보니 상당한 팬들이 있는 앱이라는 생각이 들었습니다.

    이어서 DesignMe라는 유료 앱으로 짭짤한 수입을 내고 있는 이종인님이 완전히 새로 만들고 있는 Windows 버전 DesignMe 앱에 대한 계획을 들었어요. 장장 6개월의 프로젝트로 굉장히 치밀한 준비를 하고 계시더라고요. 뿐만 아니라 현재 Design Me에서 지원하는 엄청나게 많은 지역화 언어들을 직접 만든 툴로 어떻게 지원하는지에 대해서 공유해 주셨습니다.

    다음은 현재 직접 만든 3D 엔진으로 크로스플랫폼 MMORPG 게임 ProjectD을 준비 중인 유영천님이 완성된 데스크탑 버전의 게임(일본에서 무료로 먼저 서비스하신다고)과 마무리 작업 중인 스토어 앱 버전을 보여주셨고, 개인적으로 필요해서 만들고 계신 OneDrive 뮤직 플레이어 앱을 잠깐 보여주시면서 C++에서 스토어 앱 만드는데 SDK 지원이 잘 안 되서 어렵다고 한참 투덜거리셨습니다… 게임 서버와 웹사이트를 애져를 이용해서 서비스하고 있는데 아주 기능이 강력한데다 비용의 절반 정도는 BizSpark를 통해서 절약할 수 있어서 매우 만족스럽다고 언급하기도 하셨네요.

    지난 시즌 최고의 앱으로 선정된 LiveBoard를 개발하신 김영재님도 참석하셨는데, 요즘에 회사에서 서버 쪽 개발하느라 바쁘지만… 예전에 생각했던 3D Printer 앱을 해볼까 아니면 완전 새로운 앱을 해볼까 고민 중이라고 하셨네요.

    WP_20140515_21_05_04_Pro

    바로 이번 주에 새로 ScreenShot AutoCut 앱을 등록하신 박문찬님은 앱 개발 후일담(?)을 들려주셨어요. 디아블로3 스크린샷에서 아이템 부분만을 잘라서 쉽게 공유할 수 있도록 도와주는 앱인데요. 아직 앱 등록한지 며칠 되지 않아서 다운로드 통계는 나오지 않지만, 홍보가 많이 되어서 다운로드가 많이 될 것 같다고. 놀라운 사실은 이미지 처리를 위해서 사용하는 라이브러리의 라이센스비로 사비 50만원을 투자하셨다고 하네요. 추후에 디아블로3 외에 다른 게임의 스크린샷도 자동으로 처리해주는 기능을 계속해서 투자하실 계획이라고 해요. 부디 잘 됐으면 좋겠네요. 본전은 뽑으셔야 할텐데…

    오랜 만에 참석하신 한윤진님은 열심히 만들고 계신 사진 찍는 가계부 앱의 컨셉을 소개해 주셨어요. 가계부를 쓰는데 사진을 찍어서 가격과 함께 입력할 수 있으면 좋겠다 싶어서 만들게 되었다고요. 현재 앱 개발 모임의 오픈소스 저장소에 올려서 작업 중이세요. 그리고, 회사의 디자이너 한분 의기투합하여 진행하기로 하셨다고요.

    최한홍 에반젤리스트는 이번 모임에서 처음 Windows 앱 개발을 접하시는 분들을 위해 실습 자료 1회분(앱 개발 모임 멤버 대상 공유) 작성한 것을 공유하였습니다. 앞으로 2주마다 새로운 실습하기 문서를 공유하여 참가하시는 분들이 학습할 수 있도록 제공할 예정이에요. 이 강좌의 영어 동영상 강좌는 온라인에서 보실 수 있어요.

    WP_20140515_21_04_47_Pro

    한분 한분 공유를 하면서 시간이 너무 많이 지나서 모든 분들이 다 발표하지는 못 했네요. 이 후에 소모임 별로(Telegram 소모임, JumpStart 소모임) 나뉘어서 30분 정도 얘기를 나누었어요. 저는 Telegram 소모임에서 진행을 맡았는데, 우선 GitHub의 사용법에 대해서 익숙하지 않은 분들에게 GitHub for Windows를 잠깐 공유 드리고, Telegram 오픈소스 프로젝트를 구조를 잠깐 소개하고 어떤 식으로 진행할 것인가 얘기를 나누었습니다.

    Telegram의 경우 기존에 Windows Phone 8.0 기반의 오픈소스 프로젝트를 포크해서 할 것인지, 아니면 처음부터 만들 것인지를 놓고 토론을 했는데, 결국 Windows RT 버전의 Windows Phone 8.1 프로젝트로 처음부터 새로 만들자 라고 결론이 났네요. 결과물을 빨리 보는 것보다 처음부터 만들면서 배울 수 있는 방향으로 하자는 데에 뜻이 모아졌어요.

    참고로 이 토론 중에 Telegram을 Windows RT 앱으로 다시 만들자는 결정을 하면서, Windows Phone 8.1에서 2가지 앱 개발 모델을 할 수 있다는 점에 대해서 좀 더 얘기를 나누었습니다.

    Visual Studio에서 제공하는 프로젝트에 Windows Phone 8.1 앱Windows Phone Silverlight 8.1 앱 등 2가지 앱 템플릿 프로젝트가 있다는 점과 함께 VoIP 앱은 Silverlight 앱에서만 사용할 수 있다는 점을 토론을 통해서 확인하게 되었습니다.

    _999

    실제로 두 프로젝트 사이에 여러 가지 차이가 있는데요. Windows Phone 8.1이 새로 나온 지 얼마 되지 않은데다 바뀐 점이 많아서 기존에 개발하시던 분들도 잘 모르던 중요한 부분이었는데 좋은 기회가 된 것 같네요. (관련 자료 API 차이 비교)

    기존 앱을 포팅하는지, 새로 앱을 개발하는지에 따라 아래 의사결정 차트를 참고하셔서 앱 개발 계획을 세우시면 되요.

    _998

     _997  

    다음은, Windows Phone Silverlight 8.0을 8.1로 마이그레이션하면 사용할 수 있는 기능이에요.
    _996

    이런 저런 토론을 나누고 결국 모임은 한 10시쯤에 끝났는데 시간 괜찮으신 분들과 간단히 맥주 한잔 하면서 아두이노, 3D Printer, MEF, Pebble 등 개발자끼리 할 수 있는 수다를 나누다가 헤어졌습니다.

    아직 새로 오신 분들이 어떤 프로젝트를 할지, 시즌4는 어떤 일정으로 할지 등등의 얘기는 나누지 못 했지만, 다음 모임을 계속 하면서 구체화 시켜나갈 수 있기를 기대해 봅니다.

Page 2 of 122 (606 items) 12345»