|
크롬에서 눈에 띄는 것은 무엇보다 구글이 자체적으로 만든 자바스크립트 엔진 V8 이었다. 기존의 자바스크립트가 '인터프리터'에 충실해 바이트코드로 바꾸고 JIT을 동원하였지만 느린 속도를 가질 수 밖에 없었다. 반면, V8은 바로 x86 코드로 컴파일을 해버린다1. 그래서 타 브라우저의 스크립트 엔진보다 훨씬 빠른 성능을 얻을 수 있었고, 이는 브라우저 간 새로운 속도 경쟁을 유발시킨 아주 좋은 예가 되었다. 자바스크립트를 직접 네이티브 코드로 바꾸는 방법이 전혀 새로운 방법인 것은 아니지만 비약적인 성능 향상을 얻은 것은 주목할 만하다. 다른 업체들도 이와 유사한 방법으로 스크립트 성능을 높이려 하니 점점 이 경쟁은 치열해질 것이다. 자바스크립트는 이제 이렇게 속도 문제에 대한 실마리를 풀었다. 남은 것은 플래쉬와 실버라잇으로 대표되는 RIA 분야일 것이다. 웹 브라우저 클라이언트 환경은 좌측에 HTML, 우측에 ActiveX2를 극단으로 놓고 점점 우측으로 진화하는 과정으로 볼 수 있다. 과거에는 쉽게 안 될 것 같았던 HD급 동영상 재생도 이제는 실버라잇 같은 플랫폼에서 훌륭하게 구현 된다. 미국 NBC가 이번 베이징 올림픽 인터넷 생중계를 실버라잇 기반으로 구현했었다. 또, C/C++로 만들어진 퀘이크 게임이 Adobe Flash 위에서 돌아가는 동영상을 본 분들도 많을 것이다. C/C++로 만들어진 코드를 Flex로 크로스 컴파일해 작동시킨 것이었다.3 RIA가 어떤 것을 원하는지 여실히 보여주는 예다. 결국 RIA 플랫폼이 요구하는 것은 (1) 네이티브 코드 수준의 강력함, (2) Static HTML과 같은 안전함 그리고 (3) 플랫폼 및 브라우저 독립성일 것이다. ActiveX는 (1)는 손쉽게 구현하지만 (2)에서 고전을 면치 못하고 (3)은 불가능이다. 이 목적을 모두 충족시키는 기술이 앞으로 새로운 RIA 기술이 되지 않을까? 한 마디로 ActiveX 처럼 바로 exe를 실행시키면서도 완벽하게 샌드박싱 된, 즉 시스템을 함부로 건들일 수 없는 제한적인 네이티브 바이너리를 실행할 수 있는 기술이 그것이다. 이미 비스타와 IE에서도 Protected Mode 라는 것을 두어 ActiveX가 나쁜 짓을 하는 것을 최대한 막으려고 하는데 결국 같은 맥락으로 볼 수 있을 것 같다. 크롬의 V8이 자바스크립트를 바로 네이티브 바이너리로 바꿨듯이, 지금의 RIA를 거쳐서 구현되고 있는 여러 풍부한 웹 환경도 결국 네이티브 실행 파일을 바로 실행할 수 있는 방향으로 진화할 것 같다. 내가 생각하는 것은 C/C++로 그냥 코딩을 하는데 컴파일하면 바로 웹 브라우저에 척하고 붙는 (써 넣고 보니 ActiveX와 비슷) 그런 방법론이다. 대신 플랫폼 독립적이고 키보드 후킹이나 디스크 포맷 같은 일은 못할 것이다. 물론, RIA를 위한 C/C++ SDK 및 컴파일러가 필요할 것이다. 예를 들면, 퀘이크를 크로스 컴파일해 액션스크립트로 바꾸어 플래쉬 위에서 돌리는 것이 아니라, 컴파일을 새로 하여 바로 컴퓨터 위에 돌리는 것이다. 비록 웹 브라우저를 통하는 것처럼 보이지만 코드는 바로 CPU 위에서 작동할 것이다. 아무리 컴퓨터가 빨라졌다고 하지만 그에 따라 컴퓨터가 보여줘야 할 내용도 같이 복잡해지고 있다. 여전히 컴퓨터 프로그램에 있어 속도는 최고의 가치가 아닐 수 없다. 이번 V8을 보면서 더더욱 이런 생각을 한다. 특히 웹 브라우저 기반의 플랫폼을 꿈꾸는 구글이라면 더더욱.
세 줄 요약:
1 그래서 크롬 64비트 버전이 당장 나올 수 있는 것이 아니다. V8은 네이티브 코드 변환 외에도 여러 프로그래밍 언어 차원의 최적화도 하고 있다. Dynamic type의 자바스크립트를 마치 정적 타입으로 간주하는 최적화를 쓰고 있다. 왜냐면 비록 자바스크립트가 동적 타입이라지만 대부분 C/C++/Java처럼 코딩하기 때문이다. 2 물론 IE-윈도우에 종속적인 ActiveX를 우측 끝으로 볼 수는 없지만 대충 그 의미는 충분히 이해하실 듯. AcitveX를 잘 모르시는 분들은 어디 별나라에서 온 기술로 이해하는데, 컴맹을 위해 설명하자면, 윈도우 실행 파일을 웹을 통해 실행시켜주는 그런 무시무시한 놈인 것이다. 문제는 ActiveX가 만들어질 당시 웹을 통한 바이러스 전파를 생각하기 쉽지 않았다는 것. 프로그래밍틱하게 얘기하면 ActiveX는 윈도우 곳곳에서 사용되는 COM 객체일 뿐. OLE automation을 구현하기 위해 IUnknown, IDispatch 등을 구현한 COM 객체다. 엑셀 파일을 워드에 붙일 수 있는 그 기능 그거다. 3 참고 링크를 보면 "어떠한 C/C++ 코드도 플래쉬 혹은 Adobe AIR에서 돌아가는 ActionScript로 컴파일 해주는 기술" 이라고 적혀있다. 글을 쓰신 분이 "Any C or C++ code"라고 적었는데 물론 이것을 그대로 받아들이면 곤란할 것이다. 파일을 마구 지우라는 코드도 그대로 액션스크립트로 바꿀 수는 없는 노릇 아닌가?
최근 등록된 덧글
개발자 입장에서의 수많은 ..
by Jiyoon at 02/04 저도 아들 돌잔치때 돌잡이 .. by 박상욱 at 01/18 미국 대학원 원서 작성중에 p.. by 태클사이야 at 01/13 TO: 박PD 로그인 하지 않아.. by 박응용 at 01/10 http://gigglehd.com/zbx.. by dhunter at 12/28 우와.. 좋네요. 태반이 .. by 윤광배 at 12/17 항상 좋은 글 잘 보고 있습니.. by y2k at 11/23 글이 좋아서 제 블로그에 담.. by 쏭섭 at 11/23 최근 등록된 트랙백
메뉴릿
이글루 파인더
|