Safari
가장 빠르고 효율적인 브라우저.
크롬이 다 닦아놓은 표준 웹 도로 위에 혼자서 역주행 표지판을 박아두는 브라우저. 사실상 iOS 내의 대체 브라우저 허용을 막아서 수명을 연명하고 있을 뿐이다.
1. 개요
애플의 자사 생태계 전용 기본 탑재 웹 브라우저. 자체 개발 렌더링 엔진인 WebKit을 기반으로 동작하며, 미려한 스크롤 애니메이션과 독보적인 전력 대 효율비를 자랑한다. 그러나 Chromium 진영이 장악한 현대 웹 생태계에서 독자 노선을 지나치게 고집하는 탓에, 실무 개발자들 사이에서는 과거 'Internet Explorer'의 사악함을 계승한 '신세대 IE(The New IE)'라는 무시무시한 멸칭으로 불리고 있다.(...)
2. WebKit 독점이라는 철옹성
iOS 환경의 사파리가 강력한 위상을 유지할 수 있는 진짜 비결은 성능이 아니라 자비 없는 앱스토어 심사 가이드라인 2.5.6조에 있다. iOS용으로 출시되는 모든 브라우저 앱(Chrome, Firefox 등)은 겉포장만 다를 뿐 속알맹이는 무조건 사파리의 엔진인 WebKit을 강제로 갖다 써야 한다.1 즉, iOS 안에서는 진정한 의미의 '크롬'이나 '파이어폭스'는 존재하지 않으며, 단지 사파리 위에 크롬 스킨을 씌운 것에 불과하다. 이로 인해 생태계 경쟁이 완전히 실종되어 웹 기술의 도입 속도가 극도로 더디다며 EU 등 독점규제 당국으로부터 흠씬 두들겨 맞고 있는 중이다.
3. 개발자들을 환장하게 만드는 버그와 독자 규격
실무에서 사파리를 테스트하다 보면 온갖 기상천외한 버그들을 영접할 수 있다. 분명 표준 명세대로 코딩한 CSS Flexbox나 Grid 레이아웃이 사파리에서만 처참하게 깨지거나, 뒤로 가기 시 자바스크립트 상태가 초기화되지 않고 유령처럼 굳어버리는 Bfcache 버그는 이미 클래식 반열에 올랐다. 게다가 모바일 웹앱의 핵심인 PWA 및 푸시 알림 표준 스펙은 '네이티브 앱 생태계(App Store 매출 30% 수수료)를 보호하기 위해 고의로 늦게 도입하는 것이 아니냐'는 심증 섞인 합리적 의심을 사고 있다.(...)
4. 관련 밈 및 드립
4.1. The New Internet Explorer (새로운 IE)
과거 IE6가 웹 표준을 깡그리 무시하고 독자 행보를 걸어 웹의 발전을 10년 넘게 후퇴시켰던 행보를, 현재 사파리가 고스란히 답습하고 있다는 점을 풍자한다. 특히 '크롬에선 잘 되는데요?'라는 기획자의 질문에 개발자가 이마를 짚으며 '사파리 대응 중입니다...'라고 답하는 것이 정형화된 실무 클리셰다.
4.2. 100vh의 악몽
모바일 사파리에서 화면 높이를 꽉 채우기 위해 height: 100vh를 선언하면, 사파리 하단의 동적 주소창 영역을 고려하지 않고 레이아웃이 화면 밖으로 넘쳐서 툭하면 잘려 나가는 끔찍한 현상. 결국 개발자들은 자바스크립트로 윈도우 높이를 계산해 --vh라는 커스텀 변수를 억지로 쑤셔 넣는 구차한 해결책을 공유해야 했다.
5. 여담
- 윈도우용 사파리의 존재: 놀랍게도 2007년부터 2012년까지 Windows 버전 사파리가 실제로 배포되었으나, 극악무도한 최적화와 맥용 폰트 렌더링 방식을 억지로 이식한 어색함 때문에 쥐도 새도 모르게 단종되었다.
- WebKit의 이탈: 현재 브라우저 시장을 지배하는 크롬의 Blink 엔진은 원래 사파리의 WebKit 엔진에서 갈라져 나온(Fork) 파생형 엔진이다. 즉, 자식이 부모를 잡아먹은 셈이다.
- 엄격한 쿠키 차단: 사용자 추적을 막는다는 명목 하에 서드파티 쿠키를 자비 없이 차단해버리는 ITP(Intelligent Tracking Prevention) 기술을 도입하여, 전 세계의 맞춤형 배너 광고 업계와 마케터들의 통장을 피폐하게 만들었다.(...)