Korea Evangelist

Developer & Platform Evangelism, Microsoft Korea

June, 2011

  • Korea Evangelist

    N-Screen 시대에 개발자들의 알아야 하는 것은?

    • 0 Comments

     다들 기억하실지 모르겠지만 한 때 마이크로소프트는 3스크린 전���을 가지고 있었다. 데스크탑, 모바일, 웹과 같은 다양한 스크린에 적절히 대응하기 위해서 다양한 시나리오와 제품을 준비했었다. 말 그대로 3스크린 전략에서는 많은 화면들을 3가지로 분류하고 각각의 특징에 집중하는 방식으로 접근했다. 최근의 애플사의 행보를 보면 이전의 3스크린 전략의 가장 최신 버전을 보는 것 같다. MP3로 시작한 라인업은 아이폰과 아이패드 그리고 애플TV까지 용도와 목적을 조금씩 달리하는 스크린으로 확장해 나가고 있는 애플의 행보를 보면 스크린에 대한 이해가 지금 시장에 얼마나 중요한 것인가를 알 수 있게 해준다. 그래서 이번 호에서는 다양한 스크린 즉 N스크린에 관한 이야기를 하려고 한다.

     

    3스크린을 넘어서 N스크린 시대로

     통계에 따르면 현재 미국 중산층의 경우 1인당 2.4개의 스크린 매일 접하고 다루면서 살고 있다고 한다. 2.4라고 하면 생각보다 많다고 느낄 수 있겠지만 TV와 핸드폰만 하더라도 이미 2개가 되고 여기에 PC까지 포함하면 금방 3개가 되기 때문에 실상 그렇게 많은 숫자는 아니다.

     하지만 평균 2.4개이기 때문에 디지털 디바이스에 대한 접근이 불편한 노인과 유아와 같은 계층을 제외하고 실제 경제 주체만 본다면 일인당 사용하는 스크린의 개수는 훨씬 더 많을 것으로 보인다.

     이렇게 스크린의 개수가 폭발적으로 늘어나고 있는 것은 각 디바이스의 획득 단가가 감소한 탓도 있게지만 비용적인 문제를 뛰어넘는 이유는 네트워크에 대한 접근이 용의해 졌기 때문이다.

     네트워크에 대한 접근은 다시 한번 언급하겠지만 일반적인 데스크탑 PC를 제외하고는 충분한 성능과 용량을 가지지 못한 모바일 디바이스들의 능력을 네트워크를 통해서 확장할 수 있는 것이 중요한 요인으로 보인다. 특히 좁은 지역에 많은 사람들이 모여살고 있는 우리나라 (특히 수도권)의 경우 네트워크에 대한 접근성과 비용 경쟁력은 세게 최고 수준이다. 이미 진부한 단어인 초고속 인터넷 회선망과 무제한으로 풀리고 있는 핸드폰 기반의 무선 인터넷망 그리고 이미 도배되고 있는 Wifi망과 한 걸음 더 나아간 Wibro망까지 이미 우리는 2 3중의 네트워크 망속에 살고 있으며 각각의 장단점을 따져가면서 선택할 수 있다. 그런면에서 볼 때 우리나라는 많은 디바이스와 스크린을 테스트하고 실용 시나리오를 개발할 수 있는 최적의 토양이다.

     N스크린을 이야기 하기전에 먼저 고민해야 하는 것은 왜 우리는 하나이상의 디바이스를 사람들이 사용한다고 가정하는 것일까?’ 하는 것이다. 여기에서 우리가 기본적으로 가정하고 있는 사실은 각각의 디바이스와 스크린이 차별화가 가능하다는 전제가 있기 때문이다. 대리 운전 기사님들을 제외하고는 핸드폰을 두 세개씩 들고 다니는 사람은 아마 거의 없을 것이다. 또 특별한 경우를 제외하고는 동시에 TV를 두 대 틀어놓고 보지 않을 것이다. 각각의 스크린에서 중요한 것은 차별화라는 부분이다.

     애플 아이패드가 처음 출시 될때 많은 사람들은 설왕설래 말이 많았다. 그 중에 가장 부정적인 단어는 그냥 좀 큰 아이폰였다. 실제로 하드웨어, 소프트웨어 구성으로 봤을 때 가장 정확한 지적이기도 하다. 같은 운영체계에 사이즈를 제외하고는 아이폰과 거의 동일한 하드웨어를 사용하고 있다. 심지어는 아이폰의 앱들을 크게해서 사용하는 것도 가능하다.

     하지만 시장의 반응은 폭발적이었다. 소위 말하는 조금 더 큰 아이폰에 사람들이 열광했고 아이패드를 구입한 대부분의 사람들은 아이폰을 사용하고 있는 사용자들이었다.

    image
    <그림1>아이패드는 사이즈가 큰 아이폰으로 보는 시각이 많았다.

     하지만 아이러니 하게도 아이패드가 성공적으로 시장에 안착한 이유도 역시 좀 더 큰 아이폰이었기 때문이기도 하다. 아이폰의 경험을 가지고 사용할 수 있는 새로운 스크린에 대해서 사람들은 편안함과 새로움을 동시에 느낄 수 있었던 것이다.

     아이패드는 현재 두 번째 제품이 출시되었으며 시장 조사 업체인 아이서플라이에 따르면 올해 판매 예측치를 3970만대로 보고 있을 만큼 가파르게 성장하고 있는 것으로 보인다.

    image
    <그림2>마이크로소프트의 N
    스크린 제품들

     애플이 새로 부각된 시장의 강자라면 이미 클라이언트의 90%이상을 점령하고 있는 마이크로소프트도 역시 다양한 시도를 하고 있다. 데스크탑과 노트북의 경우는 이미 원도우7이 비스타의 실패를 만회하고 있으며 새로운 기능 수렴과 악성코드의 공격등에 위험이 노출된 원도우XP를 빠르게 대체해 나가고 있다.  타블릿PC 시장을 접근 하는 방식 역시 원도우7이 설치된 슬래이트 PC로 공략해 나가고 있다. 슬래이트 PC는 터치 기반의 인터페이스를 사용하기 편리한 형태로 구성되어 있으며 원도우7은 출시할 때 부터 터치 인터페이스를 대응해 놓았기 때문에 크게 문제 없이 적용될 수 있었다. 마이크로소프트의 서피스(Surface ) 2는 새로운 테이블PC라는 영역을 개척하고 있는 제품이다. 테이블 PC라는 영역은 스크린의 위 아래가 없고 동시에 한명 이상의 사람이 조작할 수 있어야 하기 때문에 이전의 스크린들과는 고려해야 하는 부분이 확연하게 다른 결과를 가져 올 수 있게 되었다.

     최근에 가장 큰 화제를 모우고 있는 엑스박스 키넥트의 경우는 4개월만에 천만대 이상이 판매되는 기염을 토하고 있다. 키넥트의 경우는 새로운 스크린을 개척한 제품은 아니다. 스크린은 기존의 TV를 그대로 사용하지만 새로운 조작 방법을 제시했다는 점에서 새로운 혁신을 이룩했다. 키넥트는 사용자들에게 새로운 장치나 컨트롤러에 대한 사용법을 강요하지 않고 사용자 자신이 컨트롤러가 되었다는 점에서 혁명적인 접근이었으며 TV 사이즈 이상의 다양한 스크린에서 활용할 수 있는 최적의 인터페이스를 제시했다는 점이 주효하고 작용한 것 같다.

     하지만 마이크소프트의 그림은 다음 버전의 윈도우에서 완성될 것으로 보인다. 다음 버전의 윈도우에 대한 구체적인 정보는 아직 하나도 알려진 바는 없지만 다음과 같은 특징을 가질 것으로 보인다.

    -       다양한 디바이스에서 사용 가능한 공통적인 앱 모델

    -       앱을 제공 받을 수 있고 공급할 수 있는 마켓 플래이스

    -       ARM 계열등 전통적인 x86 계열의 CPU 이외에 다양한 모바일 칩들에 대한 지원

    -       새로운 모델의 운영체계를 지원하고 위한 개발 툴

     새로운 버전의 윈도우의 모습은 올 해가 가기전에 구체적인 모습을 볼 수 있을 것 같다.

     

    두 가지 N스크린 시나리오

     하나 이상의 스크린을 사용하는 방식에 있어서 필자의 경우 사용하는 방식에 있어서 두 가지 방식으로 구별해서 이야기 한다. 한 꺼번에 여러 개의 스크린을 동시에 사용하는 방식을 병렬적인 N스크린 시나리오, 한번에 하나의 스크린을 사용하면서 여러개의 스크린을 넘나드는 방식을 직렬적인 N스크린 시나리오로 말한다.

     

     병렬적인 N스크린 시나리오

    image
    <그림3>TV를 볼 때 모바일 인터넷 사용여부

    image
    <그림4>TV
    시청중에 모바일 디바이스로 하는 활동

     최근 국내 S전자 TV광고를 보면 현빈이 TV를 보면서 인터넷으로 채팅도 하고 검색도 가능하는 광고를 하는 것을 볼 수 있다. 어떤 면에서는 와 닿지 않는 이야기 일 수도 있지만 야후 통계를 보면 TV를 보면서 무선 인터넷에 접속하는 비율에 대한 조사에 보면 무려 86%의 사용자들이 TV를 보면서 곁눈질로 이미 다른 스크린을 활용하고 있는 것을 볼 수 있다.

     이런 형태로 동시에 여러 화면을 활용하는 시나리오를 N스크린의 병렬적 활용이라고 말 할 수 있는데 이와 관련한 시도들은 이미 다양한 형태로 시도되고 있다.

    image        image
    <그림5>스크린으로 접근한 TV리모콘              <그림6>아이패드를 이용한 TV 가이드

    <그림5>에서 보이는 제품은 컨셉 제품으로 실제 양산에는 들어가지 못한 제품으로 TV 리모콘을 별도의 스크린으로 제작한 방식이다. 요즘처럼 대채널이 보편화 되어있을 때 유용할 것으로 보이지만 실제로는 우리가 집에서 TV를 사용할 때 사용하는 패턴을 고려해 본다면 오히려 불편할 수도 있을 것 같은 생각도 든다. 또 채널에 대한 정보가 표준화 된 방식으로 제공되기 까지는 어느 정도 시행착오는 불가피 할 것으로 보인다.

    <그림6>은 같은 TV리모콘을 대체하는 접근이긴 하지만 전용 디바이스를 별도로 만들지 않고 아이패드를 사용하게 되어 있다. 아이패드와 같은 대중화 된 디바이스를 사용 할 수 있다는 점은 사용자들에게 새로운 매리트를 줄 수 있다. TV시청과 더불어 간단한 웹서핑이나 게임등등 다양한 활동을 함께 즐길 수 있다는 점에서 매우 좋은 접근이 될 수 있다.

     직렬적인 N스크린 시나리오는 한번에 하나씩 디바이스들을 돌아가면서 사용하는 것으로 미국에서 비디오 스트리밍을 제공하는 네플릭스사가 좋은 예가 된다. 넥플릭스는 원래 온라인에서 비디오 대여를 주업으로 하다가 DVD까지 사업을 잘 이끌어왔다. 우리나라는 수 많은 비디오 대여점이 인터넷의 역풍을 맞고 이젠 대부분 문을 닫았지만 넥플릭스는 우편으로 DVD 대여 및 회수를 하는 비지니스 모델을 성공적으로 인터넷으로 옮겨서 더 큰 스트리밍 시장의 기회를 잡게 되었다. 최근에는 미국내 가장 중요한 콘텐츠 소비 채널 중에 하나로 자리집게 되면서 강력한 시장 영향력을 가지는 업체로 성장하게 되었다.

     넥플릭스는 N스크린에 대응하기 위해서 다양한 클라이언트를 지원하는 쪽으로 방향을 선회 하면서 XBOX Wii, PS3와 같은 게임 콘솔과 스마트 TV 그리고 안드로이드, 아이폰 그리고 원도우폰7등 모바일 환경과 아이패드에 이르기까지 다양한 클라이언트에 대한 지원이 이미 마무리 되어 있다.

     집 밖에서 모바일��� 영화를 보고 있다가도 집에 와서 TV를 통해서 계속 이어서 보는 등의 직렬적인 시나리오를 충실히 구현하고 있다.

    image
    <그림7>넥플릭스가 지원하는 디바이스들

     최근 국내에서도 비슷한 서비스가 제공되고 있는데 아직 네플릭스 보다는 부족한 면이 많이 보인다.

     

    N스크린 시대의 사용자 인터페이스

     N스크린 시대가 되면서 사용자들이 다를 수 있는 기기가 많아지고 사이즈가 다양해 지면서 이를 조작할 수 있는 방법도 다양한 방법이 제공되고 있다. 기존에는 키보드나 마우스를 사용하는 시나리오가 많았지만 이제는 직접적으로 화면을 조작하는 터치 방식이 주류를 이루고 있다. 개발자의 입장에서는 사용할 수 있는 방법이 늘었다는 점에서는 환영할 만한 변화겠지만 다르게 보면 하드웨어의 특징까지 잘 이해 해야하는 점에서는 또 다른 어려움일 것이다.

    imageimage
    <그림8>감압식 터치장치                       <그림9>
    정전식 터치 장치

    터치는 크게 감압식과 정전식 그리고 주로 대형 스크린에 사용되는 적외선 방식이 있으며 카메라를 이용한 모션 인식 방식등이 있을 수 있다. 감압식은 구조가 간단하고 구현 비용이 간단해서 이전에 많이 사용되었지만 감도가 약해서 사용 감이 떨어지는 이유로 최근에는 많이 사용되지는 않는다. 최근에 가장 많이 사용되는 방식은 뭐니 뭐니해도 정전식인데 정전식의 경우는 손가락에 흐르는 미세 전류를 이용하는 방식으로 감도가 뛰어나 최근 나오는 대부분의 터치 장비에 활용되고 있다. 하지만 스크린의 사이즈가 커지면 전기적 잡음이 늘어나서 대형 스크린에는 사용하지 못한다. 그래서 감도는 떨어지지만 대형 스크린에 적합한 기술로 주로 적외선 방식을 사용하는데 적외선 방식의 경우는 주위의 온도나 열이 많이 나는 조명등의 영향을 받는 경향이 있으므로 주의해서 사용해야 한다.

    imageimage
    <그림10>적외선 방식의 터치 센서       <그림11>
    카메라 방식의 터치를 사용하는 서피스

     카메라 방식의 경우는 인식도 비교적 용의하고 멀티터치나 제스추어등을 구현하는데에도 적합한 기술이지만 카메라가 영상을 인식하고 분석하는데 시간이 걸리기 때문에 사용자의 조작보다 다소 늦게 반응한다. 카메라 방식의 터치 인식을 사용하는 마이크로소프트사의 서피스 같은 제품의 경우는 이미지 프로세싱을 전담하는 하드웨어를 별도로 배치해서 이미지 처리에 걸리는 시간을 최소화 하는 방법을 선택했다.

     앞에서 언급한 마이크로소프트사의 키넥트는 기존의 인터페이스 방식에 비해서 혁신적이라가 할만한 요소들을 두루갖추고 있다. 사람 자체를 인식하고 사람의 모션에 따라 다양한 조작을 할 수 있다. 키넥트는 적외선, RGB, 깊이등을 파악할 수 있는 세 개의 센서를 통해서 사람을 300여개의 관절로 완벽하게 인식해 낸다. 그 결과 사람의 동작이나 제스추어를 비교적 정확하게 인식해내는데 기대이상의 인식률을 자랑한다.

     키넥트의 경우 원래 엑스박스의 게임 컨트롤 용도로 출시되었지만 최근에는 PC에 붙여서 사용하는 다양한 사례가 나오기 시작했으며 마이크로소프트에서도 PC용 키넥트SDK를 조만간 발표 할 예정에 있다.(이 글을 여러분들이 보실 때에는 이미 나왔을지도 모르겠다 꼭 한번 검색해 보기를 바란다.

    image
    <그림12>Microsoft Kinect

    정리

    N스크린 시대에 개발자들이 지켜봐야 할 두 가지 시나리오와 각종 인터페이스에 관한 이야기를 했지만 그럼에 불구하고 뭔가 아쉬움이 남는 것은 N스크린 시대에 가장 중요한 이야기 하나를 빼먹었기 때문이다. N스크린 시대라는 단어에서 우리는 스크린에 현혹되기 쉽다. 하지만 디바이스가 많아지고 그게 병렬이든 직렬이든 어떤 형태로 사용되던 간에 각각의 디바이스간의 데이터 동기화 혹은 단일 인증모델 그리고 작업 턴의 전환등을 제대로 해결하기 위해서는 뭔가 늘 대기상태로 네트워크에서 존재하는 안정된 서비스가 필요하다는 점이다.

     지금은 이를 해결할 수 있는 가장 가까운 기술이 클라우드 기술이라고 보는 사람들이 많고 필자역시 그렇게 생각하는 바이다. 이런 면에서 클라우드와 N스크리는 전혀 다른 주제처럼 보이지만 사실은 떼어 놓고 생각하기 어려운 주제이기도 하다. ---(*)---

  • Korea Evangelist

    Kinect SDK for Windows로 배워보는 NUI 개발

    • 0 Comments

     

    32224_1468530191732_1187893437_1364978_7316647_n[1]

    김영욱 차장 iwinkey@hotmail.com

    국내 유수의 대기업 프로젝트에 참여했던 풍부한 경험과 마이크로소프트 MVP로서 다양한 활동을 바탕으로 .NET과 관련된 개발 기술에 전념하고 있다. 현재 한국마이크로소프트에서 Evangelist로 근무하고 있다.

    또 이런 이야기를 한다면 필자를 늙은이 취급할 개발자들도 많겠지만 마우스도 없던 시절의 컴퓨팅 환경에 비하면 정말 매일 격세지감을 느낄 수 밖에 없다. 하지만 격세지감 따위를 즐기고 있을 만한 여유는 어디에도 없다. 세상은 정말 빠르게 변화하고 있는 듯 하다.

    PC가 메인프레임으로 부터 컴퓨팅의 자유를 이끌어 냈을 때 세상은 퍼스널 컴퓨팅 세상으로 바뀌었고 모바일 혁신은 기존의 PC에서 모빌리티 자유를 이끌어 낼 수 있었다.

    인터페이스에서도 다양한 혁신이 이끌어져 오고 있는데 키보드 마우스를 넘어서서 최근은 거의 모든 디바이스에서 볼 수 있는 터치 인터페이스의 확산 속도는 이전의 어떤 인터페이스 보다 확산 속도가 빠르다. 터치 인터페이스는 폰을 넘어서 타블릿PC 그리고 최근 영상이 공개된 원도우즈의 차기 버전(가칭 원도우즈8)까지 광범위 하게 사용되고 있다. 하지만 최근에 마이크로소프트가 발표한 키넥트는 이전에 그 어떤 인터페이스에서도 제시하지 못했던 새로운 차원의 인터페이스를 제시하면서 또 한번의 큰 변화를 예고하고 있다.

    게임기에서 Windows로 넘어가는 Kinect

    image
    <그림1>Microsoft Kinect

    키넥트는 원래 게임 콘솔인 XBOX 360에서 게임을 위해서 출시되었다. 기존의 닌텐도나 소니에서 선보였던 손에 센서 뭉치를 들고 하는 방식이 아니라 사람을 직접 인식하는 혁신적인 방식이다. 물론 과거에도 사람을 직접 인식하는 기술들은 여럿 있었지만 별다른 부가장치의 부착없이 사람을 관절단위로 인식하는 시도는 처음 상용화 된 방식이다. 키넥트는 적외선, RGB, 깊이(Depth) 등의 세 가지 센서를 통해서 사람을 정확하게 관절로 인식하고 마이크로폰을 이용해서 음성인식이 가능하다. 키넥트는 부가적으로는 사람을 잘 인식하기 위해서 받침대와 목사이의 관절에 모터가 설치되어 있어서 사람을 찾아서 시선을 조정하기도 하는 등 제법 똑똑한 모습도 보여준다. 현 시점에 게임 시장에서 키넥트를 보면 상당히 성공적이다. 최단기간 1000만대를 팔아서 ‘가장 짧은 시간에 가장 많이 팔린 전자기기’라는 이름으로 기네스북에 오르기도 했다. 하지만 세상의 개발자들과 오덕후 들은 키넥트를 게임 용도로만 국한하지 않았다. 키넥트를 원도우즈를 시작해서 매킨토시, 리눅스, 안드로이드 등 다양한 플랫폼에 연결 시키는 오픈 소스 프로젝트가 진행되는가 하면 로봇이나 모형 헬기를 조정하는 용도부터 장애인들을 위한 다양한 프로젝트까지 여러가지 아이디어와 결합되기 시작했다.

    image
    <그림2>휠체어를 인식해서 따라다니는 쇼핑 카터 프로젝트 wi-Go

    사람들의 아이디어가 무궁무진하고 다양한 형태로 표출되면서 좀 더 적극적으로 체계적인 지원에 대한 요구가 많아지면서 마이크로소프트는 키넥트를 XBOX 360의 게임을 위한 용도 이외에 PC와 연결되어서 일어날 수 있는 다양한 시나리오를 직접 지원하기 위해서 Kinect SDK for Windows를 발표하게 되었다.

    Kinect SDK for Windows

    Kinect SDK for Windows는 마이크로소프트 연구소(Microsoft Research)에서 준비되고 발표된 것으로 32비트와 64비트 버전 두 가지 모두 지원되지만 제공되는 샘플이 32비트 버전에서만 지원되는 것들이 있어서 아직은 32비트 버전을 사용할 것을 권장한다. Kinect SDK for Windows 안에서 키넥트를 위한 소프트웨어를 개발하기 위해서 3가지 구성 요소를 제공한다.

    - 키넥트를 윈도우에 인식시키기 위한 디바이스 드라이버
    - 키넥트를 제어하기 위한 API 프레임웍
    - 샘플과 문서

    키넥트를 이용한 소프트웨어 개발을 위해서는 당연하겠지만 키넥트가 필요하다. 하지만 키넥트를 받아든 순간 허걱하고 놀라게 되는데 당연히 USB인줄로만 알았던 컨넥터가 USB도 아닌 것이 처음 보는 형태로 되어 있기 때문이다. 키넥트를 사용하기 위해서는 표준적인 USB 포트가 제공해 줄 수 있는 전력보다 더 많은 전력을 소비해야 하기 특별한 형태의 컨넥터 타입이 필요하게 되었다.

    image
    <그림3>일반적인 USB 컨넥터와 키넥트 컨넥터

    그래서 구형 XBOX 360과 PC에서 키넥트를 사용하기 위해서는 별도로 전력을 공급할 수 있는 어뎁터가 필요하다. 해당 어뎁터는 시중에서 바로 구입할 수는 없고 마이크로소프트 고객센터로 전화해서 신청하면 구입할 수 있다.

    image
    <그림4> 키넥트 전원 어뎁터

    하드웨어에 대한 준비가 끝났으면 이제 개발환경을 설정할 차례이다.
    개발환경은 기본적으로 원도우7과 비주얼 스튜디오가 필요하다.

    - 원도우7 (x86 혹은 x64)
    - Kinect for Xbox 360 센서
    - Microsoft Visual Studio 2010
    - Microsoft .NET Framework 4.0 (Visual Studio 2010과 함께 설치 됨)
    - DirectX Software Development Kit June 2010(C++만 필요)
    - Microsoft Speech Platform SDK
    - Kinect for Windows Runtime Language Pack

    여기에 제일 중요한 것이 Kinect SDK for Windows(이하 키넥트 SDK) 이다. 키넥트 SDK는http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/ 에서 다운로드 할 수 있으며 관련 문서들을 추가로 다운로드 받을 수 있게 되어 있다.

    키넥트 SDK를 설치하고 나면 인체를 뼈대로 인식하는 것을 볼 수 있는 Skeletal Viewer와 음성인식과 간단한 게임을 보여주는 Sample Shape game 두 가지 완성된 샘플을 볼 수 있다.
    image
    <그림5>Skeletal Viewer

    image
    <그림6>Sample Shape game

    특히 Sample Shape game의 경우 인체를 인식하기도 하지만 음성 인식도 함께 가능해서 ‘Super Big’, ‘Start’,’Stop’과 같은 명령들을 직접 음성으로 내려 볼 수 있다.

    키넥트를 이용한 애플리케이션을 개발하기 위해서는 위해서는 VC++ 혹은 C#, VB와 같은 개발 언어를 알아야 한다. 키넥트 SDK에서 제공되고 있는 라이브러리에서 인체 구조를 인식하고 제스츄어를 분석하는 등의 기능을 하는 부분이 NUI Library 이다.

    image
    <그림7>NUI Library
    NUI Library는 키넥트에서 전송되어서 오는 이미지와 Depth 그리고 오디오 정보를 취합해서 애플리케이션에서 활용할 수 있는 정보로 전환하는 기능을 가지고 있는 핵심 요소이다. 좀 더 세부적으로 들어가면 <그림8>과 같은 아키텍처르 정리할 수 있다.

    image
    <그림8>키넥트 아키텍처
    키넥트 하드웨어는 USB 기반의 기술로 PC와 연결되며 커널 모드 드라이버로 작성된 키넥트 드라이버가 하단에 자리 잡고 있다. 그 위에 카메라와 오디오 스텍이 있고 그 위에 최상위 추상화 레벨에서 NUI API와 오디오/비디오 컴퍼넌트가 잡리 잡고 있는 형태이다.

    사실 개발자의 입장에서는 아키텍처 자체는 그리 중요하지 않을 수도 있다. 하지면 전체적인 그림을 이해하고 넘어가는게 아무래도 좀 더 개발에 탄력을 줄 수 있을 것 같다.

    NUI Skeleton Tracking

    NUI Library에서 제공되는 API중에서 NUI Skeleton API가 있는데 이는 키넥트 앞에 있는 사람을 최대 2명까지 뼈대로 인식해 낸다. 단순히 인식한다고 하면 사람의 형체만 인식하는 것처럼 보일 수 있지만 다시 이야기 하면 사람의 각 부분을 정확하게 인식해 낸다.

    image
    <그림9> NUI Skelton API의 인식 부분
    NUI Skeleton API는 사람의 주요 부위를 20개로 인식하고 각 부분별로 명칭이 정해져 있다. 여기서 나오는 정보를 기반으로 애플리케이션에서 다양한 반응을 만들어네게 되는데 뼈대에 관한 정보를 찾아내기 위해서는 C++에서는 NuiSkeletonGetNextFrame을 사용할 수 있고 C#등에서는 SkeletonEngine.GetNextFrame을 사용해서 각 부분의 상태를 확인할 수 있다.

    image
    <그림10>Active tracking

    Kinect SDK for Windows 개발

    키넥트 SDK는 VC++, C#, VB.NET 등등 네이티브 언어와 매니지드 언어를 모두 지원하는데 여기서는 C#언어를 기준으로 설명한다. 키넥트 SDK를 사용하기 위해서는 Microsoft.Research.Kinect.dll을 참조해야 한다.

    image
    <그림11> Microsoft.Research.Kinect.dll 참조

    키넥트 관련 라이브러리에서 Microsoft.Research.Kinect.Nui에는 사람을 직접 인식하는 데 관련된 클래스들이 포함되어 있으며 Microsoft.Research.Kinect.Audio에는 음성 인식과 관련된 클래들이 포함되어 있다.

    using Microsoft.Research.Kinect.Nui;
    using Microsoft.Research.Kinect.Audio;

    kinectRuntime = new Runtime(); kinectRuntime.Initialize(RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTracking | RuntimeOptions.UseColor);
    <소스1>네임스페이스 설정

    <소스1>에서 보면 개발에 필요한 두 개의 네임스페이스를 포함하고 키넥트를 사용하기 위해서 키넥트 런타임을 생성하고 초기화 시키는 과정을 볼 수 있다.
    키넥트 SDK를 설치하고 나면 함께 설치되는 도움말을 보게 되면 생각보다 많은 객체와 내용들에 우선 질리실지도 모르겠다.

    좀 더 싶게 접근하려면 Coding4Fun Kinect Toolkit (http://channel9.msdn.com/coding4fun/projects/Coding4Fun-Kinect-Toolkit) 을 사용할 수 있다. Kinect Took에서는 WPF Extension, WPF Controls, WinForm Extensions, skeletal Extensions등이 포함되어 있어서 개발이 한결 수월하게 해준다.

    image
    <그림12>Coding4Fun에 올라와 있는 Kinect 관련 프로젝트들

    http://channel9.msdn.com/coding4fun 에서 오픈소스로 진행되는 프로젝트들을 보는 것도 흥미로울 것이다. Kinect Paint, Kinect Mouse등의 프로젝트는 흥미로운 요소들을 제공해 줄 것이다.

    - 정리

    키넥트를 바라보는 사람에 따라서 서로 다른 기대치를 가지고 볼 수 있겠지만 필자가 개발자의 눈으로 바라보는 키넥트는 ‘정말 재미있는 개발자들의 장난감’이다. 즐겁고 재미있게 만들고 고민하다 보면 키넥트와 관련된 정말 재미있는 애플리케이션들을 많이 만들 수 있을 것 같다.

  • Korea Evangelist

    망고로 다시 태어나는 Windows Phone 7 이야기

    • 0 Comments
    32224_1468530191732_1187893437_1364978_7316647_n[1]

    김영욱 차장 iwinkey@hotmail.com

    국내 유수의 대기업 프로젝트에 참여했던 풍부한 경험과 마이크로소프트 MVP로서 다양한 활동을 바탕으로 .NET과 관련된 개발 기술에 전념하고 있다. 현재 한국마이크로소프트에서 Evangelist로 근무하고 있다.

     지난 4월에 라스베거스에서 열렸던 MIX11 행사에서 원도우폰7의 새로운 업데이트에 대한 발표가 있었다. 이 업데이트에서는 멀티테스킹을 비롯해서 다수의 새로운 기능들이 소개되었는데 이전에 보지 못했던 완전 새로운 기능들도 있고 또 이전에 아이폰이나 안드로이드에서 볼 수 있었던 기능들이 원도폰에 포함된 경우도 있었다. 원도우CE 시절부터 마이크로소프트사가 모바일 운영체계에 꾸준히 투자를 하고 관련된 제품들을 출시해 왔던 것도 사실이지만 최근 일련의 시장의 변화를 수용하기 위해서 처음부터 코드를 다시 쓰다시피 한 원도우폰7은 개발자들의 입장에서 볼 때에는 첫 번째 버전이라서 그런지 기능적으로 부족한 부분들이 있었다. 하지만 이번에 소개된 업데이트를 통해서 독특한 자신의 컨셉을 유지한 체로 다른 경쟁 제품과 경쟁할 수 있는 모바일 운영체계로 거듭나게 될 수 있게 되었다. 원래 이번 호에서는 원도우폰7의 사용자 인터페이스를 좀 더 자세히 설명하려고 했는데 이번 호에서는 MIX11에서 소개된 새로운 변화를 우선 설명해 드릴까 한다.

    코드네임 망고(Mango)

     애플의 영향인지는 모르겠지만 요즘 모바일 세상에서는 먹거리들이 한창이다. 거기에 마이크로소프트도 가세하려는 것인지는 모르겠지만 지난 MIX11 행사에서 발표된 업데이트의 이름도 달콤한 과일 이름인 망고였다. 망고 업데이트는 내부적으로는 업데이트라고 하기에는 너무 큰 변화들이 포함되어 있어 있어서 업데이트가 아니라 새로운 버전이 아닐까 하는 추측이 많았다.
     

    image

    <그림1>망고 업데이트를 통해서 새로 지원되는 언어들

     지금 북미 지역과 서유럽 그리고 호주와 싱가폴 등 원도우폰7이 출시된 국가들의 공통점은 알파벳 문화권이라는 점이다. 다르게 이야기 하면 한국, 중국, 일본등 동아시아 국가들의 언어는 아직 지원되지 않고 있다. 물론 한글을 볼 수는 있지만 입력할 수 있는 입력기가 제공되지 않고 있으며 주소록 등에서도 영어로만 정렬이 된다. 그래서 남들 보다 일찍 원도우폰7을 사용하고 있는 국내 사용자들은 원도우폰7을 사용하기 위해서 여러 가지 불편을 감수하고 있는데 단문 서비스나 웹 검색 그리고 트위터나 페이스북 등의 서비스를 사용할 때 아예 영어를 사용하는 등의 불편함을 감수하면서 사용해 왔다. 그래서 이를 해결해 주는 앱들이 마켓플레이스에서 등장 했는데 망고 출시와 더불어 이런 앱들은 필요가 없어질 것으로 보인다.
     

    image
    <
    그림2>원도우폰7에서 한글을 지원하는 대표적인 앱 Korean SNS

     망고를 통해서 개발자가 제일 처음 볼 수 있는 변화는 바로 언어를 비롯한 아시아권에 대한 지원이라고 볼 수 있다. 망고에서는 우리나라를 비롯해서 중국, 일본 등 아시아권의 16개 언어가 추가되게 되었다. 언어에 대한 추가는 아시아권에 원도우폰7을 출시하기 위한 필수적인 요구사항으로 올해 하반기에는 한국, 일본, 중국 등 아시아권의 국가에서도 정식으로 출시된 원도우폰7을 볼 수 있게 될 예정이다. 필자가 기대를 가지고 있는 부분은 언어에 대한 지원과 더불어 해당 국가에 지원되기 시작하는 개발자 프로그램이다.
     
    원도우폰7의 경우 개발자들이 사용할 수 있는 개발자 프로그램은 현재 앱 허브 사이트인
    http://create.msdn.com
    에서 가입하고 필요한 툴들을 다운로드 받을 수 있다. 하지만 원도우폰7이 정식으로 출시된 국가에 한해서면 개발자 프로그램을 지원받을 수 있기 때문에 한국 개발자들은 현재 정식으로 지원을 수 없다. 물론 지금도 열정이 가득한 개발자들은 미국 등지에 있는 친척이나 지인들의 개인정보를 도용해서 통해서 지원받는 경우도 있긴 하지만 그래도 정식으로 지원받는 것이 아니었기 때문에 많은 불편함을 감수하고 있는 실정이다.


    image
    <
    그림3>앱 허브 사이트 http://create.msdn.com

     개발자 프로그램을 공식적으로 지원받지 못해도 원도우폰7을 개발해 볼 수 있다. 관련된 개발 툴들을 다운받아 보면 포함되어 있는 애뮬레이터를 통해서 앱을 실행시키거나 디버깅 할 수 있으며 이베이 등에서 언락(Unlock)된 폰을 구입하는 방법도 있다. 하지만 앱을 정식으로 마켓플레이스에 배포해서 사용들이 사용하게 할 수 있는 방법이 없기 때문에 결국은 개발자 지원 프로그램이 정답 일 수 밖에 없다.

     망고 업데이트를 통해서 누릴 수 있는 UX상의 변화도 많은데 굳이 사용자 인터페이스라고 표현하지 않고 UX(user experience)라고 표현한 이유는 사용자의 경험적인 요소가 비약적으로 변화 할 수 있기 때문이다.

    imageimage

    <
    그림4> 앱 검색 방법의 변화 <그림5>멀티 테스킹 사이의 전환

     원도우폰의 경우 아이폰이나 안드로이드와는 달리 시작화면에 앱 아이폰의 목록이 나타나지 않고 라이브 타일만 노출되어 있다가 좌측으로 밀거나 혹은 앱 목록을 보여주는 화살표를 선택하면 그때 앱 목록이 나타난다. 아이폰이나 안드로이드는 앱 목록을 페이지 단위로 넘기면서 볼 수 있게 되어있고 아이폰은 또 이를 폴더 단위로 정리할 수 있게 되어있는 반면 윈도우폰7은 하나의 목록으로 관리하기 때문에 앱 개수가 많아졌을 경우 이를 어떻게 처리할까에 대한 고민이 있었다. 망고에서는 우선 두 가지 방법을 새로 제공하고 있는데 <그림4>에서 보는 바와 같이 앱 목록을 알파벳으로 검색하는 방법이 있고 두 번째로 돋보기 모양의 아이콘을 선택해서 앱 이름을 직접 입력해서 검색하는 방법이 있다.

     망고의 변화된 내용 중에 UX상의 작은 변화가 앱 검색 방법이라고 한다면큰 변화는 멀티테스킹의 지원이라고 할 수 있다. 아이폰도 iOS 3.x을 사용 할 경우에는 멀티테스킹이 지원되지 않았다. 때문에 이 시절 아이폰의 홈 버튼을 누른다는 것은 곧 해당 앱의 종료를 의미했다. iOS는 주어진 시간만큼은 해당 앱에게 현재 작업 내용을 정리할 수 있는 시간을 주고 해당 앱을 바로 종료해 버렸다. 만약 주어진 시간 안에 작업을 정리하지 못하면 해당 데이터는 유실되고 앱은 강제 종료되는 비극을 맞이 하게 되었다. 이런 살벌한 실행 환경이 필요했던 이유는 멀티테스킹이 다양한 기능을 확장 시킬 수 있는 요소가 되기도 하지만 제한된 모바일 환경에서 전체적인 반응속도의 저하나 배터리 소모량 증가와 같은 문제를 함께 야기하기 때문이다.

     앱에 대해서 별다른 제재 조치가 없는 안드로이드의 경우는 멀티테스킹으로 인한 성능 저하를 쉽게 체험할 수 있다. 원도우폰7의 경우 지금은 멀티테스킹이 제공되지 않지만 망고와 함께 제공될 예정이다. 하지만 앞서서 언급한 성능과 전원관리라는 측면을 어떻게 관리할 것인가 하는 고민을 함께 했으며 그 결과 제한되고 관리되는 형태의 멀티테스킹을 제공하는 방법을 선택했다.

    image
    <
    그림6>UX와 관련해서 바뀐 변화 점
    .
    우선 음악재생, 파일 다운로드와 같이 멀티테스킹이 꼭 필요한 작업들을 먼저 선정하고 이를 윈도우폰7 운영체계 상에서 관리하고 제어하는 방식으로 멀티케스킹을 지원할 예정이다. 이런 식의 문제 해결은 모바일 운영체계 중에서는 가장 진보한 형태가 될 것으로 보인다
    .

     윈도우폰7이 다른 모바일 운영체계와 가장 다르게 보이는 점은 바로 메트로 사용자 인터페이스 때문이다. 다른 모바일 운영체계의 경우에는 해당 앱의 기능을 축소해 놓은 듯한 아이콘을 통해서 사��자에게 간단한 정보만 줄 수 있지만 윈도우폰7은 앱의 아이콘과는 별도로 라이브 타일을 만들어서 시작 화면에 배치할 수 있다. 라이브 타일은 넉넉한 크기로 인해서 사용자들에게 충분한 정보를 줄 수 있는데 망고를 통해서 라이브 타일의 내용을 다룰 수 있는 Live Agents가 추가로 제공된다.

     MIX11에서는 호주에 있는 항공사인 퀀타스 항공사의 앱을 선보였는데 비행 스케즐 목록에서 관심이 있는 일정을 시작 화면에 라이브 타일로 배치하고 라이브 타일을 통해서 필요한 정보를 얻는 데모를 보여 주었다.

    image                                   image
    <
    그림7>MIX11에서 선보인 퀀타스 항공 앱   <그림8>라이브 타일에 배치된 항공 스케즐

     물론 지금의 윈도우폰7에서도 앱의 아이콘을 선택해서 라이브 타일에 배치하는 것은 가능하지만 앱 안의 기능들을 필요한 만큼 라이브 타일에 배치할 수 있게 된 것이 망고를 통해서 얻어지는 큰 변화 포인트이다.

     또 라이브 타일 안에서 이미지나 텍스트의 업데이트를 Live Agents를 통해서 지원받을 수 있게 되어서 라이브 타일과 관련된 개발이 훨씬 간단해지면서 강력해지는 계기가 되었다.

     개발자들의 입장에서는 소켓이나 새로 추가되는 컨트롤 등에도 관심이 많이 갈 것 같다.

    image
    <
    그림9>망고에 포함될 예정인 추가 기능들

     망고에서는 소켓이 지원되어서 다양한 분야의 개발이 가능해 질 예정이다. 소켓과 멀티테스킹을 이용하면 카카오톡과 같은 형태의 메신저 개발이 가능해 진다. 또 항상 준비되어 있는 상태에서 특정 상황에 맞게 푸쉬를 해주는 형태의 다양한 솔류션들이 개발 가능해진다.

     데이터를 저장하는 방법도 달라질 예정인데 지금은 단순히 파일 저장공간만 제공되는데 비해서 이번 업데이트를 통해서 Microsoft SQL Server의 모바일 버전인 SQL CE버전이 제공될 예정이다. 또 일정과 주소록 등에 접근할 수 있는 객체들이 추가로 제공되는 등 개발자들의 숨통을 열어 주는 멋진 기능들이 대부분 제공 될 예정이다.

    image
    <
    그림10> 웹 서비스를 통해서 벨소리를 다운받는 데모

     센서나 하드웨어에 대한 지원도 대부분 해결이 될 예정이다. 로우 레벨에서의 카메라 지원과 더불어 나침반 센서, 자이로 스코우프도 지원될 예정이다.

     그리고 추가적인 벨 소리를 웹 서비스를 통해서 다운로드 받는 방법도 제공 될 예정이라고 한다. 하지만 추가적인 벨 소리를 통신사에서만 제공할 수 있는 것인지 혹은 필요하다면 누구라도 제공 할 수 있는 것인지 하는 것은 밝혀지지 않았다. 국내의 경우 벨 소리 시장 규모가 상당한 것으로 알려져 있는 것이니만큼 이 부분은 중요한 이슈가 될 것으로 보인다.

     필자는 최근에 학부모가 되면서 복합기를 한대 구입하려고 대형 마트를 찾은 적이 있었다. HP 모델이 최종적으로 선정되면서 현장에서 윈도우폰7으로 바로 최저가 검색을 했더니 인터넷 쇼핑이 배송비를 포함하고도 9,000원이나 또 저렴한 것을 찾아내고 마트에서는 식료품만 사가지고 돌아온 적이 있었다. 갑자기 왠 쇼핑이야기냐고 하는 분들이 있을 것 같긴 하지만 실제로 필자와 같이 이동중에 혹은 야외에서 모바일 웹 서핑은 생각보다 강력하게 활용되는 시나리오가 많다.

     기존에 모바일 웹 브라우저는 오픈소스 기반인 웹 킷을 기반으로한 사파리와 크롬이 강세였다.

    image
    <
    그림6>망고에 포함될 예정인 모바일 인터넷 익스플러 9

    특히나 모바일 버전의 인터넷 익스플러는 크롬에 비해서는 보여주는 내용이나 속도에 있어서 사용하지 못할 정도로 많이 떨어지는 제품으로 인식되었다. 하지만 원도우폰7에 포함되어 있는 버전의 경우 정말 많이 좋아졌다. 속도나 HTML을 분석해서 랜더링 하는 기술에 이르기까지 참 짧은 시간에 많은 변화를 가져왔다는 생각이 든다.

     망고에서는 웹 브라우저의 버전업도 함께 포함될 예정인데 바로 모바일 버전의 인터넷 익스플러 9이 포함될 예정이기 때문이다. PC 버전의 인터넷 익스플러9 버전의 경우 HTML5의 지원과 더불어 GPU Dual Core를 지원하는 등 하드웨어를 통한 가속 기능이 눈에 띄었는데 모바일 버전에서도 동일한 장점을 그대로 누릴 수 있게 될 예정이다.

     스마트폰으로 촉발된 스마트 경쟁은 타블릿 패드와 함께 웹 개발자가 지원해야 하는 시장이 다양해지고 있다는 것을 의미한다. 이런 환경에 HTML5를 통한 새로운 표준과 유연함의 제공은 필수적인 요소로 각광 받게 될 예정이다. 그래서인지 몰라도 아직 최종안이 나오지도 않은 HTML5을 이용하는 브라우저들 이외에도 다양한 툴과 플랫폼이 활성화 되고 있다.

     모바일 개발자들의 경우 대부분 모바일 환경을 컴퓨터 상에서 흉내내는 에뮬레이터에서 개발을 하는데 모든 것을 다 에뮬레이터에서 개발하더라도 G센서를 이용하는 기능이나 GPS를 사용하는 기능은 직접 실제 폰을 이용해야만 했다. 원도우폰7의 경우는 망고와 더불어 개발 툴 내에서 G센서 및 GPS 에뮬레이션까지 모두 지원되면서 개발의 편의성이 더하고 있다. 더불어 강력한 프로파일링 기능은 좀 더 복잡한 기능을 개발 할 경우에 체계적인 디버깅과 최적화 작업을 할 수 있게 해 줄 것이다.

    image
    <
    그림7>G센서 에뮬레이터가 포함된 윈도우폰7 개발 툴

    정리

     원래 이번 호에서는 윈도우폰7 디자인 가이드에 대해서 한번 더 다뤄보려고 했지만 망고라는 걸출한 업데이트 소식이 전해지면서 망고에 대한 이야기로 마무리 해 보았다. 다음 호에는 마무리 못했던 원도우폰7 디자인 가이드에 대해서 전해 드리려고 한다. 원도우폰7 개발툴을 설치해보고 떠오르는 아이디어들을 잘 구현해 보는 즐거운 시간이 함께 하시길 바란다.

    ---(*)---

  • Korea Evangelist

    온라인에서 볼 수 있는 TechEd 2011 세션 가이드

    • 0 Comments

    clip_image001

    얼마 전 미국 아틀랜타에서 있었던 TechEd 2011 행사의 키노트를 비롯 모든 세션들이 채널 9 사이트에서 온라인으로 서비스 되고 있습니다. 윈도우 애저, 윈도우폰과 같은 마이크로소프트의 최신 기술 뿐만 아니라 광범위한 개발 및 관리 기술들을 다루고 있으므로 관심 있는 세션을 찾아서 보시길 바랍니다.

    TechEd North America 2011
    http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011

    아래는 참고로 이번 TechEd 관련해서 제가 블로그에 포스팅한 것들 입니다.

    블로그에 올렸던 제 TechEd NA 2011 세션 스케쥴을 보시면 제가 행사 전에 계획한 세션들을 보실 수 있으며, 행사 전날에 있었던 기술 워크샵 및 101 세션들에 참석 후기도 보실 수 있습니다.

    첫째 날은 가장 중요한 키노트를 시작으로 Visual Studio 차기 버전의 ALM 에 대한 내용을 다루는 파운데이셔널 세션을 오전에 들었습니다. 오후에는 WCF 책의 저자가 강연한 윈도우 애저 앱패브릭 서비스 버스에 대한 세션과, SQL 애저 확장성을 위한 패더레이션 세션을, 끝으로는 닷넷프레임워크4를 써야하는 16가지 이유에 대한 세션을 들었습니다.

    둘째 날 오전엔 윈도우 애저 엑세스 컨트롤 2.0 세션을 듣고 클라우드에서 데이터가 정말 안전한지에 대한 토의에 참석하였습니다. 오후에는 마이크로소프트 기술로 아이폰, 안드로이드폰 용 앱을 개발하는 세션과 안전한 클라우드 설계 세션, 그리고 개발자를 위한 IIS 7.5 세션과 끝으로 윈도우 애저의 트래픽 매니저에 대한 질답 세션에 참석하였습니다.

    셋째 날은 윈도우 애저의 저장소, 윈도우 메모리의 미스터리, 웹 성능이 왜 중요한지에 대한 세션들을 들었으며, 넷째날은 SQL 애저 데이터 싱크, 윈도우 애저 내부 구조, 윈도우 애저 필수 툴 10가지, 효율적인 C# 개발에 대한 세션들을 들었습니다.

    영상으로 이번 teched에 대해서 보시려면 TechED 2011 레알 현장 스케치~ 함께 느껴보시죠 :) 혹은 TechED NA 2011 스케치! 를 보시길 바랍니다.

  • Korea Evangelist

    Visual Studio 차기 버전의 ALM기능 살펴보기

    • 0 Comments

    몇 주전에 끝난 TechEd 북미 행사에서 발표된 Visual Studio 다음버전의 기능 중에 Application Lifecycle Management(ALM) 기능에 대해서 설명 드리려고 합니다. TechEd 키노트에서 두번째 스피커로 나선 Jason Zander가 실제 시나리오 데모를 통해서 재미있게 보여준 내용이기도 한데요, 차기 ALM은 아래 세가지 주제로 나눠집니다.

    1. Visual Studio 2010의 확장
    2. 애자일 적용을 가속
    3. 개발과 운영을 연결

    애플리케이션을 만드는 데에는 개발자, 테스터, 아키텍트, 프로젝트 플래너와 같은 많은 사람들이 한팀을 이룬다고 보며, ALM을 통해서 긴밀하게 통합된 아래와 같은 협업을 할 수 있게 됩니다.

    1. 협업 - 어떤 업무를 하던지 간에 팀원 간에 가치 전달에 집중
    2. 적용 가능한 피드백 - 비디오, 스크린샷, 구성 정보, 인텔리트레이스 로그 등을 통해서 문제 해결에 바로 적용 가능하도록 피드백을 전달
    3. 업무 스타일의 다양화 - Visual Studio IDE, Sharepoint, 오피스 등을 여러가지 툴 이용
    4. 애자일 프로세스를 투명화 - TFS를 통해서 신뢰할 수 있는 하나의 소스로 협업

    키노트에서 특히 중점을 둔 부분은 이해 관계자와 운영자와의 협업 시나리오였습니다. 아래 다이어그램이 이와 같은 플래닝, 개발, 매니징 하는 흐름을 아주 간소화한 것 입니다.

    clip_image001

    차기 버전의 Visual Studio 차기 버전의 ALM에는 아래와 같은 여러 가지 시나리오가 있을 수 있으며 각각을 간단히 알아보겠습니다.

    <애자일 플래닝 도구>

    웹 기반의 인터페이스를 통해서 개발프로젝트에 대한 플래닝을 쉽게 하고, 각 항목들에 할당 된 사람들과 시간 내에 할 수 있는 것인지 등에 대한 전체적인 관리를 할 수 있습니다. TFS를 소스로 사용하기 때문에, 다른 여러 툴에서도 같은 내용 처리를 할수도 있습니다.

    clip_image002
    필요한 기능 목록이 쌓여있는 화면

    clip_image003
    기능들을 관리해서 업무로 분류 하는 화면

    clip_image004
    일정 형태로 업무가 나뉜 것을 볼 수 있는 화면

    <간단한 요구사항 처리>

    중간에 애플리케이션의 모양이나 기능 변경을 요구를 받을 경우가 있습니다. 이때 정확히 고객이 어떤 것을 원하는지 파악하기가 쉽지 않아서, 변경을 하고 나서도 재 수정을 해야할 경우가 있는데요, 차기 버전의 Visual Studio 에서는 널리 사용되는 파워포인트를 이용해서 스토리보드 플러그인을 통해서 요구사항을 받을 수가 있습니다.

    clip_image005
    파워포인트에 스토리보드 플러그인으로 고객이 윈폰7 앱의 형태에 대해서 의견 전달

    clip_image006
    여러 템플릿(e.g. 쉐어포인트, 탐색기 등)을 통해서도 쉽게 의견 전달

    <고객의 피드백>

    고객에게 특정 기능에 대해서 피드백을 요청하고, 고객은 오디오나 비디오 캡쳐 같은 형태로도 피드백을 전달할 수 있게 됩니다. 고객 입장에서는 더욱 편리하게 원하는 내용이나 불편한 점에 대해서 의견을 줄 수 있습니다. 이 또한, 웹 인터페이스와 연동이 되어서 관리될 수 있습니다.

    clip_image007
    고객에게 특정 부분의 피드백 요청을 하는 모습

    clip_image008
    고객이 특정 부분에 대해서 피드백 요청을 받은 모습

    clip_image009
    해당 부분을 테스트하면서 비디오를 캡쳐하는 모습

    <지속적인 테스팅>

    유닛 테스팅을 Visual Studio IDE와 긴밀하게 통합된 형태로 제공을 합니다. MS Test, xunit, nunit을 지원할 예정이고, .NET과 C++ 모두 지원할 예정입니다.

    clip_image010
    테스트 시작 전

    clip_image011
    테스트 후 실패한 테스트 및 테스트에 걸린 시간을 보여줌

    <애자일 품질 보장>

    개발을 끝낸 소프트웨어는 자체적으로 Quality Assurance 를 통과해야 합니다. 차기 Visual Studio 에서는 단지 함수 집합을 통해서 수동 혹은 자동으로 코드 테스트를 하는 것과 더불어, 비디오나 오디오 캡쳐와 같은 내용에 대해서 확인을 하면서, 새로운 테스트 케이스를 만들고, 스냅샷을 저장하고, 세부 정보를 기록하는 등의 기능을 할 수 있게 합니다. 또한, 이것들이 바로 적용 가능한 피드백으로 활용 됩니다.

    clip_image012
    재현 과정을 따라가 보는 화면

    <운영 조직과 조율해서 개발>

    Visual Studio 2010 에서 사용해 볼 수 있는 것으로 개발과 운영의 조율을 위해서 System Center와 Visual Studio Team Foundation Server(TFS) 2010을 연동할 수 있는 Connector가 CTP 상태로 릴리즈 되었습니다. System Center에서 모니터링 하고 진단 정보를 모은 것을 TFS로 보내서 바로 확인해서 문제를 해결할 수 있는 것이 가능해 집니다. (CTP 신청)

    clip_image013
    시스템 센터에서 오류를 확인하는 화면

    지금 까지 Visual Studio 차기 버전의 ALM에 포함될 기능 들에 대해서 간단히 살펴보았습니다. 어떻게 보면 소프트웨어 공학 같은 학문에서 부터 오랫동안 논의 되어왔던 더 빠르고, 편리한 개발을 위한 것들이 더욱 현실화 되고 있다는 것이 차기 Visual Studio가 기다려지는 이유 중의 하나 입니다. 관련해서 보다 자세한 내용은 아래 링크들을 참고 하시길 바랍니다.


    Announcing ALM Roadmap in Visual Studio vNext at Teched

    Visual Studio vNext: Application Lifecycle Management” whitepaper

    Tech·Ed North America 2011 Keynote Address

    The Future of Microsoft Visual Studio Application Lifecycle Management

Page 1 of 1 (5 items)