검색결과 리스트
분류 전체보기 에 해당되는 글 656건
- 2011.08.08 Eva News letter 2011-08-08 Silverlight 특집
- 2011.07.26 창과 방패의 싸움... 괜히 감동스럽기까지 한 이야기!
- 2011.07.20 Windows Azure 기반의 보잉 737을 소개하는 사이트 (1)
- 2011.07.20 Silverlight 5 책 소개.. 원서지만..
- 2011.06.30 N-Screen 시대에 개발자들의 알아야 하는 것은?
- 2011.06.28 Kinect SDK for Windows로 배워보는 NUI 개발 (4)
- 2011.06.17 Kinect SDK beta 공개 [2보] (1)
- 2011.06.09 Windows Phone 7 망고 버전에 대한 가이드 입니다. (2)
- 2011.05.16 Silverlight 5 관련 정보 컬렉션 (2)
- 2011.05.11 끝나지 않는 RIA 플랫폼의 진보 Silverlight 5
안녕하세요 앞으로 Eva News Letter라는 이름으로 매일 매일 쏟아지는 콘텐츠를 먹기좋게 잘 정리해서 전달해 드리려고 합니다.
매일 매일 좋은 주제로 찾아 뵙도록 하겠습니다.
오늘은 Silverlight를 주제와 관련된 정보를 정리했습니다.
아래에 보는 링크는 Silverlight를 배울 수 있는 링크를 정리했습니다.
아래 내용만 잘 따라가셔도 충분한 기본 스킬을 확보 할 수 있을 만큼 좋은 자료들 입니다.
아래 자료는 추가적인 Hands On Lab 입니다.
| Silverlight RichTextBox Lab | Hands On Labs |
| Silverlight Validation, Binding, DataFrom and DataGrid lab | Hands On Labs |
| Webcam in Silverlight lab | Hands On Labs |
| What's New in Silverlight 4 | Hands On Labs |
| Multi Touch in Silverlight lab | Hands On Labs |
| Out of Browser with COM Interop Lab | Hands On Labs |
앞으로도 자주 뵙겠습니다.
감사합니다.
우리나라도 이제 오디션 그만하고 이런거 해도 참 재미있겠다는 생각입니다. ^^
http://127.0.0.1:81/HitLog.aspx?Link=http://www.naver.com
댓글을 달아 주세요
보잉 737을 자세하게 소개하고 있는 사이트 입니다. 이 사이트는 Windows Azure를 기반으로 한 클라우드로 서비스 되고 있으며 Flash보다 빠른 응답 속도가 필요하고 2만장의 사진을 이용한 애니메이션 기법을 위해서 직관적이어야 했습니다.
Windows Azure를 사용해서 폭주하는 트래픽에 유연하게 대처할 수 있게 되었으며 Silverlight를 사용해서 직관적인 인터페이스와 빠른 응답속도를 구현했다고 합니다.
http://www.newairplane.com/737/explained/#/Explore
아무튼 오늘 자기 블로그에 한시적으로 50% 세일 한다고 올려놨네요.. 관심 있으신 분들은 알아보시길..
http://10rem.net/blog/2011/07/19/my-next-book-silverlight-5-in-action-50percent-off-for-a-limited-time
댓글을 달아 주세요
3스크린을 넘어서 N스크린 시대로
통계에 따르면 현재 미국 중산층의 경우 1인당 2.4개의 스크린 매일 접하고 다루면서 살고 있다고 한다. 2.4라고 하면 생각보다 많다고 느낄 수 있겠지만 TV와 핸드폰만 하더라도 이미 2개가 되고 여기에 PC까지 포함하면 금방 3개가 되기 때문에 실상 그렇게 많은 숫자는 아니다.
하지만 평균 2.4개이기 때문에 디지털 디바이스에 대한 접근이 불편한 노인과 유아와 같은 계층을 제외하고 실제 경제 주체만 본다면 일인당 사용하는 스크린의 개수는 훨씬 더 많을 것으로 보인다.
이렇게 스크린의 개수가 폭발적으로 늘어나고 있는 것은 각 디바이스의 획득 단가가 감소한 탓도 있게지만 비용적인 문제를 뛰어넘는 이유는 네트워크에 대한 접근이 용의해 졌기 때문이다.
네트워크에 대한 접근은 다시 한번 언급하겠지만 일반적인 데스크탑 PC를 제외하고는 충분한 성능과 용량을 가지지 못한 모바일 디바이스들의 능력을 네트워크를 통해서 확장할 수 있는 것이 중요한 요인으로 보인다. 특히 좁은 지역에 많은 사람들이 모여살고 있는 우리나라 (특히 수도권)의 경우 네트워크에 대한 접근성과 비용 경쟁력은 세게 최고 수준이다. 이미 진부한 단어인 초고속 인터넷 회선망과 무제한으로 풀리고 있는 핸드폰 기반의 무선 인터넷망 그리고 이미 도배되고 있는 Wifi망과 한 걸음 더 나아간 Wibro망까지 이미 우리는 2중 3중의 네트워크 망속에 살고 있으며 각각의 장단점을 따져가면서 선택할 수 있다. 그런면에서 볼 때 우리나라는 많은 디바이스와 스크린을 테스트하고 실용 시나리오를 개발할 수 있는 최적의 토양이다.
N스크린을 이야기 하기전에 먼저 고민해야 하는 것은 ‘왜 우리는 하나이상의 디바이스를 사람들이 사용한다고 가정하는 것일까?’ 하는 것이다. 여기에서 우리가 기본적으로 가정하고 있는 사실은 각각의 디바이스와 스크린이 차별화가 가능하다는 전제가 있기 때문이다. 대리 운전 기사님들을 제외하고는 핸드폰을 두 세개씩 들고 다니는 사람은 아마 거의 없을 것이다. 또 특별한 경우를 제외하고는 동시에 TV를 두 대 틀어놓고 보지 않을 것이다. 각각의 스크린에서 중요한 것은 ‘차별화’라는 부분이다.
애플 아이패드가 처음 출시 될때 많은 사람들은 설왕설래 말이 많았다. 그 중에 가장 부정적인 단어는 ‘그냥 좀 큰 아이폰’였다. 실제로 하드웨어, 소프트웨어 구성으로 봤을 때 가장 정확한 지적이기도 하다. 같은 운영체계에 사이즈를 제외하고는 아이폰과 거의 동일한 하드웨어를 사용하고 있다. 심지어는 아이폰의 앱들을 크게해서 사용하는 것도 가능하다.
하지만 시장의 반응은 폭발적이었다. 소위 말하는 ‘조금 더 큰 아이폰’에 사람들이 열광했고 아이패드를 구입한 대부분의 사람들은 아이폰을 사용하고 있는 사용자들이었다.
<그림1>아이패드는 사이즈가 큰 아이폰으로 보는 시각이 많았다.
하지만 아이러니 하게도 아이패드가 성공적으로 시장에 안착한 이유도 역시 ‘좀 더 큰 아이폰’이었기 때문이기도 하다. 아이폰의 경험을 가지고 사용할 수 있는 새로운 스크린에 대해서 사람들은 편안함과 새로움을 동시에 느낄 수 있었던 것이다.
아이패드는 현재 두 번째 제품이 출시되었으며 시장 조사 업체인 아이서플라이에 따르면 올해 판매 예측치를 3970만대로 보고 있을 만큼 가파르게 성장하고 있는 것으로 보인다.
애플이 새로 부각된 시장의 강자라면 이미 클라이언트의 90%이상을 점령하고 있는 마이크로소프트도 역시 다양한 시도를 하고 있다. 데스크탑과 노트북의 경우는 이미 원도우7이 비스타의 실패를 만회하고 있으며 새로운 기능 수렴과 악성코드의 공격등에 위험이 노출된 원도우XP를 빠르게 대체해 나가고 있다. 타블릿PC 시장을 접근 하는 방식 역시 원도우7이 설치된 슬래이트 PC로 공략해 나가고 있다. 슬래이트 PC는 터치 기반의 인터페이스를 사용하기 편리한 형태로 구성되어 있으며 원도우7은 출시할 때 부터 터치 인터페이스를 대응해 놓았기 때문에 크게 문제 없이 적용될 수 있었다. 마이크로소프트의 서피스(Surface ) 2는 새로운 테이블PC라는 영역을 개척하고 있는 제품이다. 테이블 PC라는 영역은 스크린의 위 아래가 없고 동시에 한명 이상의 사람이 조작할 수 있어야 하기 때문에 이전의 스크린들과는 고려해야 하는 부분이 확연하게 다른 결과를 가져 올 수 있게 되었다.
최근에 가장 큰 화제를 모우고 있는 엑스박스 키넥트의 경우는 4개월만에 천만대 이상이 판매되는 기염을 토하고 있다. 키넥트의 경우는 새로운 스크린을 개척한 제품은 아니다. 스크린은 기존의 TV를 그대로 사용하지만 새로운 조작 방법을 제시했다는 점에서 새로운 혁신을 이룩했다. 키넥트는 사용자들에게 새로운 장치나 컨트롤러에 대한 사용법을 강요하지 않고 사용자 자신이 컨트롤러가 되었다는 점에서 혁명적인 접근이었으며 TV 사이즈 이상의 다양한 스크린에서 활용할 수 있는 최적의 인터페이스를 제시했다는 점이 주효하고 작용한 것 같다.
하지만 마이크소프트의 그림은 다음 버전의 윈도우에서 완성될 것으로 보인다. 다음 버전의 윈도우에 대한 구체적인 정보는 아직 하나도 알려진 바는 없지만 다음과 같은 특징을 가질 것으로 보인다.
- 다양한 디바이스에서 사용 가능한 공통적인 앱 모델
- 앱을 제공 받을 수 있고 공급할 수 있는 마켓 플래이스
- ARM 계열등 전통적인 x86 계열의 CPU 이외에 다양한 모바일 칩들에 대한 지원
- 새로운 모델의 운영체계를 지원하고 위한 개발 툴
새로운 버전의 윈도우의 모습은 올 해가 가기전에 구체적인 모습을 볼 수 있을 것 같다.
두 가지 N스크린 시나리오
하나 이상의 스크린을 사용하는 방식에 있어서 필자의 경우 사용하는 방식에 있어서 두 가지 방식으로 구별해서 이야기 한다. 한 꺼번에 여러 개의 스크린을 동시에 사용하는 방식을 병렬적인 N스크린 시나리오, 한번에 하나의 스크린을 사용하면서 여러개의 스크린을 넘나드는 방식을 직렬적인 N스크린 시나리오로 말한다.
병렬적인 N스크린 시나리오
<그림3>TV를 볼 때 모바일 인터넷 사용여부
<그림4>TV 시청중에 모바일 디바이스로 하는 활동
최근 국내 S전자 TV광고를 보면 현빈이 TV를 보면서 인터넷으로 채팅도 하고 검색도 가능하는 광고를 하는 것을 볼 수 있다. 어떤 면에서는 와 닿지 않는 이야기 일 수도 있지만 야후 통계를 보면 TV를 보면서 무선 인터넷에 접속하는 비율에 대한 조사에 보면 무려 86%의 사용자들이 TV를 보면서 곁눈질로 이미 다른 스크린을 활용하고 있는 것을 볼 수 있다.
이런 형태로 동시에 여러 화면을 활용하는 시나리오를 N스크린의 병렬적 활용이라고 말 할 수 있는데 이와 관련한 시도들은 이미 다양한 형태로 시도되고 있다.
<그림5>스크린으로 접근한 TV리모콘 <그림6>아이패드를 이용한 TV 가이드
<그림5>에서 보이는 제품은 컨셉 제품으로 실제 양산에는 들어가지 못한 제품으로 TV 리모콘을 별도의 스크린으로 제작한 방식이다. 요즘처럼 대채널이 보편화 되어있을 때 유용할 것으로 보이지만 실제로는 우리가 집에서 TV를 사용할 때 사용하는 패턴을 고려해 본다면 오히려 불편할 수도 있을 것 같은 생각도 든다. 또 채널에 대한 정보가 표준화 된 방식으로 제공되기 까지는 어느 정도 시행착오는 불가피 할 것으로 보인다.
<그림6>은 같은 TV리모콘을 대체하는 접근이긴 하지만 전용 디바이스를 별도로 만들지 않고 아이패드를 사용하게 되어 있다. 아이패드와 같은 대중화 된 디바이스를 사용 할 수 있다는 점은 사용자들에게 새로운 매리트를 줄 수 있다. TV시청과 더불어 간단한 웹서핑이나 게임등등 다양한 활동을 함께 즐길 수 있다는 점에서 매우 좋은 접근이 될 수 있다.
직렬적인 N스크린 시나리오는 한번에 하나씩 디바이스들을 돌아가면서 사용하는 것으로 미국에서 비디오 스트리밍을 제공하는 네플릭스사가 좋은 예가 된다. 넥플릭스는 원래 온라인에서 비디오 대여를 주업으로 하다가 DVD까지 사업을 잘 이끌어왔다. 우리나라는 수 많은 비디오 대여점이 인터넷의 역풍을 맞고 이젠 대부분 문을 닫았지만 넥플릭스는 우편으로 DVD 대여 및 회수를 하는 비지니스 모델을 성공적으로 인터넷으로 옮겨서 더 큰 스트리밍 시장의 기회를 잡게 되었다. 최근에는 미국내 가장 중요한 콘텐츠 소비 채널 중에 하나로 자리집게 되면서 강력한 시장 영향력을 가지는 업체로 성장하게 되었다.
넥플릭스는 N스크린에 대응하기 위해서 다양한 클라이언트를 지원하는 쪽으로 방향을 선회 하면서 XBOX나 Wii, PS3와 같은 게임 콘솔과 스마트 TV 그리고 안드로이드, 아이폰 그리고 원도우폰7등 모바일 환경과 아이패드에 이르기까지 다양한 클라이언트에 대한 지원이 이미 마무리 되어 있다.
집 밖에서 모바일로 영화를 보고 있다가도 집에 와서 TV를 통해서 계속 이어서 보는 등의 직렬적인 시나리오를 충실히 구현하고 있다.
최근 국내에서도 비슷한 서비스가 제공되고 있는데 아직 네플릭스 보다는 부족한 면이 많이 보인다.
N스크린 시대의 사용자 인터페이스
N스크린 시대가 되면서 사용자들이 다를 수 있는 기기가 많아지고 사이즈가 다양해 지면서 이를 조작할 수 있는 방법도 다양한 방법이 제공되고 있다. 기존에는 키보드나 마우스를 사용하는 시나리오가 많았지만 이제는 직접적으로 화면을 조작하는 터치 방식이 주류를 이루고 있다. 개발자의 입장에서는 사용할 수 있는 방법이 늘었다는 점에서는 환영할 만한 변화겠지만 다르게 보면 하드웨어의 특징까지 잘 이해 해야하는 점에서는 또 다른 어려움일 것이다.
터치는 크게 감압식과 정전식 그리고 주로 대형 스크린에 사용되는 적외선 방식이 있으며 카메라를 이용한 모션 인식 방식등이 있을 수 있다. 감압식은 구조가 간단하고 구현 비용이 간단해서 이전에 많이 사용되었지만 감도가 약해서 사용 감이 떨어지는 이유로 최근에는 많이 사용되지는 않는다. 최근에 가장 많이 사용되는 방식은 뭐니 뭐니해도 정전식인데 정전식의 경우는 손가락에 흐르는 미세 전류를 이용하는 방식으로 감도가 뛰어나 최근 나오는 대부분의 터치 장비에 활용되고 있다. 하지만 스크린의 사이즈가 커지면 전기적 잡음이 늘어나서 대형 스크린에는 사용하지 못한다. 그래서 감도는 떨어지지만 대형 스크린에 적합한 기술로 주로 적외선 방식을 사용하는데 적외선 방식의 경우는 주위의 온도나 열이 많이 나는 조명등의 영향을 받는 경향이 있으므로 주의해서 사용해야 한다.
<그림10>적외선 방식의 터치 센서 <그림11>카메라 방식의 터치를 사용하는 서피스
카메라 방식의 경우는 인식도 비교적 용의하고 멀티터치나 제스추어등을 구현하는데에도 적합한 기술이지만 카메라가 영상을 인식하고 분석하는데 시간이 걸리기 때문에 사용자의 조작보다 다소 늦게 반응한다. 카메라 방식의 터치 인식을 사용하는 마이크로소프트사의 서피스 같은 제품의 경우는 이미지 프로세싱을 전담하는 하드웨어를 별도로 배치해서 이미지 처리에 걸리는 시간을 최소화 하는 방법을 선택했다.
앞에서 언급한 마이크로소프트사의 키넥트는 기존의 인터페이스 방식에 비해서 혁신적이라가 할만한 요소들을 두루갖추고 있다. 사람 자체를 인식하고 사람의 모션에 따라 다양한 조작을 할 수 있다. 키넥트는 적외선, RGB, 깊이등을 파악할 수 있는 세 개의 센서를 통해서 사람을 300여개의 관절로 완벽하게 인식해 낸다. 그 결과 사람의 동작이나 제스추어를 비교적 정확하게 인식해내는데 기대이상의 인식률을 자랑한다.
키넥트의 경우 원래 엑스박스의 게임 컨트롤 용도로 출시되었지만 최근에는 PC에 붙여서 사용하는 다양한 사례가 나오기 시작했으며 마이크로소프트에서도 PC용 키넥트SDK를 조만간 발표 할 예정에 있다.(이 글을 여러분들이 보실 때에는 이미 나왔을지도 모르겠다 꼭 한번 검색해 보기를 바란다.
정리
N스크린 시대에 개발자들이 지켜봐야 할 두 가지 시나리오와 각종 인터페이스에 관한 이야기를 했지만 그럼에 불구하고 뭔가 아쉬움이 남는 것은 N스크린 시대에 가장 중요한 이야기 하나를 빼먹었기 때문이다. N스크린 시대라는 단어에서 우리는 스크린에 현혹되기 쉽다. 하지만 디바이스가 많아지고 그게 병렬이든 직렬이든 어떤 형태로 사용되던 간에 각각의 디바이스간의 데이터 동기화 혹은 단일 인증모델 그리고 작업 턴의 전환등을 제대로 해결하기 위해서는 뭔가 늘 대기상태로 네트워크에서 존재하는 안정된 서비스가 필요하다는 점이다.
지금은 이를 해결할 수 있는 가장 가까운 기술이 클라우드 기술이라고 보는 사람들이 많고 필자역시 그렇게 생각하는 바이다. 이런 면에서 클라우드와 N스크리는 전혀 다른 주제처럼 보이지만 사실은 떼어 놓고 생각하기 어려운 주제이기도 하다. ---(*)---
댓글을 달아 주세요
|
김영욱 차장 iwinkey@hotmail.com 국내 유수의 대기업 프로젝트에 참여했던 풍부한 경험과 마이크로소프트 MVP로서 다양한 활동을 바탕으로 .NET과 관련된 개발 기술에 전념하고 있다. 현재 한국마이크로소프트에서 Evangelist로 근무하고 있다. |
또 이런 이야기를 한다면 필자를 늙은이 취급할 개발자들도 많겠지만 마우스도 없던 시절의 컴퓨팅 환경에 비하면 정말 매일 격세지감을 느낄 수 밖에 없다. 하지만 격세지감 따위를 즐기고 있을 만한 여유는 어디에도 없다. 세상은 정말 빠르게 변화하고 있는 듯 하다.
PC가 메인프레임으로 부터 컴퓨팅의 자유를 이끌어 냈을 때 세상은 퍼스널 컴퓨팅 세상으로 바뀌었고 모바일 혁신은 기존의 PC에서 모빌리티 자유를 이끌어 낼 수 있었다.
인터페이스에서도 다양한 혁신이 이끌어져 오고 있는데 키보드 마우스를 넘어서서 최근은 거의 모든 디바이스에서 볼 수 있는 터치 인터페이스의 확산 속도는 이전의 어떤 인터페이스 보다 확산 속도가 빠르다. 터치 인터페이스는 폰을 넘어서 타블릿PC 그리고 최근 영상이 공개된 원도우즈의 차기 버전(가칭 원도우즈8)까지 광범위 하게 사용되고 있다. 하지만 최근에 마이크로소프트가 발표한 키넥트는 이전에 그 어떤 인터페이스에서도 제시하지 못했던 새로운 차원의 인터페이스를 제시하면서 또 한번의 큰 변화를 예고하고 있다.
게임기에서 Windows로 넘어가는 Kinect
키넥트는 원래 게임 콘솔인 XBOX 360에서 게임을 위해서 출시되었다. 기존의 닌텐도나 소니에서 선보였던 손에 센서 뭉치를 들고 하는 방식이 아니라 사람을 직접 인식하는 혁신적인 방식이다. 물론 과거에도 사람을 직접 인식하는 기술들은 여럿 있었지만 별다른 부가장치의 부착없이 사람을 관절단위로 인식하는 시도는 처음 상용화 된 방식이다. 키넥트는 적외선, RGB, 깊이(Depth) 등의 세 가지 센서를 통해서 사람을 정확하게 관절로 인식하고 마이크로폰을 이용해서 음성인식이 가능하다. 키넥트는 부가적으로는 사람을 잘 인식하기 위해서 받침대와 목사이의 관절에 모터가 설치되어 있어서 사람을 찾아서 시선을 조정하기도 하는 등 제법 똑똑한 모습도 보여준다. 현 시점에 게임 시장에서 키넥트를 보면 상당히 성공적이다. 최단기간 1000만대를 팔아서 ‘가장 짧은 시간에 가장 많이 팔린 전자기기’라는 이름으로 기네스북에 오르기도 했다. 하지만 세상의 개발자들과 오덕후 들은 키넥트를 게임 용도로만 국한하지 않았다. 키넥트를 원도우즈를 시작해서 매킨토시, 리눅스, 안드로이드 등 다양한 플랫폼에 연결 시키는 오픈 소스 프로젝트가 진행되는가 하면 로봇이나 모형 헬기를 조정하는 용도부터 장애인들을 위한 다양한 프로젝트까지 여러가지 아이디어와 결합되기 시작했다.
<그림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 포트가 제공해 줄 수 있는 전력보다 더 많은 전력을 소비해야 하기 특별한 형태의 컨넥터 타입이 필요하게 되었다.
그래서 구형 XBOX 360과 PC에서 키넥트를 사용하기 위해서는 별도로 전력을 공급할 수 있는 어뎁터가 필요하다. 해당 어뎁터는 시중에서 바로 구입할 수는 없고 마이크로소프트 고객센터로 전화해서 신청하면 구입할 수 있다.
하드웨어에 대한 준비가 끝났으면 이제 개발환경을 설정할 차례이다.
개발환경은 기본적으로 원도우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 두 가지 완성된 샘플을 볼 수 있다.
<그림5>Skeletal Viewer
<그림6>Sample Shape game
특히 Sample Shape game의 경우 인체를 인식하기도 하지만 음성 인식도 함께 가능해서 ‘Super Big’, ‘Start’,’Stop’과 같은 명령들을 직접 음성으로 내려 볼 수 있다.
키넥트를 이용한 애플리케이션을 개발하기 위해서는 위해서는 VC++ 혹은 C#, VB와 같은 개발 언어를 알아야 한다. 키넥트 SDK에서 제공되고 있는 라이브러리에서 인체 구조를 인식하고 제스츄어를 분석하는 등의 기능을 하는 부분이 NUI Library 이다.
<그림7>NUI Library
NUI Library는 키넥트에서 전송되어서 오는 이미지와 Depth 그리고 오디오 정보를 취합해서 애플리케이션에서 활용할 수 있는 정보로 전환하는 기능을 가지고 있는 핵심 요소이다. 좀 더 세부적으로 들어가면 <그림8>과 같은 아키텍처르 정리할 수 있다.
<그림8>키넥트 아키텍처
키넥트 하드웨어는 USB 기반의 기술로 PC와 연결되며 커널 모드 드라이버로 작성된 키넥트 드라이버가 하단에 자리 잡고 있다. 그 위에 카메라와 오디오 스텍이 있고 그 위에 최상위 추상화 레벨에서 NUI API와 오디오/비디오 컴퍼넌트가 잡리 잡고 있는 형태이다.
사실 개발자의 입장에서는 아키텍처 자체는 그리 중요하지 않을 수도 있다. 하지면 전체적인 그림을 이해하고 넘어가는게 아무래도 좀 더 개발에 탄력을 줄 수 있을 것 같다.
NUI Skeleton Tracking
NUI Library에서 제공되는 API중에서 NUI Skeleton API가 있는데 이는 키넥트 앞에 있는 사람을 최대 2명까지 뼈대로 인식해 낸다. 단순히 인식한다고 하면 사람의 형체만 인식하는 것처럼 보일 수 있지만 다시 이야기 하면 사람의 각 부분을 정확하게 인식해 낸다.
<그림9> NUI Skelton API의 인식 부분
NUI Skeleton API는 사람의 주요 부위를 20개로 인식하고 각 부분별로 명칭이 정해져 있다. 여기서 나오는 정보를 기반으로 애플리케이션에서 다양한 반응을 만들어네게 되는데 뼈대에 관한 정보를 찾아내기 위해서는 C++에서는 NuiSkeletonGetNextFrame을 사용할 수 있고 C#등에서는 SkeletonEngine.GetNextFrame을 사용해서 각 부분의 상태를 확인할 수 있다.
Kinect SDK for Windows 개발
키넥트 SDK는 VC++, C#, VB.NET 등등 네이티브 언어와 매니지드 언어를 모두 지원하는데 여기서는 C#언어를 기준으로 설명한다. 키넥트 SDK를 사용하기 위해서는 Microsoft.Research.Kinect.dll을 참조해야 한다.
<그림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등이 포함되어 있어서 개발이 한결 수월하게 해준다.
<그림12>Coding4Fun에 올라와 있는 Kinect 관련 프로젝트들
http://channel9.msdn.com/coding4fun 에서 오픈소스로 진행되는 프로젝트들을 보는 것도 흥미로울 것이다. Kinect Paint, Kinect Mouse등의 프로젝트는 흥미로운 요소들을 제공해 줄 것이다.
- 정리
키넥트를 바라보는 사람에 따라서 서로 다른 기대치를 가지고 볼 수 있겠지만 필자가 개발자의 눈으로 바라보는 키넥트는 ‘정말 재미있는 개발자들의 장난감’이다. 즐겁고 재미있게 만들고 고민하다 보면 키넥트와 관련된 정말 재미있는 애플리케이션들을 많이 만들 수 있을 것 같다.
댓글을 달아 주세요
Kinect는 적외선과 RGB, Depth 등 세개의 센서를 사용해서 사람을 300여개의 관절로 인식하는 획기적인 제품입니다. 작년에 XBOX 360에 하나의 추가 기능으로 출시 될 때만 해도 게임계에서만 사용될 것으로 보였지만 이미 많은 사람들은 오픈소스 기반의 프로젝트를 통해서 PC에 연결해서 사용한 시도를 해왔습니다.
현지 시간으로 2011-06-16일 오전 09:30 Kinect SDK Beta 발표
Kinect를 PC에서 인식하고 개발 가능하게 하는 Kinect SDK Beta 버전이 출시 되었습니다. 학술 혹은 연구용 그리고 매니아 계층을 위해서 출시된 이번 Kinect SDK Beta는 상용 제품을 만들 수 있는 라이선스는 포함되어 있지 않습니다. 추후 Kinect SDK의 커머셜 버전은 또 조만간 다시 발표할 예정이라고 합니다.
http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/ 에서 현재 Kinect SDK beta를 다운로드 할 수 있습니다.
Kinect SDK Beta의 기능
Kinect SDK를 통해서 개발자들은 오디오, 시스템 API 및 센서등을 직접 접근할 수 있으며 이를 통해서 NUI(Natural User Interface) 부분에서 재미있는 발전이 예상됩니다.
이번 SDK를 설치하고 사용해 보기 위해서는 아래와 같은 사양이 기본적으로 필요하다.
· Computer with a dual-core, 2.66-GHz or faster processor
· Windows 7–compatible graphics card that supports Microsoft® DirectX® 9.0c capabilities
· 2 GB of RAM
· Kinect for Xbox 360® sensor—retail edition, which includes special USB/power cabling
이번에 제공되는 Kinect SDK안에는 Kinect Driver와 개발 문서 샘플 코드등이 포함된 일종의 Starter Kit 형태로 발표되었으며 beta 버전임에도 불구하고 상당한 수준까지 개발할 수 있는 기능들이 모두 제공됩니다.
아래는 Microsoft Reseach에서 제공하는 Kinect SDK 샘플 동영상입니다.
Silverlight 5를 시작하려고 하시는 분들에게 도움을 드리기 위해서 관련된 정보들을 모아보았습니다.
Silverlight 5의 전체적인 특징을 이해하고 싶으신 분들은 이 전 포스팅인 "끝나지 않는 RIA 플랫폼의 진보 Silverlight 5"를 참조해 주십시오
우선 본격적으로 시작하기에 앞서서 필요한 툴과 자료를 먼저 다운로드 합니다.
Silverlight 5 Download
필수 다운로드
- Visual Studio 2010 SP1 (required)
- Silverlight 5 Beta Tools for Visual Studio SP1 (required)
- Expression Blend Preview for Silverlight 5 (optional)
- Silverlight 5 Features Document (optional)
추가적으로 필요한 요소들
- Silverlight 5 Beta Developer Runtime for Windows
- Silverlight 5 Beta Developer Runtime for Mac
- Silverlight 5 Beta SDK
- WCF RIA Services for Silverlight 5 Beta
그리고 다운로드 되는 동안 Silverlight 5를 소개하는 동영상들을 살펴 봅니다.
Silverlight 5 Top Videos
Silverlight 5 Beta Overview
Silverlight 5를 소개하게 어떻게 시작할 수 있는지를 소개합니다.
Multi-Column and Linked Text
RichTextBoxOverflow를 통해서 다중 컬럼을 지원하는 방법과 링크된 텍스트를 사용하는 방법을 소개합니다.
Implicit Templates
포함되어 있는 템플릿을 사용하는 방법을 소개해 드립니다.
Low-Latency Sound Effects
새로운 SoundEffect와 SoundEffectInstance Class를 사용하는 방법을 보실 수 있습니다.
Debugging Binding
Visual Studio 2010에서 XAML 바인딩을 사용할 때 어떻게 디버깅 할 수 있는 지 보실 수 있습니다.
OS Windows
OS차원의 창을 띄우는 방법을 소개해 드립니다.
Mouse Button Double and Multi-click
Silverlight 5에서 지원되는 Double and Multi-Click에 대해서 소개해 드립니다.
얼마전 미국 라스베거스에 있었던 믹스에서도 Silverlight 관련 세션들을 볼 수 있습니다.
Graphics & 3D with Silverlight 5
Building in Browser Experiences with Silverlight 5
Advanced Features in Silverlight 5
Tips for Improving Performance in Applications Built with Silverlight
Effective Validation Techniques with MVVM in Silverlight
Silverlight 5 Top Tutorials
아래 아티클들은 영문이지만 잘 정리된 아티클들 입니다. 읽어보시면 새로운 기능들의 특징을 이해하는데 도움이 됩니다.
Silverlight 5 Advancements in Text
Silverlight 5 has made some real improvements to the text stack, including control over character spacing, and linked and multi-column text. In this tutorial, Pete Brown will show us how to use these new advancements.
Silverlight 5 Debugging Bindings with Xaml Breakpoints
When looking at features in our favorite platforms, we often forget that the tooling gets updated too. For Silverlight 5, one of the most interesting tooling enhancements is the ability to set breakpoints and debug bindings in XAML. In this tutorial, Pete Brown will show us how to debug bindings in Silverlight 5.
Silverlight 5 Supporting Double and Even Triple Click for the Mouse
Silverlight 5 has introduced the concept of a click count. Rather than create dedicated double, triple, or septuple click events, you can simply count the number of clicks using the new ClickCount property of the MouseButtonEventArgs class. In this tutorial, Pete Brown shows us how to use this new property.
Silverlight 5 Using the SoundEffect Class for Low-Latency Sound and WAV Support
In some applications, particularly touch-screen kiosk apps and casual games, it is desirable to be able to play a sound immediately upon a user action. In this tutorial, Pete Brown shows us how to use the SoundEffect and SoundEffectInstance classes.
Silverlight 5 Working with Implicit Templates
One great feature that has, until now, been exclusive to WPF is the ability to use implicit data templates. Now, Silverlight 5 also supports this feature. In this tutorial, Pete Brown shows us how to create and use Implicit Data Templates in Silverlight 5.
Silverlight 5 Working with Operating System Windows
ChildWindow controls are great for most things, but sometimes you just want something that acts like an operating system Window. Silverlight 5 has extended the Window class to allow creating real native child windows. In this tutorial, Pete Brown shows us how to create and customize windows in Silverlight 5.
댓글을 달아 주세요
-
india travel 2011.10.18 11:33 ADDR EDIT/DEL REPLY
그게 그렇게 유용한 기사했습니다. 나는 많은 사람들이 기사의 중요성을 알 수있을 것이라고 확신합니다. 그리고 그렇다면 사람들은 당신을 공유 것을의 블로그와 아이디어를 사용하는 활용하지 않습니다.
현지 시간으로 2010년 12월 02일 오전 09시에 열렸던 Silverlight Firestarter 행사를 통해서 그 모습을 드렸냈던 Silverlight 5가 MIX11에서 드디어 Beta 버전이 발표 되었습니다. 작년에 열렸던 Silverlight Firestart 행사는 비교적 적은 사람이 초대되었고 주로 온라인으로 진행되었던 행사였다면 MIX11은 수천명이 모여서 진행되었던 대규모 행사였습니다.
<온라인으로 진행되었던 The Firestarter 행사>
속도 제어가 가능해진 미디어 기능
Silverlight 5에 추가된 기능들을 하나 하나 살펴 보면 사용자들의 피드백을 하나 하나 잘 반영하고 있는 생각이 듭니다. 원래 Silverlight가 미디어와 관련된 기능이 강조되어 왔지만 Silverlight 5에서는 미디어와 관련된 기능이 한층 더 강화되었습니다. 특히 그 동안 교육 콘텐츠 업계로 부터 많은 문의를 받아왔던 Trickplay라고 부르는 미디어 재생 속도 제어 기능이 이번에 포함 되었습니다. 미디어 재생 속도를 제어하다 보면 불가피하게 음향의 톤이 올라가거나 낮아지는 현상도 함께 벌어지게 되는데 이럴 때 이번에 Silverlight 5에서 제공 되는 Trickplay에서는 이를 보정해서 원래 톤을 유지하는 기능도 함께 포함되어 있습니다.
영상이나 음향의 경우 대용량의 데이터를 빠르게 전송하기 위해서 모두 수학적으로 압축해 놓은 형태로 저장되고 전송됩니다. 그리고 이를 압축해 놓은 방식을 코덱이라고 부르며 각 각의 코덱은 라이선스가 적용되어 있습니다. 이전의 경우 압축된 영상이나 음향을 재생하기 위해서 수학적으로 다시 풀이하는 과정을 CPU에 의지했기 때문에 고화질의 영향을 넷북과 같은 저사양의 PC에서 재생하는 것이 불가능 했습니다.
하지만 Silverlight 5에서는 별도의 압축 해제용 하드웨어를 지원하기 때문에 CPU는 본연의 임무를 수행하고 영상이나 음향의 압축 해제는 전용 하드웨어를 통해서 처리할 수 있게 되었습니다. (압축 작업을 Encoding 압축 해제 작업을 Decoding이라 부르며 압축 해제를 전용으로 하는 소프트웨어나 하드웨어를 Decoder르 부른다.)
이를 통해서 저전력 저사양의 PC에서도 고화질의 영상이 재생 될 수 있게 되었습니다. 이외에도 Silverlight 5의 경우 전력관리를 위한 추가적인 기능이 포함되어 있어서 이미 다가온 모바일 PC시대의 가장 중요한 과제인 전원관리 문제에도 접근하고 있습니다.
Full 3D의 지원
Silverlight 3에서는 간단한
UI효과를 위한 3D가 부분적으로 지원되었지만 Silverlight 5 부터는 Full 3D 객체가 지원됩니다.
<Silverlight Firestarter에서 시연한 데모>
<MIX11에서 시연한 데모>
이는 Silvelight 5에서 제공되는 DrawingSurface를 통해서 지원되는 기능으로 완벽한 수준의 3D를 웹 상에서 구현할 수 있게 되었습니다. Silverlight 5는 3D 모델 포멧으로 COLLADA라는 포멧을 사용하고 있는데 COLLADA는 3D 객체를 표현하는 포멧으로 3D 업계에서 무료로 사용할 수 있게 공개되어 있습니다. Silverlight 5에서 제공되는 3D 기술의 이면에는 게임용 플랫폼으로 사용되고 있는 XNA가 있습니다. XNA는 PC, XBOX, Windows Phone 7등에서 게임 개발용으로 활발히 사용되고 있는 플랫폼 입니다. 이미 관련된 데모를 다운로드 해 볼 수 있으며 http://www.johnpapa.net/3dmix11 에서 다운로드 할 수 있습니다.
웹에서 3D를 구현하는 다양한 방법이 이미 존재하지만 Silverlight 5는 GPU 가속을 활용할 수 있어서 강력한 성능을 제공할 수 있으며 이미 다양한 플랫폼에서 검증된 공개된 포멧을 사용하고 있고 Silverlight 런타임만 있으면 이외에 추가로 설치해야 하는 것이 없다는 점들이 장점입니다.
더욱 더 강력해진 개발 모델
Data Binding은 개발자들이 최소한의 노력으로 데이터를 화면의 컨트롤과 연결 시킬 수 있는 방법을 제공해 줍니다. Silverlight의 경우 디자이너와 개발자들의 협업을 위해서 UI를 XML 기반인 XAML로 디자인하게 되어 있는데 이 경우 XAML에서 런타임시에 오류가 날 경우 오류를 찾기 어려운 경우가 있었습니다. Silverlight 5의 개발 도구의 경우 XAML상에서도 의심가는 컨트롤에서 직접 디버깅을 할 수 있는 기능이 제공됩니다.
통신 방식에서는 업계 표준인 WS-Trust를 지원하게 되어서 통신 신뢰성을 100% 담보할 수 있게 되었고 Cloud 플랫폼인 Windows Azure와의 통신도 다양한 방법으로 할 수 있게 되었습니다.
<향상된 데이터 바인딩>
나머지 향상된 기능들
웹 브라우저가 아닌 독자적으로 실행 시킬 수 있는 형태로 소프트웨어를 실행 시킬 수 있는 OOB(Out Of Browser)는 이번에도 기능이 추가 되었습니다. 여러개의 창을 띄울 수 있게 변경되었으며 기업 그룹 정책을 지원하는 등의 변화가 생겼습니다. 이번에 개선된 OOB관련 기능들로 인해서 Silverlight가 좀더 데스크탑용 일반 응용 프로그램들에 가까워 졌지만 웹을 기반으로 하고 있다는 점은 역시 변하지 않았습니다.
이외에도 좀 더 미려하게 폰트를 표현할 수 있는 기술과 PostScript 프린팅의 지원등은 사소하지만 큰 변화 중의 하나 입니다.
<더 선명해진 글씨와 강력해진 프린터 지원>
Pivot 기능이 기본 런타임에 포함되었으며 개발툴에서 자동으로 UI를 테스트 할 수 있는 기능이 추가 된 것도 놀라운 변화중에 하나 입니다. 일일히 테스트 하는 것이 아니라 한번의 시나리오 녹화로 지속적인 테스트/재현이 가능하고 그 과정을 추적하는 할 수 도 있어서 고품질의 제품을 만들어 내는데 큰 도움이 될 것 같습니다.
Silverlight 5는 현재 베타 버전의 런타임과 개발 툴을 다운로드 받을 수 있습니다.
작년 11월 Silverlight Firestarter에서 발표했던 일정대로 잘 진행되고 있습니다. 조만간 RC 버전의 발표 후에 올해 안에 강화된 미디어 기능과 Full 3D가 가능한 Silverlight 5를 만날 수 있게 될 예정입니다.
<Silverlight 5 출시 일정>
윈도우폰망고_개발문서_v1.1.pdf
댓글을 달아 주세요