Articles/Translations2008. 9. 2. 15:57
다운로드 링크 : http://www.google.com/chrome


http://books.google.com/books?id=8UsqHohwwVYC&printsec=frontcover#PPA25,M1
 을 보면서 간략히 정리. 만화가 그림같은게 센스있게 그려져있어서 사실상 제품 홍보 자료인데도 재밌게 봤네요. 구글에서 완전히 새로 만드는 웹 브라우져라는데 신기한 것들을 이것 저것 내세우고있습니다.



- 기존에 나온 브라우져들은 내부적으로 싱글 스레드로 이루어져 있었습니다. 이를테면 어떤 페이지를 처리할때 자바 스크립트를 처리하는데 오랜 시간이 걸리면 브라우져의 나머지 부분은 전부 멈춰있을 수 밖에 없었다는 겁니다. 크롬의 제작자들은 HTML / Java / Plug-in처리 등을 담당하는 여러개의 스레드를 만들어서 멀티 스레드로 처리하는 방식에 대해 생각을 해 보다가, 크롬이 멀티 스레드 대신에 멀티 프로세스로 작동하도록 만들었습니다. 1개의 탭이 1개의 프로세스를 가지게되며 프로세스는 각자의 자바스크립트 스레드를 가지게 됩니다.

- 이러한 방식의 장점은 첫째, 각 탭들이 별도로 돌아가기 때문에 한 탭에 문제가 생기더라도 다른 탭들에 영향을 미치지 않는다는 것입니다. 한 탭이 문제가 생기면 그 탭은 종료되고 그 대신 Sad tab ( X( 비슷한 이모티콘이 그려져 있는 오류 표시 탭)이 나타나고 나머지 부분은 그에 대한 영향을 받지 않습니다. 둘째, 메모리 관리에 장점을 가집니다. 한 프로세스가 여러개의 탭을 가지고 있을 경우에 탭을 닫았다가 새로 생성했다가 하는 작업을 반복하다보면 Memory fragmentation이 생기게 되는 반면에, 크롬은 탭을 닫으면 아예 하나의 프로세스가 종료되는 것이기 때문에 이런 문제를 피할 수 있다는군요. (장점일지는 모르겠지만)셋째, 유저들은 Google Chrome Task Manager를 이용하여 프로세스의 상태를 확인 할 수 있습니다. 어떤 탭이 메모리를 많이 사용하고 있는지, CPU파워를 소모하고 있는지, 가장 많은 자료를 다운로드했는지 등의 정보를 알 수 있으며, 플러그-인들은 별도의 Task로 취급되기 때문에 이에 대한 정보를 확인하고 문제가 있는 것을 종료시켜 버릴 수 있습니다. 단점은 상대적으로 메모리를 더 많이 먹는다는 것입니다. 워낙 개인 PC의 메모리가 충분한 시대라서 구글은 이에 대해서 별로 심각히 생각하지 않는 모양입니다.


- 구글에서는 "크롬 봇"이라는 것을 만들어서 자신들이 Crawling 해 놓은 웹 페이지들을 크롬을 테스트하고 있다고 합니다. 별 다른 자세한 내용은 없고, 랜덤 인풋 테스트라든지 디자인 테스트 등을 한다고 되어있고 "물론 사람의 행동을 그대로 테스트해서 완벽히 모든게 가능하게 만들긴 힘들겠지만 노력하고있다."는 원론적인 얘기만 하는군요.

(모범적인 랜덤 테스트의 예제)

- 웹 렌더링 엔진으로는 WEBKIT이 사용된다고 합니다. (구글 안드로이드에도 이 WEBKIT 엔진이 사용되고있다고 하며, 애플의 사파리도 WEBKIT을 이용하는 것으로 알고있습니다.) 속도와 메모리 효율 등이 뛰어나다고 얘기하는데 제가 직접 테스트 해보거나 하지는 못해서 잘 모르겠네요. 하나 걱정되는 것은 이 WEBKIT을 이용한 사파리가 렌더링 속도는 겁나 빠른데 웹 디자이너 분들이 크로스 브라우징 문제를 해결 할 때 사파리에서 제일 고생한다는 얘기를 들은 적이 있는데... 과연 어떻게 결과물이 나올지 모르겠습니다.


- 자바 스크립트를 처리하기 위해서는 덴마크의 V8 Team에서 만든 V8이라는 Virtual Machine을 쓴다고 합니다. 기존의 자바 스크립트를 처리하는 VM들은 웹 초창기의 자바 스크립트가 간단한 역할만 수행해주면 되던 시기에 설계가 된 것이라, 요즘처럼 자바를 이용하는 복잡한 웹 프로그램들(구글 맵 같은)이 많은 시대에 제대로 적응하고 있지 못하다는 판단을 내렸다고 하네요. V8은 Hidden class transition(같은 class인 Object들이 여러개 생기면 작동과 메모리 관리 등을 최적화하는 기술), Dynamic code generation(자바 스크립트 코드를 컴파일해서 Machine code로 바꾸어 실행함으로써 속도를 높이는 기술), 향상된 Garbage collection 등의 장점을 가지고 있다고 합니다. WEBKIT은 원래 오픈 소스 엔진이고 V8는 API가 공개되서 다른 웹 브라우져나 자바를 필요로하는 애플리케이션들에서 차용해서 쓸 수 있다고 하네요.


- 위에서 얘기한대로 각각의 탭은 1개의 프로세스이기 때문에 여러개의 구글 크롬 창이 열려있을 경우는 탭을 다른 창으로 옮기는 것이 가능합니다. (IE7을 까신 분들은 한 번 해보세요. 2개의 익플창을 띄우고 탭을 드래그해서 다른 창으로 옮기려고 하면 아무 일도 일어나지 않습니다.)


- 웹브라우져의 URL을 입력하는 창에도 많은 변화가 있는데 크롬에선 이를 OMNIBOX라고 이름 붙였습니다. 이 곳에 정보를 입력하면 타 브라우져와 같이 아래로 리스트가 보이는데 기존에 방문했던 페이지, 그 정보에 관련한 검색 추천연관 인기 페이지 등의 정보도 함께 출력된다고 합니다. 직접 입력하지 않은 페이지는 자동 완성에서 제외되며, 특정 사이트에서 검색을 한 기록이 있을 경우는 "Search Amazon: xxx"식의 표현으로 사이트에 들어가지 않고도 바로 검색을 할 수 있는 기능이 있다고 합니다. 제작진들도 원래는 그렇게 쓸데없는 것이 뜨는 것을 싫어했지만, 연구끝에 편하고, 귀찮게 느껴지지도 않도록 훌륭하게 만들어냈다고 자부하는군요.


- 다른 브라우져에서 새 탭을 열면 초기 페이지(보통은 포탈이나 about:blank로 해놓는...)가 뜨도록 되어있는데 크롬에서는 가장 많이 방문한 사이트 목록과, Omnibox에서 이용했던 검색 중 가장 많이 이용한 검색을 바로 할 수 있는 페이지가 뜬다고 합니다. (얼마나 편할지는 모르겠지만 전 about:blank가 제일 좋은데... -_-;)

- 'INCOGNITO Window'라는 형식의 창을 열 수 있으며 이 창을 연 상태로 한 작업은 기록이 남지 않습니다. 자주 방문한 사이트 목록에 카운트가 체크되지도 않고, 히스토리도 남지 않는다고 합니다. 당연히 창을 닫는 순간 쿠키도 자동으로 모두 청소 합니다. (제가 좀 더 어릴 때 나왔으면 19금 정보보고 흔적 지운다고 고생 안해도 됐으니 편했을 듯 합니다...만 지금은 크게 도움이 안되겠네요. 사용 예로는 Surprise gift로 줄 물건을 찾기 위해서 웹 서핑 할때가 나와 있습니다.)


- 구글 크롬에서는 자바 스크립트로 강제로 새 창을 띄울 수 없다고 합니다(만세!) 새 창을 띄우려는 시도가 있을 경우에는 브라우져 화면 하단에 조그마한 박스가 생기며 이 박스를 드래그해서 창 바깥쪽으로 꺼내면 그때 창이 열린다고 하네요.

- 웹 애플리케이션 (GMail이나 구글 맵 같은) 페이지를 열 때에는 Omnibox나 탭 등이 보이지 않는 깔끔한 창 형태로 이용하는 것이 가능하다고 합니다.

- 보안 면에서는 Sandboxing을 해서 각각의 프로세스에서 일어나는 일이 다른 프로세스에 전혀 영향을 끼치지 못하도록 되어있으며 내부적으로 철저한 권한 관리가 이루어져 있기는 한데, Plug-in은 별도의 프로세스이니만큼 문제가 생길 가능성이 있다고 하네요. (이건 뭐 다른 브라우져들과 다를 바 없는 듯)


- 구글 크롬은 수시로 악의적인 사이트 목록을 업데이트해서 사용자가 그 사이트에 접근 할 경우 경고 메세지를 띄워준다고 합니다. 일단 사이트에 문제가 발견되면 구글에서는 해당 사이트를 보고 악의가 없다고 판단 될 경우 수정 요청을 한다고 하네요. 이 악의적 사이트 목록은 다른 서비스에서도 이용 할 수 있도록 Public API 형태로 제공 될 예정입니다.


- 끝으로 Gears라는 개념을 내세우고 있습니다. Gear는 웹으로 할 수 있는 일을 늘리기 위하여 브라우져에 추가되는 API 에 가까운 개념으로 보이는데 자세한 설명은 나와있지를 않습니다. "어떤 브라우져에서는 되고 어떤 브라우져에서는 안되면 접근성에 문제가 생기니 좋지 않다. Gears는 모든 브라우져의 향상을 위해 만들어 졌다"라고 주장하는 것을 봐서는 우리 모든 브라우져에 Gears를 달 수 있게 하자 -_- 라고 주장하는 것 같네요.


구글 크롬은 미국 시간으로 9월 2일에 배포 될 예정이며 100여개의 국가에서 동시 런칭되므로 바로 다운받을 수 있다고 합니다. 개인적으로 구글 검색,지메일이나 구글닥 등의 서비스를 매우 만족하고있기 때문에 구글 크롬이 얼마나 훌륭하게 나올지 기대됩니다. 2년이 넘게 입 다물고 개발했다고 하는군요. 베타가 곧 나올거기도 하고 스크린 샷이 제대로 된 게 아직 거의 뜨지 않아서 가장 괜찮은 스샷 1장만 첨부하도록 하겠습니다.
Posted by Listege