사람들이 워낙 액티브 X에 혼쭐이 나다보니까, 솥두껑만 봐도 화들짝 놀라는 형국이라 구글에서 유사품(?)을 만들어냈음에도 불구하고 별로 관심이 없는 모양이다. 이번에 새로 구글이 선보인 네이티브 클라이언트(Native Client, 이하 NC)는 기반 플랫폼이 지원하는 고유 코드(기계어라고 부르면 되겠다)를 웹 브라우저에서 동작하도록 만드는 기술이다.
여기까지 들어보면 딱 액티브 X랑 모질라 플러그인 아키텍처가 떠오른다. 그렇다면 기존 액티브 X와 차이점이 무엇일까? 한 걸음 더 나가 기존에 존재하는 기술에 덧붙여 NC를 만들어낸 구글이 품고 있는 의도는 무엇일까?
NC는 운영체제에 무관하게 샌드박스에서 고유 코드를 동작하도록 만든다는 측면에서 액티브 X와 확실히 다르다. 다시 말해 NC 아키텍처로 만든 코드는 윈도우, 맥, 리눅스에서 돌아가며(물론 기반 CPU가 같아야 하며, 가상화는 지원하지 않는다), 보안을 침해할만한 시스템 호출이나 기계어 호출은 원천적으로 차단된다. 말웨어 온상이며, 윈도우만 지원하는 액티브 X와 궤를 달리하고 있다는 말이다.
그렇다면 어떤 의도가 숨어있을까? B급 프로그래머 생각에는 네이티브 응용 프로그램이 윈도우와 딱 붙어 돌아가는 대신 크롬이나 파이어폭스와 같은 웹 브라우저와 딱 붙어 돌아가도록 만듦으로써 마이크로소프트 윈도우 영향력을 줄이려는 목적이 엿보인다. 기존 웹 기술로 하지 못하는 CPU 파워를 많이 쓰는 응용 프로그램을 웹 환경에서 돌릴 필요가 있다면 현재로서는 NC가 좋은 대안이다.
NC는 IE를 제외한(!) 대부분 브라우저(오페라, 파이어폭스, 크롬)에서 동작하며, 전용 gcc 툴 체인(C라이브러리로는 newlib를 사용한다)과 API 라이브러리를 제공하므로 기존 응용 프로그램 코드를 조금만 수정해서 빌드만 새로 하면 바로 NC 플러그인으로 결합이 가능하다고 한다. 아직 x86만 지원하지만 ARM이나 PPC 플랫폼에서도 동작하도록 프로젝트를 진행하고 있다고 하니 조만간 구글 안드로이드 폰에서도 동작하는 제품이 나오지 않을까 싶다(오히려 x86보다는 파워가 떨어지는 모바일용 장비에서 NC가 먹힐 가능성이 훨씬 더 높다). 멀티 운영체제/멀티 플랫폼용 네이티브 응용 프로그램을 손쉽게 만드는 구조를 고안하다니... 아무리 생각해도 구글 참 신기한 회사다.
EOB