여러분만의 애용하는 브라우저가 있으신가요? 그렇다면 그 브라우저의 매력은 무엇인가요? 어떤 사람에게는 다양한 플러그인과 확장 프로그램이 매력 포인트일 수 있고, 또 어떤 사람들은 개인정보 보호를 보장하는 브라우저를 선호하기도 합니다.
하지만 많은 사용자들에게 가장 중요한 요소는 단연코 '속도'입니다.
그렇다면 왜 어떤 브라우저는 다른 브라우저보다 빠를까요? 이는 기술적인 요소와 사용자가 직접 관리할 수 있는 요소로 나누어 살펴볼 수 있습니다. 자세히 알아보겠습니다.
기술적 요소
모든 브라우저는 개발사마다 서로 다르게 설계되고 코딩되어 있습니다. 이러한 설계 방식의 차이는 웹 페이지가 로드되는 데 걸리는 시간에 직접적인 영향을 미칩니다.
여기서 주목해야 할 두 가지 핵심 요소는 브라우저 엔진과 자바스크립트 엔진입니다.
브라우저 엔진
브라우저 엔진은 모든 브라우저의 핵심 구성 요소입니다. HTML과 CSS 코드를 해석하고 화면에 표시하며, 보안 정책을 적용하는 등 다양한 작업을 담당합니다.
최소한 브라우저 엔진은 HTML 및 XML 문서와 이미지를 표시하고, 글꼴, 색상, 텍스트 크기를 지정할 수 있습니다. 사용 중인 브라우저에 따라 PDF 등 다른 문서 형식도 함께 표시할 수 있습니다.
주요 브라우저 엔진
여러 브라우저 엔진이 존재하지만, 일반적으로 접하게 되는 네 가지 대표적인 엔진은 Blink, EdgeHTML, Gecko, WebKit입니다.
Blink는 구글, 오페라, 어도비, 인텔, 삼성이 공동으로 개발한 크로스 플랫폼 엔진으로, Chrome과 Opera에서 사용됩니다. 원래 WebKit의 포크(fork)로 시작되었으며, WebKit 자체는 KDE의 KHTML과 KJS 라이브러리에서 파생된 것입니다. GNU LGPL 라이선스를 따르므로 누구나 자유롭게 사용할 수 있습니다.
EdgeHTML은 마이크로소프트의 독점 브라우저 엔진으로, 자사의 Edge 브라우저 전용으로 개발되었습니다. 2015년 인터넷 익스플로러에 사용되던 Trident를 대체했으며, 이론적으로 Blink 및 WebKit과 완전히 호환됩니다.
Gecko는 모질라(Mozilla)의 브라우저 엔진입니다. Firefox와 Thunderbird, 그리고 여러 덜 알려진 브라우저에서 사용되고 있습니다.
마지막으로 WebKit은 애플(Apple)의 브라우저 엔진입니다. Safari, 아마존 킨들 브라우저, Tizen 스마트 TV, 블랙베리 OS에서 사용되며, 2013년까지는 Chrome의 브라우저 엔진이기도 했습니다.
그 외에도 Goanna(Gecko의 포크)나 Servo(모질라의 실험적 엔진) 같은 브라우저 엔진을 만날 수 있습니다.
중요성이 줄어드는 브라우저 엔진
2000년대에는 브라우저 엔진이 경쟁 브라우저보다 페이지를 더 빠르게 로드할 수 있는지를 결정하는 가장 중요한 요소였습니다.
그러나 기술이 정교해지면서 브라우저 엔진의 중요성은 점차 줄어들고 있으며, 더 이상 성능 면에서 가장 중요한 기술적 요소가 아닙니다.
대신 주목해야 할 것은 바로 자바스크립트 엔진입니다.
자바스크립트 엔진
각 브라우저는 고유한 자바스크립트 엔진을 사용합니다. 웹 페이지 로딩 속도에 가장 큰 영향을 미치는 요소가 바로 이 엔진입니다.
모르실 수도 있지만, 자바스크립트는 인터넷에서 널리 사용되는 프로그래밍 언어로, 인터랙티브 객체나 애니메이션 같은 사용자 경험 기능의 대부분을 담당합니다.
자바스크립트 엔진은 사이트의 자바스크립트 코드를 브라우저가 최단 시간에 해석할 수 있는 최적화된 출력물로 변환하는 역할을 합니다. 주요 브라우저마다 서로 다른 자바스크립트 엔진을 사용합니다.
V8
V8은 구글의 자바스크립트 엔진으로, 2008년 Chrome이 처음 출시된 때부터 사용되어 왔습니다.
두 개의 코드 컴파일러를 갖추고 있습니다. Full-codegen은 빠르지만 최적화되지 않은 코드를 생성하는 컴파일러이고, Crankshaft는 느리지만 최적화된 코드를 생성하는 컴파일러입니다. 코드는 먼저 Full-codegen을 거치며, Crankshaft가 최적화가 필요하다고 판단하면 개입합니다.
JavaScriptCore
Nitro라는 이름으로도 불리는 JavaScriptCore는 애플 Safari 브라우저의 기반이 되는 두 번째 주류 자바스크립트 엔진입니다.
V8과 작동 방식이 다릅니다. 두 개의 컴파일러를 사용하는 대신, 모든 자바스크립트를 어휘 분석(lexical analysis)을 통해 토큰으로 변환합니다. 파서(parser)가 토큰을 바이트코드로 변환하면, 네 개의 JIT(Just-in-Time) 프로세스가 바이트코드를 실행합니다.
SpiderMonkey
SpiderMonkey는 최초의 자바스크립트 엔진입니다. 1990년대 넷스케이프(Netscape)가 개발했으며, 넷스케이프가 몰락한 후 오픈 소스로 공개되었습니다. 현재는 모질라가 유지 관리하며 Firefox에서 사용됩니다.
그 외에 흔히 볼 수 있는 자바스크립트 엔진으로는 마이크로소프트 Edge에 탑재된 Chakra가 있습니다.
가장 빠른 자바스크립트 엔진은?
어떤 자바스크립트 엔진이 가장 빠른지에 대한 확실한 답은 없습니다. 어떤 자바스크립트 코드는 Safari에서 더 빠르게 실행될 수 있고, 또 다른 코드는 Chrome에서 더 빠르게 실행될 수 있습니다.
차이의 상당 부분은 기반 자바스크립트가 작성된 방식과 각 엔진의 컴파일러와 얼마나 잘 호환되는지에 따라 결정됩니다. 또한 일부 브라우저는 로딩 및 캐싱 알고리즘을 활용해 사이트별로 속도를 더욱 개선하기도 합니다.
사용자가 관리할 수 있는 요소
브라우저 간 속도 차이의 일부는 사용자가 직접 통제할 수 있는 요소에 달려 있습니다. 지금 바로 개선할 수 있는 세 가지 일반적인 문제를 소개합니다.
1. 업데이트
항상 최신 버전의 브라우저를 사용하고 있는지 확인하세요.
새로운 기능 추가와 보안 강화 외에도, 내부 기술은 끊임없이 개선되고 있습니다. 오랫동안 업데이트하지 않았다면, 업데이트 버튼 하나만 눌러도 상당한 속도 향상을 경험할 수 있습니다.
2. 확장 프로그램 및 애드온
플러그인, 확장 프로그램, 애드온은 브라우저의 기능을 크게 확장해 줍니다. 하지만 동시에 CPU와 RAM 같은 시스템 자원을 상당량 소모하여 브라우저의 부담이 될 수 있습니다.
더 많은 확장 프로그램을 추가하고 싶은 유혹이 들겠지만, 꼭 필요한 것만 설치하는 것이 좋습니다.
3. 브라우징 데이터
브라우저는 사용 패턴에 관한 방대한 데이터를 수집합니다. 여기에는 검색 기록, 쿠키, 다운로드 로그 등이 포함되며, 점점 커지는 캐시도 함께 생성됩니다.
이런 데이터를 주기적으로 정리하면 속도가 눈에 띄게 개선될 수 있습니다. 브라우저가 백그라운드에서 파일을 뒤져 필요한 정보를 찾는 데 드는 시간이 줄어들기 때문입니다.
인터넷 경험을 더 빠르게 하는 다른 방법
빠른 인터넷 환경에서 브라우저는 한 부분일 뿐입니다. 라우터, Wi-Fi 네트워크, ISP(인터넷 서비스 제공업체), 지리적 위치 등도 모두 속도에 영향을 미칩니다.
이 중 일부는 사용자가 직접 관리할 수 있습니다. Wi-Fi 사용 시 피해야 할 실수나 DNS 설정 변경에 관한 가이드를 참고하면 인터넷 연결 속도를 개선하는 데 큰 도움이 될 것입니다.