tl;dr
Blink가 브라우저 엔진 세상을 정복하고 있다. WebKit과 Gecko의 미래는?
Chromium! Chromium!! Chromium!!!
2008년 처음 WebKit 엔진을 이용해 개발했던 Chromium이 오픈소스로 10년을 버티고, 6년 전부터는 WebKit을 Fork한 엔진인 Blink 엔진과 뛰어난 성능의 JavaScript 엔진인 V8 엔진의 조합으로 전세계를 정복하고 있다.
처음에는 자체 브라우저를 만들고싶어하는 몇개 회사에서 Chromium을 Fork에서 자체 브라우저를 구현하고는 했는데 대표적인 예가 Whale과 Samsung이 있겠다. (사랑해요 Whale)
흔히 전세계 5대 브라우저라고 하면 아래 다섯가지 브라우저를 의미한다.
- Google Chrome
- MS Edge (IE 개X)
- Firefox
- Opera
- Safari
이 중에서 현재 Firefox와 Safari를 제외한 나머지 세개 브라우저는 전부 Chromium을 기반으로 하고있다. MS Edge는 정확히는 Trident 엔진을 포기하고 Chromium 기반으로 구현하기로 하였고 현재 Canary Build가 나온 상태다.
걱정되는 상황은 Google이 자사가 원하는 스펙을 Chrome에 탑재하는 속도가 상당히 빠르고, 이를 통해서 특정 기업이 스펙을 독점하는 상황이 발생할 수도 있다는 것인데 Opera나 MS가 Google을 잘 견제할 것이라 생각하고 있다. Samsung과 NAVER 등에도 Chrome 커미터들이 있기 때문에 그 분들도 잘 견제할 거라 생각한다.
한가지 확실한 것은 브라우저 스펙을 가장 빨리 반영하는 브라우저는 Chromium이다. 따라서 현재 브라우저의 업데이트에 대해서 잘 알고싶다면 Chrome의 업데이트 릴리즈를 보는 것이 좋다.
Chromium 프로젝트:
Chromium 블로그:
WebKit
아마 WebKit은 앞으로도 여전히 Apple을 뒤에 업고 꾸준히 발전해나갈 것이라 생각한다. 메인테이너가 다른 브라우저에 비하면 부족한 편이지만 그럼에도 불구하고 꾸준히 표준 + 미래 표준을 잘 준수하고자 노력하고 있다.
WebKit이 특별히 어떤 부분을 선도하고 있냐고 물어본다면 나는 Graphics 쪽이라고 생각한다. Dark Mode를 제일 처음 브라우저에서 지원한 것도 WebKit이고, 이번 Google I/O에서 발표한 Web GPU 같은 것을 제일 처음 지원한 것도 WebKit이다 (시작은 Google에서 했다).
다만 한가지 Apple이 비난받을 포인트는 iOS에서는 모든 브라우저 벤더들이 Safari를 기준으로 구현해야한다는 것이다. iOS 버전의 Firefox가 오픈소스로 열려있기 때문에 어떤 구조로 iOS용 브라우저를 구현해야하는 지 살펴보면 좋을 듯 하다.
Gecko
Firefox는 엔진을 꾸준히 개선해나가고 있다. Project Quantum이라는 프로젝트를 통해 다른 브라우저가 가지고 있는 장점들을 녹여내면서 뛰어난 퍼포먼스를 내기 위해서 노력하고 있다. 또한 브라우저 언어를 C++에서 Rust로 바꾸는 과정을 거치고 있다.
현재 존재하는 브라우저 중 특정한 회사에 귀속하고 있지 않은 브라우저는 현재 Firefox밖에 없으며, 놀랍게도 성능도 상당히 좋은 편이다. 다만 최근 나오는 서비스들이 대부분 WebKit과 Chrome만을 기준으로 구현하고 있기 때문에 Firefox에서 정상적으로 동작하지 않는 경우가 있다.
개인적으로 이런 상황에 대해서 굉장히 유감적으로 생각하고 있다. (우리 불여우도 사랑해주세요)
MS Edge
한국을 기준으로 한다면 IE 점유율은 상당히 높다. 지난 PWA 코드랩에서도 이야기했지만 한국에서는 낮은 브라우저를 기준으로 스펙을 정하고 구현해놓는 형태로 더 나은 브라우저를 이용하더라도 낮은 브라우저의 UX를 기준으로 사용하는 경우가 많다.
MS가 비교적 오픈소스에 관심도를 높이면서 자사 자바스크립트 엔진인 Chakra 엔진을 오픈소스로 내놓는 등 많은 행보를 보였으며, 드디어 Edge를 Chromium 기반으로 만들었다.
현재 최신 버전의 Canary는 Chromium 기반으로 개발되어있는 상태이다.
따라서 지금까지 Edge 코드를 예외처리하던 사람들은 UA를 다시 잘 살펴보고 예외처리 코드를 변경해야할 필요가 있다. YouTube에서 비슷한 문제가 발생했었다. (근데 이제 예외처리 할 필요가 없을걸?)
결론은?
웹 개발자로써는 Chromium이 브라우저 시장을 많이 지배하고 있는 것이 개발하는 데 용이하기 때문에 좋다는 생각이 들 때도 있지만, 한편으로는 특정 기업이 브라우저의 스펙을 크게 좌지우지 하고있는 상태가 MS의 그 상태와 비슷할 수도 있다는 생각이 든다.
2020년의 웹 개발은 조금 더 쉬워질 수도 있겠다. 적어도 IE의 점유율은 점점 낮아지고 있고 Chrome이나 Edge를 사용하는 사람들이 많아질 거니, 하지만 이 상황을 단순히 즐기는 것 뿐만 아니라 항상 주의하면서 기술을 사용해야한다고 생각한다.
Chromium의 점유율이 높다고 하여 Firefox나 Safari 유저를 외면하지는 말자.