Google Native Client 출시 준비 완료

지난 5월 처음 전해드렸던 구글 네이티브 클라이언트(Native Client)가 거의 완성단계에 이르렀다는 소식입니다. 무엇보다도, 앞으로 Native Client는 3D게임과 같은 장면을 원활하게 수행할 수 있게 전송 성능이 낮은 브라우저 환경에서도 네이티브 코드(native code)를 실행하게 되었습니다. 구글 프로덕트 매니저인 크리스찬 스테판센(Christian Stefansen)은 네이티브 클라이언트의 개발로 '중요한 이정표'에 도달했다고 전하며, 네이티브 코드는 자바스크립트(JavaScript)처럼 안전하고 편리할 것이라고 전했습니다.

이상 Engaget 한국 사이트 기사에서 ...

Native Client (NaCI)는 브라우저에서 동작하는 웹 어플리케이션의 일부를 C/C++로 작성하여 컴파일한 machine code로 동작할 수 있게끔해주는 기술이다. 크롬 브라우저 10 버전부터 기본으로 제공될 것이라고 한다.

(Native Client를 이용한 웹 어플리케이션 구조 - Google Site에서 펌)

Native Client를 이용한 웹 어플리케이션은 위 그림과 같은 구조를 가지게 된다. 사용자 인터페이스 부분은 HTML, CSS, Java Script 등의 웹 표준 기술로 구현하고 암호화/복호화, 복잡한 산술 연산 등과 같은 성능 상의 혹은 기존 C/C++ 코드를 재 활용하기 위한 코드 부분은 C/C++ 코드와 Native Client SDK를 이용하여 Native Code Module로 만든다. 중간에 위치한 bridge는 Native Client에서 브라우저의 자원을 활용할 수 있도록 한다.

개인적으로는 이 기술에 대해 몇 가지 의문점이 든다.
  • 기존 IE가 제공하던 ActiveX 기술이 실패했던 과정을 똑같이 따르게 되지 않을까?
  • Web의 장점인 표준화를 해치면서 과연 성공할 수 있을까? 크롬 브라우저에서만 동작하는 웹페이지라니...
  • Native 코드 작성 시 Windows, Mac OS, Linux에 특화된 API를 사용하거나 하면 각 운영체제 별로 별도의 코드를 작성해 주어야 하지 않나? 
  • 차라리 Java를 사용하는것이 더 좋지않을까? LiveConnet가 이와 유사한 기술아니었던가?
결론적으로 별로 정이 안가는 기술이다.

UPDATE: 지금 생각해보니 Chromebook을 위한 기술이지 싶다. Chromebook은 어차피 Chrome 브라우저만 사용할 수 있을테니까...

참고:

댓글

이 블로그의 인기 게시물

Wireless: HotSpot 2.0 이란?

Apple M1 Mac Mini에서 이더리움 (Ethereum) 채굴하기

Java: Java for Game? Java가 Game 개발에 어울릴까?