티스토리 뷰

 

 

 

 

 

 

2016년 현재 세계 웹브라우저 점유율 50%를 넘어버린 가장 많이 이용하는 브라우저.

 

렌더링 엔진은 2013년 4월 구글에서 웹키트에서 갈라져나온 블링크 엔진으로, 크롬 / 크로뮴과 오페라(버전 15~)에 탑재되었다.관련 링크 하지만 인터넷 익스플로러나 안드로이드처럼 웹키트마저 파편화된다는 우려가 있다. 물론 웹키트 자체도 KHTML의 파편화 비슷한 것이고 이미 노키아를 위시하여 여러 회사에서 웹키트를 파편화시킨 전례가 있기 때문에 새삼스러울 일도 없다. 굳이 말하자면 블링크 엔진은 KHTML의 손자뻘 되는 셈.

주로 구버전 익스플로러를 주로 사용했던 우리나라 사람들이 만약 처음으로 이 브라우저를 쓰면 빠른 속도 때문에 상당히 놀라기도 했었다. GIF애니메이션이나 자바스크립트가 많이 사용된 페이지에서 진가가 드러난다. 다만 램 사용량이 극악이다. 자기 혼자 기가단위로 램을 먹는다. 이 문제에 대한 자세한 내용은 /문제점 문서에서 참조하자.

참고로 크롬 설정에서 시스템 > 가능한 경우 하드웨어 가속 사용에 체크하면 극단적으로 빨라진다.[3] 유저 인터페이스를 매우 간략화시킨 것도 특징이다. 또 브라우저 틀을 최소화하여 가독범위를 늘렸다.[4]

크롬의 초기 버전은 IE에 비해 가볍고 빠른 웹 브라우저였고, 이러한 인식은 지금까지도 국내에 널리 퍼져 있다. 크롬 출시 초창기만 해도 윈도우 용 웹 브라우저는 IE 6, IE 7이 주류였고, 반면 초기 버전 크롬은 가볍고 날렵했기 때문에 당시 열풍이던 넷북에 쓰기 좋다라는 입소문을 타고 점유율을 빠르게 높일 수 있었다.

하지만 2015년 현재 최신 버전을 놓고 본다면 오히려 크롬이 고사양 친화적이고 저사양 윈도우 피씨에서는 IE가 쾌적하다. 서피스 사용자라면 제발 엣지 씁시다 크롬은 빠른 속도와 여러가지 기능들을 위해 점점 몸집이 비대해지는 반면, IE는 버전이 올라가면서 점점 날렵해지며 최신 버전인 IE 11에서는 오히려 크롬보다 가볍고 빠른 모습을 보인다. 따라서 저사양 피씨에서는 오히려 크롬을 멀리하고 IE나 파이어폭스를 쓰는 게 정신건강에 좋다. 특히 동시에 탭을 여러개 열어놓고 사용할 경우 파이어폭스의 램 관리 능력이 진가를 발휘한다. 특히나 램 용량이 작은 경우 크롬은 되도록 멀리해야 한다. 자세한 내용은 후술할 메모리 문제 참조.

버전업 속도도 매우 빠른데 기존과 다르게 숫자를 1씩 마구 올려버리는 식으로 해서 이런 결과가 나온 것이다. 이에 대해 비판하는 사람도 많지만, 크롬이 이 방식을 시작한 이후에 버전넘버를 0.0.01씩 올려가던 리눅스 커널도 버전 넘버를 0.1 씩 올려가고 있으며 파이어폭스도 역시 1씩 올리고 있어 버전 넘버가 크롬처럼 매우 빠르게 올라가고 있다.

탭 브라우징 기능이 있으며, 새 탭을 열 때마다 즐겨찾기나 최근에 방문한 홈페이지 등을 표시해주는 것이 특징이다. 이는 새 탭을 열 때 빈 탭이 아니라 새 탭 페이지(chrome://newtab)를 표시하도록 하기 때문이다. 5대 주요 브라우저 모두 지원하는 기능이며, 크롬에서는 다른 브라우저처럼 새 탭을 띄울 때 about:blank가 뜨도록 할 수 없고, 무조건 chrome://newtab이 뜬다. 다만 확장 프로그램으로 빈 페이지가 뜨게 만들 수 있고 모바일 버전에서는 새 탭이 아니라 다른 사이트를 띄울 수 있다.

파이어폭스와는 달리 각 탭마다 프로세스를 따로 사용하기 때문에 타 브라우저보다 메모리 이용량이 많다. 특히 탭이 많을수록 이용량 차이가 커진다. 이것때문에 컴퓨터 자체의 사양이 좋지 않으면 크롬이 매우 느리게 된다. 대신 한 탭이 다운먹더라도 다른 탭에는 영향이 없으며 탭을 닫을 때마다 프로세스가 종료되기 때문에 메모리 누수가 없고 관리가 쉬운 것이 장점이다. 가용 램 용량이 적은 상태에서 여러개의 탭을 사용하면 가끔 탭 여러개를 같은 프로세스가 관리하기도 한다.

파이어폭스나 오페라처럼 드래그로 탭과 창을 자유롭게 이동 및 분리가 가능한 것도 특징이다. 특이하게 브라우저 자체 작업 관리자가 있는데 Shift + ESC로 가능하다. Windows XP의 경우 작업표시줄 우 클릭으로 실행 가능하다, 나무위키를 띄우고 있는 탭에서는 나무위키 내의 검색창으로 가는 단축키와 겹치기 때문에 쓸 수 없다. 이럴 경우에는 브라우저 최상단의 빈 곳에서 마우스 오른쪽 버튼을 누르면 나오는 메뉴를 통해 열 수 있다.

2013년 11월 Net Applications 통계에 의하면 크롬은 15.44%의 점유율로 인터넷 익스플로러, 파이어폭스에 이어 3위에 랭크되어 있다.# 파이어폭스와는 거의 비슷한 수준. 반면 statcounter의 통계에 의하면 41.87%의 점유율로 1위를 달리고 있다. 실제로 이 차이는 양 사이트에서도 인정했다.# 그 차이는 statcounter가 많은 샘플 사이트의 클릭 수를 바탕으로 점유율을 측정하는 반면, netmarketshare는 적은 수의 표본으로 사용자수를 측정하려고 하기 때문이다. 당시에는 아직 어느 것이 우월하다고 보기는 어려운 상황이었다. 다만 net marketshare의 기준이 현실성 있게 보일 수는 있다. Net Applications 통계를 기준으로도 파이어폭스 점유율을 넘어 2014년 4월에는 17.92%의 점유율을 가지면서 인터넷 익스플로러에 이은 2위에 랭크되었다.# 자세한 내용으로는 아래의 점유율 변동을 참고.

구글 제작답게 구조가 간단해 속도가 빠르며, 렌더링 엔진은 사파리에 사용된 웹키트를 사용하였으나 28 버전부터는 웹키트를 개량하여 만든 블링크라는 엔진을 이용한다. 특히 자바스크립트 처리 엔진으로 덴마크에서 개발한 최신 V8 JavaScript engine을 사용하여 코드가 엉킨 페이지도 미칠 듯한 속도로 로드한다.

V8의 특징은 다음과 같다.


•Hidden class transition: 동일속성 오브젝트마다 숨겨진 클래스를 공유


•Dynamic: Machine Code Generation: V8의 최대 특징으로 자바스크립트 코드를 기계어로 컴파일한다. 즉 JavaScript의 JIT 컴파일러와 비슷한 기능이다.


•Garbage Collection: 효율적인 메모리 관리, 사실 요즘은 크게 특징이랄 것도 없는 이야기지만 이게 나올 당시의 주류였던 IE 6의 가베지 컬렉터가 상식이하로 메모리 누수를 쉽게 발생시키는 구조였기 때문에 본의 아니게 강점으로 부각되었다.

 

크롬 10에선 Crankshaft라는 새로운 자바스크립트 엔진을 공개하면서, 엄청난 성능 향상을 보여줬다.

 

 

 

 

확장 기능 + 앱

프로세스 하나당 확장기능 한 개가 할당되어 크롬 실행 중에도 자유롭게 확장기능을 설치, 비활성화 혹은 제거할 수 있다. 또한 크롬에 내장된 작업 관리자를 통해 메모리 누수 등의 원인을 찾기 쉬우며 문제가 되는 확장기능을 강제로 종료할 수 있다. 파이어폭스의 확장기능보다 관리하기 쉽다. 일부 확장기능은 NPAPI를 통해 강력한 기능을 제공했으나 크롬이 NPAPI 지원을 종료해버렸다. 그래도 한동안은 chrome://flags/#enable-npapi를 주소창에 치고 들어가면 됐지만, 이마저도 2015년 9월에 완전히 종료했다.

크롬의 확장기능은 유연한 관리 능력을 얻은대신 브라우저를 완전히 개조하는 것이 불가능하다.[7] 또한 확장기능을 제작하기 쉽다. 간단한 텍스트 에디터와 이미지 에디터, UTF-8 인코더, 그리고 약간의 HTML 실력만 있으면 된다. 시크릿 창에서는 별도로 옵션을 켜주어야 확장기능이 작동한다. 하지만 익스플로러 탭과 같은 경우 시크릿 창에서도 기록이 남으므로 (IE쪽 정보에) 시크릿 창의 이점을 보기 힘들다. 확장 기능의 경우 구글 크롬 스토어를 사용해 설치 가능하다. 2014년 5월 27일부터 브라우저 보안 강화를 위해 CRX를 이용한 강제설치는 기본 값으로 막혀있다.크롬 공식 블로그 단, 개발자들을 위해 개발자 옵션을 설정하면 설치 가능. 아니면 오페라같은 크롬 기반 변종 브라우저를 쓰는 것이 좋다. 특히 오페라의 경우 CRX파일을 다운받을때 클릭 한번 더 해주면 바로 설치한다.

구글 크롬 스토어의 경우 구글의 통제를 많이 받는다. 예를 들면 확장기능중 유튜브 다운로더가 전부 사라지고 플래시 동영상을 받을 수 있는 확장기능도 유튜브 다운로드를 막았다. 다운로드를 받고 싶다면 유튜브 동영상 다운로드 서비스를 제공하는 사이트를 찾아보거나, 파이어폭스를 이용해야 한다. 하지만 구글 광고 대부분을 무자비하게 검열삭제하는 Adblock Plus는 별 문제없이 지원한다.(...)

크롬의 각종 확장 기능은 아래 사이트 참조.


•구글 크롬 스토어 : 구글의 정식 크롬 스토어로 확장기능과 앱을 설치할 수 있다.


•Chrome Extensions : 비공식 확장 기능 스토어이다.

 

여러 인기있는 확장 기능들도 유저들의 정보를 열심히 수집하고 있던 것으로 드러나, 주의가 요구된다.#

안드로이드 앱을 구글 크롬 OS에서도 실행할 수 있다. 아직까지는 크롬 OS에서만 쓸수 있으나 크롬과 크롬 OS는 거의 같은 형태라서 앞으로 크롬 자체적으로 안드로이드 앱을 작동시킬수도 있다. 최초로 공개된 앱들은 전부 크롬 크롬 스토어에서 설치가 가능하다

 

 

 

 

 

 

확장 기능 + 앱

 

 

크롬의 경우 화면 전체를 활용하기 위해 UI에 신경을 많이 썼다. 이는 대부분 브라우저에 있는 제목표시줄, 주소표시줄, 탭 줄(탭 바), 상태표시줄의 구성만 봐도 알 수 있다.

브라우저를 비롯한 대부분의 프로그램에서 메뉴 모음이 제목 표시줄(타이틀 바) 아래에 위치하는 것이 보통이다. 프로그램 상단의 파일/편집/보기… 등등으로 구성되어있는 부분. 응용프로그램을 만드는 데에서 이런 구성은 도스 시절부터 전해져오는 오랜 전통 같은 것으로 2011년 시점에서도 이런 구성을 탈피한 프로그램은 그다지 많지 않다. 기능적으로도 뛰어난 구성으로 괜히 전통처럼 여겨진게 아니다. 그런데 크롬은 그 부분이 의미없이 논다고 생각했는지 탭만 표시하게 바꾸었다.

이는 하나의 트렌드가 되어 대부분 브라우저가 채택, 혹은 지향하고 있는 것이 되었다. IE 9에서는 주소창까지 위로 올렸다. 덕분에 화면이 작은 넷북 등에서는 탭 서너 개만 켜도 윗줄이 꽉 차게 된다. 하지만 대부분의 다른 브라우저가 과거의 메뉴 모음을 완전히 버리지는 못했는지 왼쪽 위에 뭔가 남겨둬서 파이어폭스 4, 오페라 11는 통합된 메뉴 버튼을 왼쪽 상단에 둔다. 반면 크롬은 제목 표시줄을 완전히 탭으로 표시한다. 때문에 처음 쓰는 경우 왼쪽이 아닌 주소표시줄 오른쪽 끝에 있는 메뉴 버튼을 못 찾는 경우도 있다.

주소 표시줄의 모양도 다른데, 파이어폭스식의 주소창 + 검색창 방식과는 달리 크롬에서는 둘을 하나로 통합했다. 물론 IE 6처럼 주소만 표시하지 않고 검색 엔진으로 등록된 주소이거나 방문 기록에 따라 크롬이 검색 엔진이라고 판단하는 사이트라면 주소를 치고 Tab키를 눌러 순간적으로 주소표시줄을 검색칸으로 바꿀 수 있다. 많이 쓰는 주소의 경우 자동완성까지 지원하기 때문에 검색칸이 따로 없어도 큰 불편이 없다. 예를 들어 구글을 자주 쓸 경우 g만 치고 tab을 눌러도 구글 검색칸이 된다. 이 기능이 나무위키 사이트에도 적용되어 namu.wiki를 치고 tab을 누르면 나무위키 검색칸이 된다.

상태표시줄의 경우 로딩 상태나 링크에 커서를 갖다대는 상태가 아니라면 화면에서 과감하게 없애버린다. 다만 전체화면을 할 경우 파이어폭스나 IE는 커서를 위로 대면 탭 바를 보여주는데 반해 크롬은 정말 화면만 전체로 보여준다. 즉, 단축키나 마우스 제스처가 아니면 탭을 이동할 수 없다.

 

 

 

 

고급 기능

 

개발자를 고려한 브라우저인지, 여느 브라우저보다 소스 편집기가 화려하다. 그러나 개발자 도구를 개발자 도구로 열어보면 원 제작자는 애플사이다.

그리고 주소창에 chrome://으로 시작하는 주소를 입력하면 각종 정보를 열람할 수 있다. 이전에는 about:을 사용했다. 지금도 about:으로 접근하면 chrome://으로 바뀐 뒤에 이동한다. 이 chrome:// 주소 체계는 모질라 파이어폭스도 내부적으로 사용하는데, 크롬의 출시보다 훨씬 전부터 갖가지 의미로 사용하고 있었다. 각종 정보 전체 목록은 chrome://chrome-urls/ 에서 확인할 수 있다. 안드로이드 버전도 절반 이상이 잘 된다. iOS에서도 일부가 된다.


•chrome://accessibility/ - 크롬의 접근성 모드를 켜고 끌 수 있는 곳.


•chrome://appcache-internals/ - 앱 캐시가 된 사이트들을 나열해주는 곳, 각각의 캐시가 차지하는 용량도 표시해준다.


•chrome://apps/ - 일반적인 앱 버튼을 누르면 나오는 곳.


•chrome://blob-internals/ - blobs (Binary large objects) 정보 나열.


•chrome://bookmarks/ - 북마크를 볼 수 있는 곳.


•chrome://cache/ - 캐시된 문서 URL을 보여준다.


•chrome://chrome/ - 크롬의 간단한 정보를 알 수 있다.


•chrome://chrome-urls/ - 고급 기능 목록을 볼 수 있는 곳.


•chrome://components/ - 구성요소를 관리할 수 있다.


•chrome://conflicts/ - 크롬에 로드된 모듈을 볼 수 있다.


•chrome://copresence/ - 활성 명령어, 토큰의 송수신 확인을 할 수 있다.


•chrome://crashes/ - 최근 크래쉬된 시간을 볼 수 있다. 2015년 11월 07일에 닫혀있는 것을 확인했다. 2017년 3월 14일에 '비정상 종료'라는 페이지로 이동하는 것을 확인했다.


•chrome://credits/ - 제작자들을 보는 링크는 아니고, 사실상 오픈소스 라이센스를 볼 수 있는 곳.


•chrome://device-log/ - 기기의 로그를 볼 수 있다.


•chrome://devices/ - 크롬에 연결된 기기를 볼 수 있다.


•chrome://dns/ - DNS 프리패칭 정보를 볼 수 있다.


•chrome://downloads/ - 일반적인 다운로드 링크.


•chrome://extensions/ - 확장 프로그램을 관리할 수 있다.


•chrome://flags/ - 실험적 기능을 활성화, 비활성화 할 수 있다.

◦경고: 해당 실험용 기능은 언제든지 변경, 중지 및 취소될 수 있습니다. 해당 실험용 기능을 사용할 때 발생하는 일에 대해 Google은 보장하지 않습니다. 데이터가 삭제되거나 개인 정보가 예기치 않은 방법으로 유출될 수 있습니다. 본인이 사용 설정한 모든 실험 기능은 해당 브라우저의 다른 사용자도 사용하게 됩니다. 주의해서 진행하시기 바랍니다.[8]

 

•chrome://flash/ - 플래시에 대한 정보를 알 수 있다.


•chrome://gcm-internals/ - 추가 바람.


•chrome://gpu/ - GPU 정보를 알 수 있다.


•chrome://help/ - chrome://chrome/ 과 같은 기능을 수행한다.


•chrome://histograms/ - 추가 바람.


•chrome://history/ - 방문 기록을 알 수 있다.


•chrome://indexeddb-internals/ - 추가 바람.


•chrome://inspect/ - 추가 바람.


•chrome://invalidations/ - 추가 바람.


•chrome://local-state/ - 추가 바람.


•chrome://media-internals/ - 추가 바람.


•chrome://nacl/ - NaCI에 대한 정보를 알 수 있다.


•chrome://net-internals/ - 추가 바람.


•chrome://newtab/ - 말 그대로 새 탭 페이지.


•chrome://omnibox/ - 추가 바람.


•chrome://password-manager-internals/ - 추가 바람.


•chrome://plugins/ - 플러그인을 관리 할 수 있다.


•chrome://policy/ - 크롬에 대한 정책을 관리 할 수 있다. 자세한 내용은 추가 바람.


•chrome://predictors/ - 어떤 페이지를 접속하고 그 어떤 사이트를 첫 번째 접속하는 기준으로 조사한 것을 볼 수 있다. 자세한 것은 추가 바람.


•chrome://print/ - 인쇄 페이지.


•chrome://profiler/ - 추가 바람.


•chrome://quota-internals/ - 추가 바람.


•chrome://serviceworker-internals/ - 추가 바람.


•chrome://settings/ - 크롬 설정 페이지.


•chrome://signin-internals/ - 추가 바람.


•chrome://suggestions/ - 추가 바람.


•chrome://sync-internals/ - 추가 바람.


•chrome://system/ - 시스템 정보를 볼 수 있다. 자세한 내용은 추가 바람


•chrome://terms/ - 크롬에 대한 약관을 볼 수 있다.


•chrome://thumbnails/ - 썸네일을 볼 수 있다.


•chrome://tracing/ - 추가 바람.


•chrome://translate-internals/ - 추가 바람.


•chrome://user-actions/ - 탭 전환, 클릭 등 사용자의 이벤트가 기록된다. 자세한 것은 추가 바람.


•chrome://version/ - 크롬에 대한 자세한 정보를 알 수 있다.


•chrome://view-http-cache/ - chrome://cache/와 같은 페이지.


•chrome://voicesearch/ - 음성 검색 정보를 볼 수 있다. 자세한 것은 추가 바람


•chrome://webrtc-internals/ - 추가 바람.


•chrome://webrtc-logs/ - 추가 바람.

 

밑에 있는 고급 기능은 디버깅용 기능이다.


•chrome://crash - 일반적인 크래시.


•chrome://crashdump - 일반적인 크래시 + 덤프.


•chrome://kill - 자기 프로세스를 킬한다!


•chrome://hang - 크롬을 뻗게 만든다. 크롬 카나리아 56에서는 접속되지 않는다.


•chrome://shorthang - 크롬을 뻗게 만드나, 조금 짧게 뻗게한다. 크롬 카나리아 56에서는 접속되지 않는다.


•chrome://gpuclean - GPU를 클린해준다.


•chrome://gpucrash - GPU를 크래시 시킨다.


•chrome://gpuhang - GPU를 뻗게 한다.


•chrome://ppapiflashcrash - PPAPI Flash를 크래시 시킨다.


•chrome://ppapiflashhang - PPAPI Flash를 뻗게 한다.


•chrome://quit/ - 크롬을 닫는다.


•chrome://restart/ - 크롬을 재부팅 시킨다.

 

여담으로, about:blank(빈 페이지)는 여전히 about:이다.

 

 

 

댓글