외규장각 도서 환수 모금 캠페인
어제 COEX에서 있었던 Windows Embedded Developer Conference(이하 컨퍼런스)에 다녀왔다. 아무래도 하는 일이 PMP, 전자사전 등의 모바일 기기에 DRM 모듈을 개발, 탑재하는 일이고 플랫폼도 WinCE가 다수다보니 일과 관계가 되어있었고 개인적으로도 모바일 플랫폼에 관심이 많기 때문에 어떤 정보가 있는지 궁금해서 다녀오게 되었다.

현장등록

세션 소개

모여있는 사람들

10시부터 현장등록이 시작되었고 10시반쯤부터 키노트가 시작되었다.

MS 관계자의 키노트

데모 시연중인 뽐뿌맨(서진호차장)님

윈도 임베디드 솔루션 로드맵 설명중

키노트의 내용은 간단했다. MS는 임베디드 플랫폼에 많은 투자를 하고 있으며 향후 WinCE, WinXPe, WinXPe POS 등의 솔루션이 윈도 임베디드라는 이름으로 통합되어 출시된다는 얘기다. WinCE 7.0은 Windows Embedded Compact, WinXPe는 Windows Embedded Standard, 윈도 2000 임베디드 제품군 등은 Windows Embedded Enterprise 등으로 모두 윈도 임베디드라는 제품에 통합되어 출시된다는 얘기다.

또한 키노트와 각 세션들을 보니 MS가 윈도 임베디드쪽에 많은 투자를 하고 있으며 특히 WinXPe에 더 많은 투자를 하고 있다는 생각이 들었다. WinXPe에 서비스팩 3를 합하여 Windows Embedded Standard로 내놓고 향후 윈도 비스타나 윈도 7을 임베디드 플랫폼으로 만들게 되는 윈도 임베디드 퀘백(코드명이 그렇단다)을 내놓는다고 하니 MS는 임베디드 플랫폼 중에서 좀 상위층 플랫폼에 집중하는거 같다는 생각이 들었다.

MS는 임베디드 플랫폼으로 WinCE와 WinXPe, 그리고 .NET micro framework를 보유하고 있다. 각 플랫폼은 그 대상이 모두 다르다.

WinCE는 다양한 플랫폼을 지원한다. 아마도 MS에서 본격적으로 시작한 임베디드 플랫폼은 WinCE가 아닐까 싶다. 지금의 MS가 멀티미디어 모바일 제품에서 선풍적인 인기를 끌고 있는 플랫폼도 WinCE인데 버전이 올라갈수록 지원되는 CPU 및 칩셋이 많아지고 개발툴이 좋아져서 지금의 점유율을 지니게 되었다. 현재 한국의 대부분의 PMP 및 네비게이션에는 WinCE가 기본 플랫폼으로 탑재되어 있고 WinCE를 기반으로 만든 스마트폰용 플랫폼 윈도 모바일은 지금 모바일 플랫폼 중에서 상위권을 차지할 만큼 선풍적인 인기를 끌고 있다. ARM, MIPS 및 텔래칩스 플랫폼까지 지원하는 WinCE는 내가 생각하기에 명실공히 MS의 임베디드 플랫폼을 이끌고 있는 리더다.

.NET micro 프레임워크는 어찌보면 OS라고 보기는 애매하지만 일단 그 자체로 부팅도 되고 동작도 되는 것으로 봐서 임베디드 플랫폼이라고 봐야 할 것이다. File I/O가 지원되지 않고 스팩이 상당히 작기 때문에 사용할 수 있는 대상 역시 한정되어 있지만 아주 간단한 임베디드 모듈에는 꽤나 훌륭하게 적용할 수 있는 플랫폼이다. C#이라는 언어를 사용할 수 있다는 것이 매우 큰 매리트라고 할 수 있을 것이다.

WinXPe는 윈도 XP를 임베디드 모듈화 시켰다. 무려 12000가지의 모듈로 분리했다고 하는데 OS 이미지를 만들때 필요한 모듈만 골라서 윈도 XP를 만들 수 있다는 장점이 있다. 뭐 일단 윈도 XP 커널을 그대로 사용하고 있으며 윈도 XP에서 사용하는 모든 프로그램을 수정없이 사용할 수 있다는 장점이 있다. 그리고 거기에 임베디드 모듈에 맞는 컨퍼넌트도 추가되었다. WinXPe는 WinCE와는 달리 인텔계열 CPU 및 칩셋에서만 동작한다. 윈도 XP를 그대로 가져왔기 때문에 어쩔 수 없는가 보다. 향후에 나올 윈도 비스타와 윈도 7의 임베디드 버전도 아마도 인텔 칩셋만 지원할 듯 보인다. WinXPe는 그 사용처가 일반 PC를 갖다놓고 사용하기에는 애매한 위치에 PC와 비슷한 임베디드 환경을 꾸미고 거기에 돌리는 플랫폼이라고 할 수 있다. 예전에 문제가 되었던 도박게임인 바다이야기가 WinXPe도 돌렸다고 하니 얼추 사용처가 눈에 보인다. WinXPe POS는 WinXPe를 어떤 산업체에 맞도록 수정한 버전으로 음식점 등에서 사용하고 있는 POS 시스템에 적합한 플랫폼으로 각광받고 있다.

나는 아무래도 모바일 기기쪽에 관심이 있고 하는 일 역시 그쪽이다보니 WinXPe보다는 WinCE쪽에 더 관심이 가게 되는데 이번 컨퍼런스에서는 초점이 WinCE보다는 WinXPe쪽으로 맞춰져있다는 생각이 들었다. 저번 컨퍼런스에서는 WinCE쪽이었는데 MS 입장에서도 모바일 기기나 멀티미디어 기기쪽 보다는 더 엔터프라이즈 레벨의 산업을 대상으로 잡고 임베디드 플랫폼 전략을 가져가는게 아닌가 하는 생각이 들었다.

물론 WinXPe, 그리고 그 이후의 Windows Embedded Standard가 차지하는 비중이나 앞으로의 가능성이 크다는 것은 안다. POS 시스템 뿐만 아니라 대부분의 시스템이 전자동화되고 임베디드 시스템화 되어가는 세상에서 WinCE로 감당할 수 없는 대용량 및 고속처리 시스템에는 WinXPe가 적합한 플랫폼이기 때문이다. 지하철 전광판이나 비행기 전광판 등의 전광판 시스템, 대형 옥외 배너 광고 시스템 등 그 규모가 크고 처리할 용량이 많은 시스템에는 WinCE보다는 WinXPe가 더 적합하다. 또한 타블렛 PC 등에도 WinXPe를 사용하는 경우가 있기에 WinXPe의 활용폭은 점점 넓어지고 있는 추세다.

하지만 모바일 기기도 점점 그 기능이 다양해지고 성능이 높아져가고 있는 추세에 있다. WinCE의 중요성도 WinXPe만큼이나 점점 높아져가고 있다고 보인다. 당장에 윈도 모바일은 스마트폰 플랫폼 시장에서 심비안과 구글의 안드로이드, 애플의 아이폰 OS X와 각축전을 벌이고 있으며 PMP, 자동차 네비게이션, 전자사전, PDA 등에서 WinCE의 점유율이 점점 높아져가고 있는 추세에 있다. 또한 WinXPe가 인텔 계열의 칩셋만을 지원하는데 비해 WinCE는 ARM, MIPS 등 다양한 칩셋을 지원하기 때문에 그 활용폭도 넓다. 그렇기에 MS는 WinXPe보다는 WinCE에 더 초점을 맞춰야 하지 않을까 개인적으로 생각하고 있다. WinCE를 WinXPe급에까지 성능개선을 이룬다면 지금보다 더 점유율을 높힐 수 있지 않을까 하는 생각도 해본다.

솔직히 3개 트랙, 9개의 세션이 있는데 그 중에서 3개를 들었지만 그닥 눈에 들어오는 세션은 없었다. 얼추 다 알고 있는 내용이기 때문에 좀 지루했다는 생각이 든다. 다만 3번째 트랙 2번째 세션의 디버깅 관련 내용은 어느정도 득이 될만한 내용이었다.

영어로 설명하고 있는 도중에 나가고 있는 사람들(^^)

키노트 후 영어로 하는 세션이 있었는데 사람들이 듣다가 점심시간에 맞추어 일찍 나가는 모습과 함께 이번 컨퍼런스의 최고의 세션인 점심식사를 끝으로 간단한 후기를 끝낼까 한다. ^^;

컨퍼런스 점심식사로 나온 돈까스

저번 컨퍼런스때도 느꼈지만 컨퍼런스 최고의 세션은 단연 점심식사 세션이다. ^^;

이 블로그에서는 나눔글꼴을 사용하고 있습니다. 제대로 즐기실려면 글꼴을 설치해서 보세요. ^^

댓글을 달아 주세요

  1. BlogIcon 뽐뿌맨  수정/삭제  댓글쓰기

    앗!! 오셨으면 전화를 하시징~ 바빠가지고 연락도 못 드렸네요~
    역시 학준님은 스피치 능력이 대단하셔!! 모든 것을 다 받아 적으시다니 ^^

    2008/10/07 12:39
  2. BlogIcon 태현  수정/삭제  댓글쓰기

    오늘의 뽀~인트는 돈까스군요. =)

    2008/10/07 19:21
    • BlogIcon 학주니  수정/삭제

      그렇습니다. 컨퍼런스의 포인트는 바로 돈가스였습니다 ^^

      2008/10/08 09:08

사용자 삽입 이미지
저번주에 MS에서 주최한 Windows Embedded Developer Conference를 다녀와서 여러가지 생각이 많이 들었다. MS가 윈도를 이용하여 PC OS 환경에서는 천하통일을 한 상태고 서버 시장에서도 이제는 윈도 서버가 유닉스 서버에 근접할 만큼 점유율을 높혀놓은 상태다. 즉, OS라는 분야에 있어서 MS, 그리고 윈도가 차지하는 비중은 PC, 서버 다 합쳐서 본다면 절대급까지는 아니지만 거의 절대급에 가까이 있으며 MS는 이런 위치를 이용하여 새로운 분야에까지 그 비중을 늘릴려고 하고 있다고 본다.

현재 MS가 바라보고 있는 분야는 역시나 플랫폼 분야일 것이다. OS도 플랫폼의 한 종류로 봐야 할 것이며(엄밀히 따지면 플랫폼보다 더 큰 개념이기도 하지만) 현재 MS가 집중하고 있는 분야 역시 플랫폼이라 본다. 플랫폼에는 Runtime이라 불리는 실행 플랫폼이 있을 것이며 또한 개발환경도 플랫폼에 들어간다고 본다.

이미 MS는 각 PC에서 기본 운영체제도 돌아가고 있는 윈도를 보유하고 있다. 또한 Visual Studio라는 윈도용 응용프로그램을 만들 수 있는 개발환경을 보유하고 있다. 하지만 앞으로는 윈도와 Visaul Studio만으로는 우위를 점하기 어려운 세상이 올 듯 싶다. 바로 인터넷으로 대변되는 차세대 네트워크 플랫폼과 PC를 떠나 Non PC, 이름하여 임베디드 디바이스들이 점점 각광을 받고 있기 때문이다. 이제는 사람들이 PC환경와 유선환경에서 벗어나서 PMP, PDA, UMPC, 휴대폰 등의 무선환경에서 자유롭게 이동하며 사용할 수 있는 디바이스들을 선호하게 될 것이라는 것이 대부분의 전문가들의 이야기다. MS 역시 이것을 모를리가 없을듯 싶다.

인터넷과 임베디드 디바이스 플랫폼에 MS의 미래가 달려있다고 해도 허황된 이야기는 아닐 것이다. MS가 구글을 왜 그렇게 경계하는지를 보면 점점 사람들의 IT 트랜드가 오프라인 PC 환경에서 온라인 환경으로 옮겨가고 있다는 것을 알았기 때문이라 생각한다. 또한 이제는 어느 한곳에 고정되어 있는 것이 아니라 자유롭게 옮기면서 작업을 할 수 있는 세상이 오게 되었으며 거기에는 임베디드 디바이스가 자리잡고 있다고 본다. 물론 계속 PC, 서버용 OS가 출시될 것이다. 윈도 비스타의 서비스팩도 2, 3으로 계속 나올 것이며 서버 2008 이후의 서버 OS도 나올 것이며 비스타 후속 OS인 윈도 7 역시 개발중이라고 하니 데스크탑용 OS는 MS의 큰 기둥으로서의 역할을 할 것이다. 하지만 MS도 내부적으로 계속 변화하고 있다는 생각이 든다.

서론이 길었지만 이번 컨퍼런스를 보면서 MS가 임베디드 분야에 투자하는 것이 매우 많다는 것을 느꼈다. 임베디드용 윈도는 대표적으로 Windows CE(WinCE)가 있으며 고사양급인 WIndows XP Embedded(WinXPe)가 있다.

또한 이들로부터 파생된 각 디바이스 종류별 OS도 다양하다. 워낙 임베디드 디바이스들은 그 종류에 따라서 기능들이 다르고 성격들이 다르니 똑같은 OS로는 제대로 성능을 발휘하기 어렵기 때문에 성격에 따라서 내용을 다르게 만드는거 같다. 대표적인 것이 휴대폰용 OS인 윈도 모바일이 될 것이다. WInCE를 기반으로 휴대폰과 PDA폰에 맞도록 커스터마이징이 된 OS다. 국내외 스마트폰에 많이 탑재된 OS며 노키아의 심비안, 구글의 안드로이드 등과 현재 열심히 경쟁중이다.

사용자 삽입 이미지
그리고 WInXPe를 기반으로 만든 Windows XP Embedded Point of Service(WinXPe POS)라는 OS도 있다. 서비스의 성격에 맞춰서 개량한 OS다. 실제로 WInXPe는 WinCE보다 높은 고사양의 임베디드 디바이스에 들어가는 OS며 거의 PC급을 요구하는 경우에 많이 쓰인다. Intel의 데스크탑용 CPU만 지원하고 있으며 윈도XP를 컨퍼넌트로 분리하여 임베디드 환경에 맞도록 커스터마이징하고 필요한 컨퍼넌트들만 따로 조합하여 디바이스에 맞도록 OS를 구성해서 쓴다. 구동되는 것도 일반 PC용 OS인 윈도XP와 같다. 즉, PC가 필요한데 PC를 쓰기는 뭐시기한 장소에 PC급 임베디드 디바이스를 만들고 거기에 쓰는 OS가 WInXPe다. 대표적인 것이 예전에 물의가 되었던 게임머신 바다이야기가 WinXPe를 사용하는 것으로 알려졌다. 또한 WinXPe POS도 비슷한 개념으로 쓰이고 있다. 일반 대형 음식점 등에서 사용하고 있는 POS 시스템에 WinXPe POS가 사용되는 것으로 알려지고 있다. 단 WinXPe POS는 WinXPe보다 더 세분화되고 커스터마이징이 되기 때문에 진짜 필요한 기능만 집어넣어서 만들다보니 WInXPe보다 지원되는 기능은 더 적다.

사용자 삽입 이미지
이렇듯 MS는 임베디드 분야에서도 모바일 분야에서의 WinCE(윈도 모바일 포함)와 고정된 사업장에서 사용할 수 있는 더 큰 분야에서의 WinXPe를 보유하고 있으며 점유율 역시 임베디드 시장에서 상당한 수준에 이른다. 일단 국내의 경우 PMP, PDA 등의 이동식 멀티미디어 디바이스에서는 거의 WinCE가 천하통일 하다시피 했다. 일부 저가형 기기에서만 임베디드 리눅스나 뉴클레스 OS를 사용하고 네비게이션은 대부분이 WinCE며 PMP도 이제는 대부분이 WinCE를 채택하고 있다. PDA 역시 WinCE가 70%이상 차지하고 있는 상황이며 스마트폰에서는 대부분이 윈도 모바일을 사용하고 있다고 보면 된다. 일단 모바일 디바이스에서는 WinCE가 거의 절대강자로 꼽히고 있는 상황이다. WinXPe의 경우는 약간 사정이 다를 수 있지만 일단 POS 시스템에서는 대부분이 WinXPe POS를 사용하고 있다고 알려져있다. 전철역의 광고 시스템이나 안내 시스템도 WinXPe를 사용하고 있으며(예전에는 Win98을 직접 사용하여 PC로 돌렸는데 요즘은 WinXPe로 대부분 교체되었다고 한다) ATM기에서도 대부분이 WinXPe를 사용하고 있다고 한다.

이렇듯 미들레벨과 하이레벨에서의 임베디드 OS 시장에서의 MS 윈도는 점점 그 영역을 확고히 하며 점유율을 극대화 시키고 있는 중이다. 그리고 이들 WinCE와 WinXPe가 급격히 확산되었던 배경에는 바로 개발도구의 편리성이 자리잡고 있었다. 다름아닌 Visual Studio의 존재다.

임베디드 프로그래밍을 하는 개발자들이라면 아마도 개발중에 수없이 코피를 쏟아내었던 경험이 있을 것이다. 나 역시 임베디드 모듈을 만드는 개발자로서 또한 예전에는 임베디드 리눅승 위에서 파일시스템과 디바이스 드라이버를 개발했었던 경험에 비춰봤을 때 정말로 개발환경이 안좋아서 힘들었던 적이 한두번이 아니다. 임베디드 리눅스 뿐만 아니라 다른 임베디드 OS(혹은 RTOS) 위에서 개발을 할 때에는 개발 자체 뿐만 아니라 개발 후의 디버깅 작업이 너무 힘들다. PC용 프로그램을 개발할 때에는 눈에 무언가가 보이기 때문에, 또한 디버깅 환경이 너무 좋아서 개발하기 용이했지만 임베디드 환경은 그게 전혀 지원되지 않기 때문에 하나하나 로그를 파일로 남겨서 보던지 시리얼 화면을 통해서 확인하던지 하는 방법을 써야만 했다. 그래서 임베디드 개발자들이 희귀했기도 했다. 다들 안할려고 하기 때문에 말이다.

WinCE 역시 초창기에는 개발환경이 그닥 좋지는 않았다고 한다. 하지만 WinCE를 만들고 지원하는 플랫폼빌더의 성능이 점점 좋아지고 Embedded Visual C++(eVC)의 기능이 점점 개선이 되어서 이제는 PC에서 프로그래밍을 하듯 임베디드 프로그래밍을 할 수 있게 되었다. 게다가 Visual Studio 2005(VS2005)에서 WinCE 프로그래밍을 할 수 있게 지원이 되어서 PC 프로그램 개발하듯 똑같은 개발환경에 디버깅 환경을 제공받을 수 있게 되었다. 실제로 eVC가 Visual Studio 6와 비슷한 개발환경을 제공해주지만 VS2005에서 제공하는 환경은 더 환상에 가깝다. Visual Studio 2008도 VS2005와 마찬가지로 WinCE 프로그래밍을 지원해주니 점점 WinCE 프로그래밍이 간편해지고 좋아지는 것은 당연지사다. 그러니 개발하기 힘든 임베디드 리눅스나 타 임베디드 OS에서 개발하기 편한 WinCE로 넘어오는 것은 어찌보면 당연한 일이라 보여진다. WinXPe 역시 WIndows Embedded Studio라는 eVC와 비슷한 개발환경을 제공한다. 비록 VS2005, VS2008에서는 지원하지 않지만 거의 비슷한 개발, 디버깅 환경을 제공하니 개발자 입장에서는 자기가 친숙한 개발환경에서 임베디드 개발까지 할 수 있다는 장점을 갖추게 된 것이다.

사용자 삽입 이미지
실제로 MS에서 WinCE를 마케팅하면서 꼭 하는 이야기가 바로 WinCE 프로그램을 Visual Studio에서 만들 수 있다는 말이다. 즉, 개발자 입장에서 정말 익숙한 개발환경에서 WinCE 프로그램을 만들 수 있다고 하니 개발자 입장에서는 정말 매력적인 일이라 할 수 있을 것이다. 그러다보니 당연히 개발기간도 줄어들게 되는 부수적인 이득도 있다. 실제로 임베디드 리눅스 등으로 개발하는 것 보다 WinCE로 개발하는 것이 2~3개월 더 줄어든다는 비공식 통계도 존재하고 말이다. Visual Studio 2005 이상에서나 아니면 플랫폼빌더 + eVC의 조합으로 개발하는 것이나 다른 OS에서 개발하는 것보다 훨씬 편한 것은 사실이며 MS는 이것을 전면에 내세우고 마케팅을 함으로 현재 임베디드 OS 시장 1등을 차지하도록 만들었다고 본다.

또한 이번에 .NET Framework의 임베디드 버전들이 버전업되면서 더 안전한 임베디드 프로그래밍을 할 수 있도록 되었다. WinCE에서 제공하는 .NET Compact Framework과 로우레벨 임베디드 시스템에서 사용할 수 있도록 만든 .NET Micro Framework를 보면서 정말 편하게 프로그래밍을 할 수 있겠구나 하는 생각이 들었다. 일반적으로 임베디드 프로그래밍을 얘기하면 C언어를 떠오르며 WinCE용 프로그램 역시 MFC를 이용하기도 하지만 주로 Win32 API를 이용한 프로그래밍들이 대부분이다. 게다가 더 심오한 부분은 어셈블리어를 이용해야 하니 프로그래밍하는 입장에서는 매우 부담스러운 것이 사실이다. 이런 환경에서 C#이라는 고급언어를 사용할 수 있다는 것은 매우 큰 매리트가 된다. 특히나 기존 C나 WIn32 API등에서 문제가 되었던 메모리 관리 및 잘못된 포인터 사용으로 시스템이 뻣는 문제가 C#을 이용한다면 C# Runtime(일종의 VM 개념이다)이 알아서 다 관리를 해주니 프로그래밍 하는 입장에서는 더 안전하고 편리하게 프로그래밍을 할 수 있게 된 셈이다.

사용자 삽입 이미지
이번 컨퍼런스에서 느꼈던 것은 .NET Micro Framework의 존재로 인해 MS는 임베디드 시스템 전방위에서 OS를 다 지원하면서 임베디드 시장까지 천하통일을 노리는구나 하는 부분이었다. 실제로 WinCE는 임베디드 디바이스 중에서도 약간은 고사양을 요구하는 OS다. 요즘은 대부분의 임베디드 칩셋들이 고사양이라 WinCE를 충분히 지원하지만 그렇지 않는 다바이스들도 분명 존재한다. 솔직히 이런 부분에 WInCE에 밀렸던 임베디드 리눅스나 다른 RTOS들이 영역을 넓히고 있는데 이 부분까지 커버하기 위한 것이 바로 .NET Micro Framework다. WInCE정도의 사양을 요구하지 않는 임베디드 디바이스를 위해 만들어진 OS 대용품이라 할 수 있을듯 싶다.

.NET Micro Framework의 사양을 보니 다른 OS 위에서 돌아갈 수 있으며(.NET Framework가 윈도 위에서 올라가는 것 처럼) 단독으로도 사용할 수 있는거 같았다. 즉, .NET Micro Framework 단독으로도 부팅부터 다 제어할 수 있도록 되어있는 것이다. 펌웨어가 동작하듯 사용할 수 있도록 된 듯 싶다. 다만 제약사항이 좀 심해서 시스템적인 부분만 지원하고 파일시스템과 RT(Real Time) 요소는 지원하지 않는다. 그러다보니 제어장치 등에는 사용하기 어렵겠지만 다른 임베디드 OS와 같이 사용하여 MP3P와 같은 작은 장치에서도 사용할 수 있고 또한 단독으로도 충분히 작은 장치에서 사용할 수 있을 듯 보였다. 게다가 C#을 지원하고 개발을 Visual Studio 2005에서 할 수 있으니 더 괜찮아보였다. 제약사항때문에 그 적용대상도 제한이 있겠지만 WinCE의 하위버전으로 사용할 수 있는 충분한 매리트를 느꼈다.

이렇듯 WinCE에 WinXPe, 그리고 .NET Micro Framework까지 MS가 보유하고 있는 다양한 임베디드 OS와 Visual Studio라는 개발 툴까지 MS는 이제 PC 시장뿐만 아니라 임베디드 시장에서까지 천하통일을 노리고 있구나 하는 생각을 하게 되었다. 이미 윈도라는 경험을 갖고 있는 MS와 사용자, 그리고 Visual Studio라는 편리한 개발 툴은 이제 임베디드 개발환경을 더이상 암흑으로 밀어넣는 것이 아닌 양지로 끌어올리고 있다고 생각이 되기 때문이다. MS가 구글에 밀려 인터넷 분야에서는 좀 어려워할 수 있을지 몰라도 기반이 되는 OS 부분을 이렇게 다 먹어버리고 있으니 MS의 진정한 무서움은 여기에 있는게 아닐까 싶다는 생각이 든다.

* 관련 글 *
2008/05/02 - [IT Story/IT 이슈] - Windows Embedded Developer Conference 참석 후기
2008/02/20 - [IT Story/IT 이슈] - MS, 개발 프로그램을 학생들에게 무료로 배포...
2008/01/03 - [IT Story/IT 이슈] - 휴대폰의 진화, 스마트폰에 대한 바램
2007/07/13 - [IT Story/IT 이슈] - 임베디드 OS 시장도 MS가 강세 (WinCE의 점유율 증가)
2007/04/23 - [IT Story/IT 이슈] - 필요한 것만 골라서 척척…맞춤형 OS「윈도우 XP 임베디드」

이 블로그에서는 나눔글꼴을 사용하고 있습니다. 제대로 즐기실려면 글꼴을 설치해서 보세요. ^^

댓글을 달아 주세요

  1. BlogIcon Santiago  수정/삭제  댓글쓰기

    물론입니다. 스티브 발머의 키노트를 본 적이 있는데.. 마이크로소프트의 비젼은 Desktop, Enterprise, Online, Devices 전 시장이라 하더군요. 천하통일을 노리는 곳이 한 두군데가 아니죠. ^^ CE 개발한지.. 3년 정도 되가네요. embedded Visual C++ 가지고 작업할때도 개발 환경에 있어서 충분히 좋았던걸 기억합니다. 그러다 .netCF 초창기 버전가지고 해보니 또 이게 별 세상이더군요. 이젠 그보다 더 좋아졌겠지요. :)

    2008/05/06 14:14
    • BlogIcon 학주니  수정/삭제

      확실히 MS 툴들이 쓰기가 편하죠. 익숙해져서 그런걸지도 모르겠지만 말이죠.
      디버깅할때는 정말 작살이지요. ㅋㅋ
      다만 OS도 그렇게 툴도 그렇고 버그가 아직까지도 많이 존재해서리. -.-;

      2008/05/06 14:21
  2. BlogIcon 공도  수정/삭제  댓글쓰기

    마이크로소프트를 한마디로 표현하자면 -아마도 발머가 얘기했던 것 같은데 기억이 안나네요- '플랫폼 컴퍼니'라고 할 수 있겠죠.
    닷넷으로 끄적거리고 있는 저에겐 닷넷 프레임웍의 크로스플랫폼화는 정말로 반가운 소식이에요.

    2008/05/07 12:58
    • BlogIcon 학주니  수정/삭제

      MS는 정말로 플랫폼을 만들어내는 회사인듯 싶어요.
      구글도 인터넷 플랫폼을 만들려고 무지 노력하던데.

      2008/05/07 14:13
  3. BlogIcon 프로리  수정/삭제  댓글쓰기

    Ms는 참 무서운것 같네요.
    글을 보고나니 오픈소스 진영에서 고심하는 분들이 참 애처롭다는 생각이 드네요..

    2008/05/13 13:12
    • BlogIcon 학주니  수정/삭제

      자금도 기술도 다 갖춘 회사죠.
      이래저래 무서운 회사임은 틀림없네요.

      2008/05/13 14:03
  4. BlogIcon 뽐뿌맨  수정/삭제  댓글쓰기

    학주님의 날카로운 비평, 우와~ 잘 보았습니다. ^^

    2008/05/17 16:19
  5. BlogIcon Bluefrontier  수정/삭제  댓글쓰기

    안녕하세요, 학주니님의 글을 읽고 다시한번 마이크로소프트의 파워를 느꼈네요.
    마소가 단지 덩치만 큰 회사가 아니라, 여러가지면에서 이미 점유율이 높은 것도 사실인거네요.
    전 윈도우 서버쪽에 관심이 많은 사람이거든요.
    좋은글 잘 읽고 갑니다.
    좋은 하루 되세요.

    2008/05/17 20:12
    • BlogIcon 학주니  수정/삭제

      MS의 무서운 점은 어디서든지 그 영향을 발휘할 수 있도록 다 기저기반을 닦아뒀다는 부분이지요.
      그래서 부동의 1등 기업이 아닐까 싶습니다. ^^;

      2008/05/17 22:34

4월 30일에 MS에서 주최하는 Windows Embedded Developer Conference(윈도 임베디드 개발자 컨퍼런스)에 갔다왔다. 아무래도 회사에서 하는 일 자체가 PMP, PDA, 휴대폰, 전자사전 등에 DRM 모듈을 만들어서 심는 일이다보니 임베디드 프로그래밍에 관심이 가는 것은 당연한 일이고 예전에 했던 일도 PDA용 RTOS에 파일시스템을 만드는 일이나 홍채인식시스템에 임베디드 리눅스를 이용한 제어 프로그램 및 커널을 만드는 것을 해서 그런지 관심이 많이 가는게 사실이었다. 주중에 전일 행사였는데 회사에서 배려를 해줘서 참가할 수 있었다.



오전에는 키노트와 윈도 임베디드 개발자가 알아야 할 10가지라는 주제로 발표가 되었는데 키노트는 뭐 앞으로 윈도 임베디드 플랫폼들이 향후에 이렇게 발전될 것이라는 내용의 MS 본사 직원이 직접 와서 얘기를 해줬고 두번째는 그닥 들을 내용은 없었던 것으로 기억을 한다. WinCE 6.0에 대한 이야기로 5.0과의 다른 점에 대한 내용들이 주를 이뤘기 때문이다. 문제는 현재 현업에서 제일 많이 사용하는 버전은 WinCE 5.0이며 6.0을 도입한 경우는 그닥 없기 때문에 큰 의미를 두지 않았다. 차후에 WinCE 7.0(아마 윈도 임베디드 컴팩트라는 이름으로 출시될 것이라 하는데)이 나오면 WinCE 6.0이 시장에서 활성화가 되지 않을까 싶다.

이번 컨퍼런스는 3개의 트랙에 3개의 세션으로 총 9개의 주제를 놓고 이뤄졌다. 윈도 임베디드 어플리케이션 파트, 윈도 임베디드 디바이스 파트, 그리고 윈도 XP 임베디드 파트로 나뉘어져서 각기 주제에 맞는 내용을 바탕으로 발표가 이뤄졌다. 그 중에서 내가 들었던 파티는 디바이스 파트에서 2개, 그리고 XP 임베디드 파트에서 1개를 들었다. 구지 하나의 트랙에서 몽땅 다 들을 필요도 없기 때문에 흥미있는 분야의 세션을 들었다.

처음에 내가 들었던 내용은 WinCE에서의 DRM10이라는 주제였다. 내가 하는 일이 DRM쪽이라 과연 이전에 MSDRM이라 불리던 WMDRM은 WinCE에서 어떻게 동작하는 것인가를 확인해보는 자리였다. 그런데 듣고나니 결국 내가 알고 있는 내용과 내가 지금 하고 있는 내용과 별반 다를바가 없다는 것이었다. 아니 거의 똑같았다. DRM이라는 것이 결국 하는 일은 비슷하다는 생각이 들었다. 다른 디바이스로의 복사를 막고 재생할 수 있는 기간 및 횟수를 제한한다는 내용은 WMDRM 뿐만 아니라 내가 지금 하고 있는 Teruten의 PMP-Wall에서도 똑같이 적용되고 있기 때문이다. 다만 라이센스 정책의 경우 조금 달랐다는 생각이 들었으며 괜찮아 보이는 라이센스 처리 방법은 우리 쪽에서도 도입해서 적용할 필요가 있겠다라는 생각이 들었다. 그리고 또 하나 흥미로운 사실은 예전의 MSDRM은 MS에서 만든 미디어 포멧인 WMV, WMA에서만 적용이 되었는데 이제는 AVI, MP3, OGG 등의 전 포멧에 다 적용이 되었다는 것이다. 하기사 MS가 짱구가 아닌 이상에야 자기네들 포멧만을 강요할 필요가 없다는 것은 알고 있을테니까 말이다. 또 하나의 소득은 주제와는 관계 없이 WinCE에서 지원하는 IE에서 ActiveX를 지원한다는 사실을 알았다는 것이다. 세션을 발표했던 강연자에게 물어봤더니 지원한다고 했다. 이 부분은 차후에 우리쪽에서 솔루션을 개발할 때 참고자료가 될 듯 싶다.

두 번째로 들었던 것은 윈도 XP 임베디드 트랙에서의 WinCE에서의 실버라이트에 대한 내용이다. 솔직히 내가 하는 일과는 관계가 그닥 많지는 않지만 향후에 동영상이 AVI, WMV 등에서 플래시, 실버라이트 쪽으로 인터넷 플랫폼에 맞게 가벼워진 포멧으로 옮겨갈 수 있다는 생각이 들어서 나중에는 관련이 있겠다는 생각에 들었다. YouTube 등의 인터넷 동영상 플랫폼이 플래시를 기반으로 만들어졌다는 부분과 향후에 실버라이트도 비슷하게 올라설 것이라는 생각이 든다. 그리고 원래 목적은 실버라이트니까 다른 세션보다 좀 더 화려한 화면을 볼 수 있지 않을까 하는 맘에서 들었다. 그런데 왠걸. 확실히 PC에서 웹브라우저를 통해서 보는 실버라이트와 단말기에서 WinCE 기반의 실버라이트는 너무 차원이 틀렸다. 디바이스에서 실버라이트가 구동은 되었으나 하드웨어적인 제약사항때문에 PC만큼의 퍼포먼스를 구현하는 것은 확실히 문제가 있다는 생각이 듦과 동시에 아직까지 WinCE에서의 실버라이트는 좀 멀었다는 생각이 들었다. 플래시와의 격차가 아직까지는 있는거 같았다.

마지막으로 들었던 내용은 .NET Micro Framework에 대한 것이다. WinCE에서는 .NET Compact Framework라는 PC에서 지원하는 .NET Framework의 소형화 버전이 지원되고 있다. WinCE 6.0에서는 기본탑재고 WinCE 5.0에서는 FP(Feature Pack : 서비스팩과 비슷한 개념)를 설치하면 구현할 수 있다. 그런데 그것과는 조금 다른 개념으로서 나오는 .NET Framework인듯 싶었다. 다른 .NET Framework와는 다르게 부팅과정부터 관여하고 있는거 같았다. 즉, .NET Micro Framework는 내가 이해한 바로는 거의 단독으로 실행할 수 있다는 것이다. WInCE 등의 OS를 필요로 하지 않고 펌웨어 수준으로 말이다. 다만 Micro라는 이름에 걸맞게 지원되는 수준이 .NET Framework의 시스템적인 부분만 지원한다. 파일시스템은 지원하지 않으며 하드웨어 실시간(Real Time : RT)도 지원하지 않기 때문에 제어장치쪽으로 사용하기에는 좀 뭐시기 하다는 생각이다. 즉, 최소한의 지원만 가능하다는 얘기다. 하지만 개발자 입장에서는 C#을 이용하여 프로그래밍을 하기 때문에 만드는데 있어서 매우 편리할 수 있겠다는 생각을 했다. 게다가 Visual Studio 2005에서 개발할 수 있기 때문에 디버깅 또한 다른 임베디드 시스템보다 매우 편하다는 것이 장점이다. WinCE가 필요없는 거의 펌웨어 수준에서 돌아가는 시스템에 맞춰서 사용할 수 있는 플랫폼인듯 싶었다. 솔직히 .NET Micro Framework를 보면서 MS가 임베디드 시스템 전반에 걸쳐서 자사 플랫폼을 심고 천하통일을 꿈꾸고 있구나 하는 생각을 해봤다(이 부분은 다음에 따로 포스팅을 해볼까 한다).

이번 WinCE쪽 컨퍼런스를 지켜보면서 MS가 PC용 OS시장에서의 포화상태를 임베디드 시장으로 이끌어내서 임베디드 OS 시장도 석권할려고 노력하고 있다는 생각을 해봤다. MS 입장에서는 당연한 일이라 생각이 들었으며 점점 그렇게 진행되고 있다는 생각을 해봤다. 전 세계적으로 임베디드 OS 점유율 1위(가트너 통계)를 차지하고 있기 때문이며 하이엔드 디바이스로부터 시작하여 이번에 봤던 .NET Micro Framework를 통하여 로우엔드 디바이스까지 모두 자사의 플랫폼을 제공하고 있다는 점을 봤을 때 참으로 MS는 무서운 기업이라는 생각을 했다. 솔직히 휴대폰쪽 OS 시장만 윈도 모바일이 심비안이나 구글 안드로이드와 경쟁중이지 PMP, PDA쪽은 거의 WinCE가 압도적으로 우위를 점하고 있고 윈도 XP 임베디드로 PC급 성능을 요구하는 임베디드 시스템 시장에서 강력한 힘을 발휘하고 있는 상황이라서 더 그런 생각이 들었다.

그리고 이번 컨퍼런스의 묘미는 역시나 점심제공이었는데 돈많은 기업인지라 식사도 괜찮은 것으로 준비했다. 메뉴는 돈가스 정식과 낙지덮밥, 그리고 회덮밥이었는데 나는 회덮밥을 먹었다. 꽁짜 세미나 치고는 꽤 괜찮은 수준의 점심이라 생각이 들었다. 원래는 샌드위치 정도 주겠구나 예상했었기 때문이다.



솔직히 내용 자체는 그닥 얻는거 없었던 컨퍼런스였지만 적어도 향후에 임베디드 시스템 시장이 어떻게 돌아갈 것인지에 대한 컨셉은 잡을 수 있어다는 부분에 있어서는 꽤나 의미있는 컨퍼런스였던거 같다. 다음에도 이런 기회가 있으면 또 참석해봐야겠다.

이 블로그에서는 나눔글꼴을 사용하고 있습니다. 제대로 즐기실려면 글꼴을 설치해서 보세요. ^^

댓글을 달아 주세요

  1. BlogIcon 활의노래  수정/삭제  댓글쓰기

    저도 개발자 지망생이라 임베디드쪽에 궁금한 점이 많았는데, 잘보고갑니다.

    2008/05/02 13:29
    • BlogIcon 학주니  수정/삭제

      예전에 비해 많이 개발이 편해진건 사실이지만 그래도 여전히 임베디드 개발은 피를 쏟는 삽질의 연속입니다.. -.-;

      2008/05/03 19:35
  2. BlogIcon 아도니스  수정/삭제  댓글쓰기

    괜히 MS를 M$라 부르는 게 아니군요. 공짜 점심이 저 정도라니..헐~

    2008/05/02 16:21

사용자 삽입 이미지
소문으로만 무성하던 구글폰의 프로토타입이 스페인의 Mobile World Congress(MWC)에서 첫선을 보였다. 구글의 안드로이드 플랫폼을 장착한 첫번째 제품이다. 구글폰 프로토타입은 ARM 칩셋을 사용하고 있으며 ARM 칩셋에 포팅된 안드로이드 플랫폼을 장착하고 있고 첫 화면은 일반적인 스마트폰의 초기화면과 별다를 것이 없다고 전해진다.

이미 많은 블로거들이 MWC에서 선보인 구글폰에 대한 이야기를 해줬기 때문에 구글폰에 대한 이야기는 많이 안하겠다. 다만 UI가 애플의 iPhone에 비해서 미려하지 못한 부분과 프로토타입이라서 그런지 폰의 디자인이 역시나 iPhone에 비해서 멋없다라는 정도가 아쉬울 뿐이다. 하기사 애플과 디자인과 UI를 견준다는 것 자체가 무리한 비교일지도 모르겠지만 말이다.


구글폰 프로토타입의 모습

구글의 안드로이드로 인해 휴대폰용 OS 및 어플리케이션을 만들기가 쉬워졌다고 많은 전문가들이 말한다. 기존의 휴대폰 제조업체들은 휴대폰을 제작한 이후에 그 안에 들어갈 어플리케이션을 만들기 위해 직접 칩셋에 맞는 펌웨어 프로그래밍을 하던지(임베디드 프로그래밍을 뜻한다. OS 위에 올라가는 것이 아니라 직접 칩셋에 붙어서 동작하는 프로그램들이다) 아니면 자바ME를 이용해서 프로그래밍을 했다. 그나마 자바ME를 이용하면 자바 가상머신 위에서 동작하기 때문에 개발은 좀 쉬웠지만 가상머신때문에 속도가 느리다는 단점이 있었다.

하지만 구글의 안드로이드를 비롯하여 MS의 윈도 모바일, 심비안, 그리고 일부 리눅스 커뮤니티에서 만들고 있는 임베디드 리눅스들이 나오면서 휴대폰에 들어가는 OS 및 어플리케이션을 만드는데 있어서 상당히 편리한 환경이 되어가고 있다. 이들 플랫폼은 표준적인 개발환경 및 실행환경을 제공해주기 때문에 휴대폰을 개발하는데 있어서 상당한 기간 단축 및 비용 단축을 가져오고 있다. 즉, 이들 플랫폼은 휴대폰에 OS 형태로 동작하며 PC에서 지원하는 OS정도는 아니지만 비슷한 수준의 성능을 보여주고 있다.

심비안과 윈도 모바일이 모바일 플랫폼의 양대산맥을 구축하고 있는 가운데 안드로이드가 틈새를 노려서 성장할려고 준비중이며 임베디드 리눅스 역시 늘 기회를 옅보며 조금씩 세력을 넓히고 있는 상황이다. 이런 플랫폼은 개발자들이 휴대폰이 어떤 칩셋을 사용하든지 모두 동일한 환경에서 프로그래밍을 할 수 있도록 지원해주는 장점이 있기 때문에 휴대폰의 종류에 관계없이 같은 프로그램을 계속 재활용하면서 사용할 수 있다. 이 부분은 개발자들에게 있어서 상당히 중요한 점이며 큰 매리트로 작용하는 점이기도 하다.

윈도 모바일의 경우 Win32 API를 이용한 프로그래밍이 가능하기 때문에 PC에서 사용하고 있는 프로그램들도 약간의 수정으로 휴대폰에서 동작할 수 있도록 할 수 있으며 안드로이드의 경우 구글에서 제공하고 있는 온라인 서비스들을 손쉽게 사용할 수 있도록 API를 제공하기 때문에 구글 서비스를 이용한 다양한 매시업 어플리케이션 개발이 가능하고 또한 검색이나 Gmail, Gtalk, 구글 맵스, 구글 어스 등의 구글웨어를 바로 사용할 수 있는 장점이 있다. 휴대폰의 경우 기본적으로 무선인터넷이 가능하다는 전제하에 이런 구글 어플리케이션 사용의 용이함은 정말 큰 매력으로 다가올 수 있다는 생각이 든다.

구글의 안드로이드가 더 활성화가 되어 수많은 휴대폰에 기본으로 탑재가 되는 날이 오게 되면 수많은 개발자들이 안드로이드 플랫폼형 어플리케이션을 개발하여 배포하고 그것을 서로 손쉽게 공유할 수 있는 날도 오게 될 것이다. 전문 개발자가 아닌 안드로이드 플랫폼을 잘 사용하는 개발자라면 누구든지 만들 수 있을테니까 말이다. 물론 윈도 모바일이나 심비안 역시 마찬가지 효과를 누릴 수 있지 않을까 생각한다.

* 관련뉴스 *
「안드로이드」쓰면 휴대폰 개발이 쉬워진다 (ZDNet Korea)
Google Android prototypes debut at MWC (CNetNews.com)

Daum 블로거뉴스
블로거뉴스에서 이 포스트를 추천해주세요.
이 블로그에서는 나눔글꼴을 사용하고 있습니다. 제대로 즐기실려면 글꼴을 설치해서 보세요. ^^

댓글을 달아 주세요

  1. BlogIcon hoogle  수정/삭제  댓글쓰기

    태터앤미디어에 가입했나요?
    스킨이 참 이쁘네요... :)

    2008/02/13 18:54
    • BlogIcon 학주니  수정/삭제

      아뇨.. 아직 가입하지는 못했습니다..
      깔끔한 스킨을 찾는데 이게 보여서리. ^^;

      2008/02/13 19:01

 내가 회사에서 메인으로 사용하고 있는 컴퓨터 언어는 C언어다. 가끔 C++을 사용하기도 하고 윈도 프로그래밍을 할려면 MFC나 Win32 API를 이용한 프로그래밍도 한다. 그렇다 하더라도 내 메인 컴퓨터 언어는 C언어다. 이게 내 밥줄이며 내 기술이다. 이것 덕분에 지금까지 그나마 회사에서 잘 써먹고 있는 것이라 생각이 든다.

요즘들어 웹2.0에 관심이 많아져서 관련 글들도 블로그에 쓰고 관련 자료들도 인터넷을 통해서 이리저리 찾아보기도 하고 포럼이나 세미나에도 가끔 참석해서 주변 지식을 넓히고 있는 상황이다. 그런데 계속적으로 웹2.0에 대해서 공부하면서 느끼는 점은 지금 내가 하고있는 일과는 전혀 매치가 안되고 있다는 것이다.

웹2.0은 말 그대로 웹이다. 인터넷의 한 종류인 웹은 이제는 아예 인터넷을 대표하는 기술이 되어버렸다. 그만큼 웹이 크게 성장했다는 뜻이다. 이 웹이라는 녀석을 다루다보면 자주 등장하는 것이 웹 페이지, 웹 사이트며 이 웹 사이트를 구성하고 있는 웹 언어들이 존재한다. HTML이라 불리는 웹 페이지 문서 언어와 ASP, PHP, JSP라 불리는 웹 스크립트 언어가 그것이다. 그리고 요즘은 웹2.0이 뜨면서 XML과 AJAX가 웹 언어의 대세를 이끌고 있다고 본다.

그리고 웹2.0의 중심에는 Java(자바)라는 언어가 있다. 이 자바는 1990년대 중반에 선마이크로시스템(이하 Sun)에서 만든 오브젝트 중심의 언어(이하 OOP)다. C++이라는 OOP의 연장선상에 있다고 봐도 좋을 것이다. JVM이라 불리는 자바 가상 머신 위에서 동작을 하며 어떤 플랫폼(OS, Computer 모두)에서도 JVM만 있으면 다 돌아가겠끔 만든 것이 바로 자바다. 지금으로부터 대략 10여년전에 만들어진 언어니 10년정도의 역사를 지니고 있다고 본다.

자바는 2000년대초에 한번 크게 붐을 이뤘다. 닷컴 열풍이 몰아친 그 때에 자바 애플릿과 자바스크립트라 불리는 자바 언어(솔직히 애플릿은 자바라고 말하기 좀 그렇다고 생각한다. 그래도 구성 자체는 자바로 되어있으니 자바의 한 종류라고 하자)가 웹 페이지의 디자인 부분을 맡으면서 자바를 이용한 많은 웹 서비스 프로젝트들이 붐을 이뤘다. 그래서 한때 확 떴다가 2002년 이후로 좀 세력이 떨어진다. 닷컴버블이 사라진 이후 웹에 대한 환상이 깨지고 그와 동시에 자바에 대한 환상도 깨진 것이다. 그래서 풀죽어있는채로 있다가 2004년 하반기부터 다시 자바가 뜨기 시작했다. 그것은 MS가 C#이라는 자바와 비슷한 성질의 언어를 발표했을 때와 비슷하다. MS는 .NET이라는 자바의 JVM과 비슷한 플랫폼을 만들고 그 위에 C#이라는 언어를 사용해서 어떤 플랫폼에서도 사용할 수 있는 언어를 발표했다(그렇다 치더라도 MS OS군에서만 돌아가는 C#은 자바에 비할바가 못된다). 그때와 동시에 자바도 다시 부활했다고 본다.

웹2.0이 붐을타고 일어나서 전세계를 강타했고 그 중심에는 XML과 더불어 AJAX라는 기술이 있었다. AJAX는 Asynchronous JavaScript and XML의 약자로 비동기형 자바스크립트와 XML이라는 뜻인데(그냥 직역이다) 역시 자바로 구성되어있는 것이 특징이다. AJAX의 확산으로 인해 자바는 다시 부활하게 된다. 즉, 내가 요즘 관심을 갖고있는 웹2.0의 중심에는 자바가 있었다는 얘기다. XML도 자바와는 잘 붙는다고 한다.

왜 이런 이야기를 하는가 하면, 내가 사용하고 있는 C, C++ 언어는 말 그대로 시스템 언어들이다. C언어는 서버 프로그래밍을 할때나 아니면 임베디드 프로그래밍(휴대폰이나 PMP, PDA 등의 기기의 펌웨어 프로그래밍 등)에서 많이 쓰이고 있다. C언어가 고급 언어이면서도 어셈블러와 같은 저급 언어의 성질도 같이 갖고 있어서 임베디드 프로그래밍을 할 때 유리하기 때문이다. 서버 프로그래밍도 마찬가지다. C++과 같은 OOP 계열 언어를 쓰면 아무래도 퍼포먼스에 있어서 좀 떨어지기 때문에 C언어를 많이 쓴다. 그러나 C, C++로는 웹2.0 시대에서 제대로 밥 벌어먹기 힘들다는 얘기를 많이 듣는다. C, C++언어는 웹 언어가 아닌 철저하기 플랫폼에 의존적인 언어이기 때문이다. 그 얘기는 윈도에서만 돌아가는 프로그램이라던지, Linux에서만 돌아가는 프로그램이라던지, 이런식으로 OS에 철저하게 의존적인 프로그램만 만들 수 있다는 얘기다. 여러 플랫폼에서 돌아가게 할려면 각 플랫폼 별로 컴파일을 새로 해야하는 불편함이 있다. 웹 언어들은 플랫폼에 상관없이 웹 브라우저만 존재하면 어디서든 구동되는 프로그램을 만들 수 있다. 웹 사이트가 그 대표적인 예다. 물론 ActiveX 등의 기술을 사용하면 윈도에 Internet Explorer에서만 돌아가겠지만 그런거 안쓰고 순수하게 웹 스크립트 언어를 사용하면 어떤 플랫폼에도 관계없이 구동되는 웹 프로그램을 만들 수 있다. 그리고 나는 그 중심에 자바가 있다는 사실을 깨달았다.

요즘 자바 프로그래머들을 많이 찾고 있다. 한때 자바가 선풍적으로 인기가 있었을 때 자바 프로그래머들이 많았는데 닷컴버블 이후 자바의 인기가 뚝 떨어지자 자바 프로그래머가 많이 윈도 프로그래머로 돌아섰다. 그 얘기인즉 자바 대신에 MFC, WIn32 API등의 윈도 프로그래밍을 선택했다는 얘기다. 혹은 웹 프로그래머로 돌아섰다. 진정한 자바 엔지니어가 아닌 그저 자바 스크립트 정도만 만들 수 있는, 애플릿 정도만 만들 수 있는 그런 수준의 프로그래머로 돌아간 것이다. 물론 자바 스크립트나 자바 애플릿을 만드는 것이 하찮은 일은 아니다. 그것도 나름대로의 영역을 가지고 있으며 웹 사이트에 있어서 중요한 요소라고 생각한다. 하지만 좀더 깊은 수준까지는 못가는 것이 안타까울 뿐이다. 자바 프로그래머들은 자바 애플릿이나 자바 스크립트를 만들 수는 있지만 자바 애플릿이나 자바 스크립트만을 만들 수 있는 웹 프로그래머는 자바를 이용한 다른 응용 프로그램을 만들 수는 없다. 그래서 지금에 와서 자바 프로그래머들을 많이 찾는데 그러한 자바 프로그래머가 많이 부족한 상태다. 그만큼 단가도 많이 올라갔다.
나도 내가 갖고있는 C, C++ 기술로 어느정도 인정은 받고 있지만 솔직히 내 값을 제대로 평가받지 못하고 있다고 생각하고 있다. 그리고 내가 원하는 프로그래밍을 못하고 있다는 생각이 든다. 향후에 IT를 이끌것은 웹이라고 생각한다. 닷컴버블때와 같은 그러한 웹이 아닌 실제로 웹2.0에서 얘기하는 그러한 기술들이 접목된 웹이 IT를 주도할 것이라고 생각한다. 웹2.0의 선두주자인 구글은 자바를 가장 잘 이용하는 서비스중 하나다. 구글의 모든 서비스는 AJAX로 이루어져 있다고 한다. 그리고 IBM과 같은 회사는 아예 정책적으로 자바를 밀어주고 있다. Sun은 자기네들이 만든 언어니 말할것도 없다. 웹을 다루는 모든 서비스에는 지금 자바가 그 중심에 있다고 본다. 그리고 결정적으로 금융권에서는 모든 서버단은 다 자바로 이루어져 있다. 모든 웹 스크립트 언어중 JSP가 가장 보안성이 뛰어나기 때문이다. JVM 위에서 돌아가는 JSP는 JVM이 외부와의 연결을 제어해주기 때문에 보안성이 뛰어나다고 알려져있다. JSP 역시 자바로 구성되어 있음은 말할것도 없다. 이렇듯 자바는 지금 여러분야에서 중추적인 역할을 하고 있다.

내가 이 글을 쓰는 이유 중 하나는 내가 처음부터 C를 선택하지 않고 자바를 선택했으면 지금의 이 길이 아닌 어쩌면 웹2.0의 중심에 있었을지도 모른다는 생각과 지금보다는 좀 더 나은 생활을 하고있지 않을까 하는 생각이 들었기 때문이다. 나는 메인이 C, C++이기 때문에 내가 선택할 수 있는 직업의 범위가 제약이 있다고 본다. 자바도 물론 그렇다. 하지만 자바는 C, C++보다는 그 선택의 폭이 더 넓다. 그리고 좀 더 비싼 가격으로 채택될 수 있다는 점이 나를 가슴 아프게 한다.

물론 C, C++을 이용해서 시스템 프로그래밍을 하는 것과 요즘 인기를 끌고 있는 임베디드 프로그래밍을 하는 것도 매력있고 재미난 일이다. 하지만 시스템 프로그래밍과 임베디드 프로그래밍은 그 수효가 적다. 응용 프로그램쪽이 더 많은 사람을 필요로 하기 때문이다. 희귀성은 있을지 몰라도 다양성이 없는 것이 아쉽다. 윈도 프로그래밍도 마찬가지라 본다. 요즘 모든 엔터프라이즈 서비스들이 응용 프로그램 분야에서 웹 프로그램으로 돌아가고 있고 그 중심에는 자바가 있다는 것이 나를 갈등하게 만든다.

현재 회사에 자바 책을 갖다놓고 조금씩은 보고있다. 예전에 잠깐 공부한 적도 있고 그래도 C, C++을 다룬지가 벌써 10년정도 되었기 때문에 자바를 습득하는 것은 그다지 어렵지 않다고 본다. 다만 아쉬운 점은 자바로 프로젝트를 한 경험이 전무한 나로서는 실전에서 자바를 제대로 잘 쓸수가 있을까 하는 두려움을 갖는 것이다. 친구녀석이 일단 소규모 프로젝트를 같이 진행해보자고 해서 나름 생각하고 있다.

지금에서 주종목을 바꾼다고 해도 의미는 없을 것이다. 그래도 무기를 하나 갖고 있을 필요는 있다고 생각한다. C와 C++을 이용해서 언제까지나 계속 프로그래밍을 하기에는 한국이라는 시장은 너무 많은 것을 요구하기 때문이다. 열심히 노력하는 수 밖에 없다는 생각이 든다.

ps) 오래전에 쓴 글인데 스프링노트에 저장해뒀다가 이제야 마무리한다. 그런데 그때 생각했던 내용과는 좀 틀리게 쓰인거 같다. 전체적으로 다시 정리할 필요가 있을 듯.

ps2) 그렇다고 해서 내가 C나 C++을 폄하하는 것은 아니다. 지금 내가 사용하고 있는 주요 언어가 바로 C고 C++이다. 리눅스에서건 윈도에서건 말이다. 다만 자바도 C나 C++처럼 잘 다뤘으면 하는 생각에서 써봤다.
이 블로그에서는 나눔글꼴을 사용하고 있습니다. 제대로 즐기실려면 글꼴을 설치해서 보세요. ^^