본문 바로가기

마이크로소프트웨어

윈도우7이 여는 새로운 개발자 세상

윈도우7(Windows7)은 개발자들에게 어떤 의미일까. 개발자들은 사용하기 쉽고 시각적으로도 매력적이며, 뛰어난 성능을 갖춘 애플리케이션을 만들기 원한다.

윈도우7은 그 해답이 될 수 있다.

멀티터치는 물론이고 다이렉트X11, 센서API 등을 통해 애플리케이션을 하드웨어 환경과 긴밀하게 연동시킬 수 있다.

특히 짧은 기간 동안에 고급 기능을 구현하기 위해 개발자들을 위한 전폭적인 지원이 다채롭다.

유래 없는 다양한 API 지원과 단순화된 SDK로 “개발이라고 보기 민망하다”는 농담까지 오갈 정도다. 그럼 윈도우7에서 펼칠 수 있는 여러분의 상상력은 어느 정도일까.

서명덕 smashhit@naver.com|세계일보 및 조선일보 등을 거쳐 주요 언론사에서 IT 업계 취재를 해왔다. 개발자들 사이에서는 ITView point 공동 편집자로 아이디 ‘떡이떡이’로 더 잘 알려져 있다. 한국MS의 데스크톱 익스피리언스 부문 MVP로 3년 째 활동하고 있다. 윈도우 클라이언트 OS 기술에 관심이 많다.

이제 개발자들은 사용자 경험과 콘텐츠 형태를 예단할 수 없다.

모든 윈도우 사용자들은 서로 연결되고 있다.

많은 사람들이 모바일 환경에서 콘텐츠 소비를 원하고 있을 뿐만 아니라, 자연 친화적인 인터페이스를 갈망하고 있다.

각종 미디어들의 그래픽 화면은 개발자들의 욕구를 자극한다. 성능과 유연성, 그리고 상호운용성 확보도 화두다.


왜 윈도우7인가 - 개발자들을 위한 장점들

결국 개발자들은 더 많은 시간과 리소스가 필요하고 다양한 예상 시나리오와 구현 모델을 고려해야 한다.

윈도우7 플랫폼과 윈도우7 API가 개발자들에게 매력적인 환경을 제공해줄 수 있을 것인가는 올 하반기 최대 이슈가 될 가능성이 높다.


HW 및 SW 호환성 강화

공식 자료에 따르면 윈도우7은 윈도우 비스타를 기반으로 한 업그레이드 플랫폼이다. 따라서 지난 3년의 과정을 거쳐 애플리케이션 호환성 문제를 해결해 왔다.

개발자는 프로그램 호환성 문제는 최소화하면서도 양쪽 환경에서 적절히 동작하도록 구현할 수 있다.

하드웨어 호환성도 개선됐다. 윈도우 비스타에서 동작하는 드라이버라면 사실상 윈도우7 환경에서도 문제가 없다.

MS는 윈도우7 기반 하드웨어 개발자를 위해 윈도우 드라이버 키트 3.0(Windows Driver Kit 3.0)을 마련, 개발에 필요한 빌드 환경, 도구, 문서 및 샘플을 제공한다.

PREfast를 사용해 특정 클래스의 C/C++ 코딩 오류를 검색할 수 있다.

파워쉘 및 인스톨러 업그레이드

윈도우 파워쉘 2.0(Windows PowerShell 2.0)은 일반 커맨드 라인과 그래픽 통합 스크립트 양쪽에서 사용할 수 있는 닷넷(.NET) 관리 스크립트 환경이다.

이를 통해 분기, 루프, 함수, 디버그, 예외 처리는 물론이고 국제화 기준에도 적합한 작업을 유지할 수 있다. 또한 윈도우 진단 기능, 액티브 디렉토리, IIS 등을 위한 기능도 대폭 강화됐다.

윈도우 인스톨러(Windows Installer)도 눈길을 끈다.

신형 인스톨러는 설치 패키지를 생성하기 위한 사용자 지정 코드 총량을 줄여 개발자들이 불필요한 작업을 최소화할 수 있도록 했다.

다중 패키지 트랜잭션 기능을 통해 설치 패키지 중에서 적절히 설치되지 않았던 패키지가 단 하나라도 있으면 설치가 되돌아가도록 했다.

이 밖에도 사용자마다 각각 다른 프로그램 파일을 설치하는 기능도 있으며, 개별 권한을 승격하는 기능 등 진정한 의미에서 사용자 단위의 설치가 가능해졌다는 평가다.


입맛대로 조절 가능한 보안

보안 기능은 윈도우 비스타에 이어 윈도우7에도 강조된 부분 중 하나다. 애플리케이션의 보안을 손쉽게 개선할 수 있고, 공격을 당했다 하더라도 피해를 최소화할 수 있다.

특히 윈도우 필터링 플랫폼이 강화되어 개발자들은 OS의 네트워킹 스택 패킷 처리부와 상호작용을 하는 애플리케이션을 생성할 수 있다.

개발자가 방화벽 기능을 보다 세밀하게 제어할 수 있으며, 방화벽 개발자는 윈도우 방화벽의 일부분을 선택적으로 유효 또는 무효화할 수 있다.

사용자 계정 콘트롤(UAC)은 윈도우 비스타에 이어 윈도우7에 적용된 대표적인 보안 구성요소다.

사용자 수준은 표준사용자와 관리자 두 가지가 있다.

애플리케이션 개발자는 이 기능을 이용해 일반 작업을 관리자 대신 표준사용자로 실행시킬 수 있다.

로컬 관리자 그룹에 속한 사용자 계정의 애플리케이션은 대부분 표준사용자로서 실행하게 된다.

소프트웨어 보호 영역에 대해서 사용자가 가지는 접근권한을 세밀하게 제어할 수 있다.

절전

절전 및 성능 향상은 윈도우 비스타에 비해 두드러지는 윈도우7의 장점이다. 퍼포먼스를 유지하면서도 하드웨어 에너지 효율 및 확장성을 극대화했다.


예를 들어 에너지 효율을 높이기 위해 OS의 백그라운드 활동을 줄이고, 시스템 서비스가 시작될 때 트리거를 새롭게 구현했다.

특정 서비스가 부팅에 반드시 필요한 것이 아니면 시작되어서는 안 되고, 특정 조건에서 동작토록 하는 트리거가 존재한다.

또한 특정 종류의 장치가 시스템 위에 존재하거나 접속했을 때만 서비스를 시작하도록 하거나 시스템이 윈도우 도메인에 있을 때만 서비스를 시작할 수 있도록 했다.

이 밖에도 윈도우7은 프로세서가 유휴 상태로 변하는 빈도와 시간을 최대한 많이 확보해 전력 소비를 억제하며, 네트워크 어댑터, 저장장치, 그래픽 카드 등 에너지 효율 기능이 있는 최신 기능을 반영했다.

이를 통해 MS는 절전모드를 부팅의 대체 수단으로 권장한다.


XPS 문서규약

문서와 문서 주변기기에 대한 지원도 개발자들이 눈여겨 볼만한 부분이다.

윈도우 비스타에서는 문서규약 및 저장을 위해 오픈 패키징 변환(Open Packaging Conventions)과 XML 문서 양식(XPS)이 구현됐다.

오픈 패키징 변환은 MS뿐만 아니라 경쟁사의 모든 오픈 패키징 변환 파일 형식을 지원하도록 한 것이다.

이는 ISO·ECMA에서 국제 표준으로 합의된 OOXML 규약이다.

특히 ZIP 파일 형식 기반이기 때문에 애플리케이션에서 다양한 데이터 항목을 단일 파일 패키지에 담을 수 있다.

개발자들은 윈도우7 패키징 API만 사용할 수 있으면 된다.

XPS 문서도 윈도우 비스타에 이어 윈도우7에서 크게 달라진 부분 중 하나다.

윈도우7에서는 애플리케이션 개발자가 XML 문서 규격의 생성에 대응하는 애플리케이션을 고안할 수 있다.

윈도우XP 등 구형 OS에서는 XPS를 이용하기 위한 Win32 API가 지원되지 않았다.

윈도우 비스타에서는 XPS가 처음 도입됐지만 API가 매니지드 코드를 사용한 닷넷 개발자로 한정됐었다.

윈도우7에서는 Win32 개발자가 더 쉽게 XPS를 다룰 수 있는 XPS 문서 API를 제공한다.

멀티터치, 제스처, 문자인식

일반 사용자들 사이에서도 관심거리인 멀티터치 API는 손가락의 움직임만으로 인간 친화적인 사용 환경을 구축할 수 있도록 했다.

윈도우 시리즈가 화면을 직접 만지는 ‘멀티터치’를 이용해 컴퓨터를 제어하는 것은 이번이 처음이다.

개발자를 위해서는 상위 레벨의 제스처 API와 하위 레벨의 터치 메시지 API 및 터치입력 API가 내장되어 있다.

또한 윈도우 주요 UI 역시 마우스 대신 손가락으로 선택하기 쉽도록 재설계됐다.

윈도우 탐색기나 IE8 등 주요 애플리케이션 역시 터치 사용 환경에 맞춰져 있다.

특히 터치와 제스처 기능이 강화되어 마우스 클릭이나 드래그로만으로 할 수 없었던 독특한 애플리케이션 제어를 정의할 수 있다.

개발자들은 멀티터치 API를 통해 확대·축소·회전 등 다양한 제스처를 기본 지원한다.

이 밖에도 윈도우7에 적용된 관성 API는 조작 API와 함께 물체 이동에 사용되는 물리적 관성을 시물레이션 해준다.

또한 확장된 터치 API를 이용하면 애플리케이션에 드래그 대신 패닝을 채택할 수 있다.

애플 아이폰과 마찬가지로 사용자가 손가락 끝을 살짝 움직이는 것만으로도 연속 동작이 가능하도록 설계할 수 있다는 의미다.

태블릿 PC를 위해 화면에 직접 쓰는 기능도 대폭 강화됐다.

자필 입력시 속도를 개선했고, 언어와 관계없이 개인화 및 사용자 지정 사전에 따라 정확도를 높였다.

이렇게 되면 한국어 등 동아시아 언어의 인식 기능이 획기적으로 향상된다. 수식인식 엔진(Math Recognizer) 기능을 통해 사용자는 애플리케이션에서 수식을 자필로 입력할 수 있다.

잉크 분석(Ink Analysis) API는 잉크 애플리케이션을 개발할 때 작업이 한층 쉬워진다. 하드웨어 환경이 급격히 진화하면서 이러한 API를 활용한 주변기기들도 잇달아 쏟아질 것이다.


작업표시줄, 점프리스트

데스크톱 사용 환경도 확 달라졌다. 아이콘 형태의 작업 표시줄은 윈도우7 시험판의 상징처럼 자리 잡았다.

마치 애플 맥 OSX 바탕화면의 독 기능을 연상케 하는 새 디자인은 일반 사용자들 사이에서 화제가 됐었다.

예를 들어 각 프로그램 단추들은 점프리스트 클릭 한번만으로 사용 빈도가 높은 작업에 한 번에 옮겨갈 수 있다.

점프리스트에는 애플리케이션에서 열리는 파일, URL, 사용자 지정 아이템 등이 표시된다.

점프리스트 메뉴에는 사용 빈도와 최종 접속 정보에 따라 자동적으로 항목이 표시되며, 개발자들은 독자적인 의미 체계에 따라 사용자 패턴에 최적화된 점프리스트를 제공할 수 있다.

이 밖에도 새 작업 표시줄은 애플리케이션의 진행상황 막대를 직접 표시할 수 있게 됐다.

파일의 복사, 다운로드, 설치 등 시간이 걸리는 작업을 일반 사용자들이 직관적으로 모니터링할 수 있도록 해준다.

또한 개발자들은 미리보기 API를 이용해 애플리케이션의 하위 작업창을 별도로 두는 방식으로 미리보기 이미지를 정의할 수 있다.

게다가 단순히 ‘미리보기’만 구현되는 것이 아니라 미리보기 창속의 도구막대에 미디어 재생·정지 등 활용 빈도가 높은 액션을 넣을 수 있다.

리본, 가젯

메뉴 개발도 쉬워졌다. 리본 인터페이스를 위한 컨트롤과 API를 이용하면 오피스 2007에서 선보인 UI를 애플리케이션 개발에 활용할 수 있다.

그 동안 개발자들을 괴롭혔던 천편일률적인 Win32 메뉴 UI에서 벗어나 마크업 기반의 UI와 고성능 네이티브 코드 런타임을 사용해 색다른 인터페이스를 구현하게 된다.

개발자들은 리본 컨트롤을 활용, 접근 빈도가 높은 기능에 최종 사용자가 직접 클릭할 수 있도록 해서 사용성을 높일 수 있다.

애니메이션 프레임워크 및 가젯 플랫폼 기능도 다채로워, 애플리케이션 개발시 고급 기능으로 채택·연동할 수 있다.

예를 들어 프로그램을 설치하거나 처음 실행할 때 OOBE(Out-Of-The-Box Experience)에 체크 박스를 하나 추가하는 것만으로도 최종 사용자들이 가젯을 설치하도록 유도할 수 있다.


라이브러리, 페더레이션 검색

윈도우7에서는 개발자들이 파일 및 데이터 관리 기능과 연동하기가 더 쉬워진다.

새 API를 통해 파일의 메타정보를 이용할 수 있고, 라이브러리 모델을 통해 독창적인 정보를 윈도우 탐색기에 전달할 수 있다.

‘라이브러리’란 사용자의 저장소 공간을 폴더보다 한층 더 추상화된 형태로 표현한 것이다.

한마디로 표현하면, 폴더에 대한 중앙 출입구라고 생각하면 쉽다. 정보가 집약된 가상 장소로서 개발자나 최종 사용자가 각종 미디어 데이터를 정리할 수 있다.

그러나 공간적인 경계는 없기 때문에 파일을 한 곳에 모아 둘 필요가 없다. 라이브러리 API를 사용하면, 라이브러리를 생성, 상호작용하는 애플리케이션을 쉽게 만들 수 있다.

윈도우 비스타에 이어 검색 기능이 강화된 것은 주목해야 할 부분이다. 윈도우7에서는 PC라는 경계선을 넘어 횡단으로 문서 자료를 검색(페더레이션 서치)할 수 있다.

개발자들은 윈도우7에서 검색되는 범위에 자체 검색엔진이나 문서 저장소(repository), 웹 애플리케이션, 독자적인 데이터 저장소 등을 넣을 수 있다.

이를 통해 사용자는 기업 인트라넷이나 웹으로부터 로컬 파일을 검색하는 것처럼 통합된 검색 결과를 도출할 수 있다.

다이렉트X 11

다이렉트X 11을 통한 고해상도 그래픽 구현도 윈도우7의 핵심 중 하나다.

윈도우 애플리케이션 개발자들은 하드웨어 가속 기능과 다이렉트X 기술을 통해 고급 3D 그래픽을 구현할 수 있었다.

다이렉트X는 지난 1995년 처음 발표된 후 발전을 거듭한 끝에 윈도우 비스타에서 애플리케이션이나 서비스에 GPU 리소스를 공유하는 윈도우 디스플레이 드라이버 모델(Windows Display Driver Model)을 도입했다.

데스크톱 윈도우 매니저(DWM)는 이 기술을 이용해 애플리케이션의 동적 작업을 도와주거나, 윈도우 에어로글래스 효과를 구현했다.

버전 11의 API에서는 신형 LCD 모니터에서 8 bpcc(bits per color component) 해상도로 콘텐츠를 표시할 수 있다.

이미지 처리 등 일반 연산에도 GPU 병렬처리를 사용하며, GDI 및 GDI+와도 상호운용을 할 수 있도록 설계됐다.

예를 들어 다이렉트X와 GDI를 모두 사용하여 렌더링을 시도하는 경우 DWM을 무효로 처리하지 않아도 자유롭게 양 쪽 기술을 사용할 수 있다.

다이렉트X의 새 구성요소인 다이렉트라이트(DirectWrite) API는 ‘모든 폰트를 모든 장소에서’ 사용 가능하게 하는 폰트 시스템이다.

GDI나 다이렉트2D 또는 애플리케이션 고유의 렌더링 기술을 사용한 고품질 클리어타입(ClearType) 텍스트 렌더링을 지원한다.

일반 사용자들이 글꼴들을 더 예쁘게 사용할 수 있다는 의미다.


미디어 파운데이션

윈도우 비스타에서 처음 도입된 미디어 파운데이션과 다이렉트 쇼(DirectShow) 기술의 변화도 크다. 특히 미디어 파운데이션의 경우 비디오 갈무리 장치나 하드웨어 코덱 지원을 비롯해, MPEG-4·H.264·MJPEG·MP3 코덱 등 지원되는 규격이 크게 늘어났다.

또한 다이렉트쇼와 미디어 파운데이션을 중개해주는 새 소스도 추가됐다. 이를 이용하면 미디어 파운데이션 대응 애플리케이션으로서 네이티브 환경에 대응하지 않는 기존 미디어 형식들을 재생할 수도 있다.

또한 윈도우 비스타에서 공개된 미디어 파운데이션 API보다 한층 더 나아가 C++ 기반 미디어 애플리케이션 제작을 손쉽게 하는 고급 수준의 API가 추가됐다.

예를 들어 비디오 및 오디오 재생을 위한 MFPlay, 미디어 파일 데이터 취득을 위한 Source Reader, 비디오 파일 재인코딩 등이 손쉬운 Sink Writer, 인코딩 시나리오 구현을 위한 Transcode 등이다.

센서 플랫폼

센서 플랫폼은 멀티터치와 함께 윈도우7 API 중에서 가장 흥미로운 영역이 아닌가 싶다.

특히 센서 플랫폼은 센서 장치의 검색과 통신에 필요한 API들을, 로케이션 플랫폼은 GPS 수신기 등의 서비스에서 얻은 위치 데이터를 이용하기 위한 API로 구성되어 있다.

윈도우7에서는 센서가 네이티브 수준에서 지원되어, 위치센서·광센서·온도계 등 각종 센서를 제어하기 위한 새로운 개발 플랫폼이 도입됐다.

윈도우 로케이션 API를 통해 개발자들은 사용자의 물리적인 위치 정보에 직접 접근할 수 있다.


브랜치캐시, 인터넷 익스플로러8

윈도우7에는 웹을 구현하기 위한 기술이 긴밀하게 녹아있다는 점도 주목할 만하다.

네트워크에 접속하거나 유지하는 과정이 쉬워지며, 네트워크 진단 정보 등을 애플리케이션 개발자들이 제어할 수 있다.

윈도우 웹 서비스는 SOAP의 네이티브 코드를 구현했다. 다양한 웹 서비스 프로토콜을 지원해 네트워크 통신이 가능하다.

특히 윈도우 클라이언트·서버의 네이티브 코드 웹 서비스를 C/C++로 구축할 수 있다. 또한 WCF(Windows Commun ication Foundation) 서비스와의 폭넓은 제휴가 가능하다.

윈도우 브랜치캐시(Windows BranchCache)를 통해 서버와 클라이언트 사이의 애플리케이션 응답이 강화됐다.

네트워크 교신과 지연을 줄일 수 있다는 의미다.

또한 윈도우7에는 인터넷 익스플로러8이 기본 탑재되어 있다.

EU 지역에 출시될 제품에는 IE8이 선택사양으로 바뀔 예정이지만, 여전히 IE는 윈도우 운영체제의 웹 관문 역할을 수행하고 있다.

이번에 바뀐 IE8은 웹 표준 및 상호운용성이 강조되어 개발자가 렌더링 모드를 페이지 단위로 선택할 수 있다.

또한 개발자 도구를 기본 내장하고 있어 웹 개발을 보다 빨리 진행할 수 있다.


윈도우7, 성공할 수 있을까

윈도우7 개발환경은 윈도우XP나 윈도우 비스타에 비해 장점이 많다.

그러나 윈도우7 개발 플랫폼에 대한 전망만큼이나 3년 만에 재기를 노리는 MS 클라이언트 OS가 시장에 안착할 수 있을 것인가에 관심이 쏠릴 것이다.

윈도우7이 성공하지 못한다면 개발 플랫폼으로서의 의미도 퇴색될 수밖에 없다.

새 플랫폼에 대한 우려는 크게 아톰 기반 저성능 넷북 제품군의 성공적 세대교체와 XP 호환성 위주로 고착화되어 있는 비즈니스 시장 진입이 가능할지 여부 두 가지로 나뉜다.

윈도우7은 넷북 기반의 테스트에서 성능이 어느 정도 검증된 상태다.

또한 윈도우XP 가상화 모드를 제공해 윈도우7에 호환되지 않는 구형 하드웨어를 보유했거나 구형 소프트웨어를 운용하는 기업들이 옮겨갈 길이 트였다.

다만 가상화 모드의 경우 가상화 기술을 지원하는 중앙처리장치를 사용해야 한다. 가격 경쟁력만 갖춘다면 윈도우7에서 윈도우XP로 다운그레이드하는 움직임은 크게 줄어들 것으로 보인다.

1만7,777달러 내건 윈도우7 개발자 행사

코드7콘테스트(Code7Contest, http://www.code7contest.com) 행사가 지난 7월 13일부터 공식 시작됐다.

MS 본사가 주최하는 이 행사는 윈도우7에 최적화된 애플리케이션을 개발하는 경진대회다.

이벤트에 참여하기 위해서는 윈도우7 네이티브 환경에서 MS가 제시한 윈도우7 주요 기술(Libraries, Windows Touch, Shell Integration, DirectX 11, Sensor and Location Platform) 중 일부를 사용해 독창적인 소프트웨어를 제작해야 한다.

단순한 사이드바 가젯이나 에어 애플리케이션은 참여할 수 없다.

결과물은 영어를 사용해야 하고, 일찍 제출하면 단계별로 추가 보너스도 주어진다.

미국, 유럽, 중국, 일본 등 전 세계 7개 지역에서 7개 결선 진출팀을 가린다.

최종 우승자에게는 1만7,777달러의 상금과 오는 11월 로스앤젤레스에서 개최되는 PDC 2009 행사에 무료 초청을 받게 된다.

예심 마감시한은 10월 10일이다.

참고자료

1. MSDN Windows 7 개발자 가이드 (2009년 1월)

2. Windows 7 RC Training Kit for Developers (2009년 6월)

3. Windows Developer Jumpstart Kit v 1.1 DVD

4. Developer for Windows 7 on MSDN

http://msdn.microsoft.com/en-us/windows/dd433113.aspx 

5. Windows 7 Application Compatibility

http://msdn.microsoft.com/en-us/windows/aa904987.aspx 

6. Windows7 API Code Pack for Microsoft .NET Framework

http://code.msdn.microsoft.com/WindowsAPICodePack

7. Windows7 for Developer Official Blog

http://windowsteamblog.com/blogs/developers/default.aspx

8. MSDN Inside Windows 7 - Introducing Libraries

http://msdn.microsoft.com/ko-kr/magazine/dd861346(en-us).aspx

9. MSDN Inside Windows 7 - Windows 7 Taskbar APIs

http://msdn.microsoft.com/ko-kr/magazine/dd942846(en-us).aspx

10. Engineering Windows 7 Blog (한글 번역)

http://blogs.msdn.com/e7kr/

11. Engineering Windows 7 Blog (영문)

http://blogs.msdn.com/e7

12. Windows on Channel 9

http://channel9.msdn.com/windows/

13. 한국MS 에반젤리스트 IT 팀블로그

http://blogs.msdn.com/eva


>>출처 | 아이마소