Safari 콘텐츠 차단기란 무엇일까? (실제 작동 원리 설명)
아이폰에서 광고를 차단할 방법을 찾아보셨다면 “콘텐츠 차단기"라는 용어를 명확한 설명 없이 접해 보셨을 겁니다. 이것은 Mac의 브라우저 확장 프로그램과 같은 것이 아니고, 그 차이는 대부분의 설명이 짚어 주는 것보다 훨씬 중요합니다.
Safari 콘텐츠 차단기는 어떤 네트워크 요청을 막고 어떤 페이지 요소를 숨길지에 대한 규칙 목록을 Safari에 전달하는 작은 앱 익스텐션입니다. Safari는 그 목록을 읽어 컴파일하고 직접 적용합니다. 규칙을 전달한 익스텐션 자체는 사용자의 브라우징 트래픽을 한 번도 건드리지 않습니다. 바로 이 설계 선택 하나 때문에 콘텐츠 차단기는 그냥 “광고 차단 앱"이 아니라 iOS만의 독자적인 범주로 존재합니다.
콘텐츠 차단기가 실제로 작동하는 방식
애플은 iOS 9에서 SFContentBlockerManager API를 통해 콘텐츠 차단기를 처음 도입했으며, Safari가 어떤 콘텐츠를 차단할지 결정하면서도 서드파티에게 사용자의 브라우징을 들여다볼 창구를 전혀 주지 않기 위해서였습니다.
작동 방식은 이렇습니다. 콘텐츠 차단기 익스텐션은 규칙 객체가 평면 배열로 담긴 JSON 파일을 제공합니다. 각 규칙에는 트리거(맞춰 볼 URL 패턴)와 액션(요청 차단, CSS 선택자로 요소 숨기기, 또는 쿠키 제거)이 있습니다. 익스텐션을 켜면 Safari는 그 JSON을 불러와 효율적인 내부 형식으로 컴파일한 뒤 컴파일된 버전을 저장합니다. 그 이후로 Safari는 각 페이지가 로드될 때마다, 즉 페이지 자체의 스크립트가 실행되기도 전에 그 규칙을 네이티브로 적용합니다.
익스텐션 자체가 하는 일은 하나뿐입니다. 요청받으면 규칙 파일을 Safari에 건네주는 것입니다. 백그라운드에서 실행되지도 않고, 방문하는 페이지를 보지도 않으며, 규칙이 일치했을 때 콜백을 받지도 않습니다. 실제 차단은 전부 Safari 내부에서 이루어집니다.
이것이 콘텐츠 차단기에 규칙 개수의 상한이 확실히 존재하는 이유이기도 합니다. iOS 15 기준으로 콘텐츠 차단기 익스텐션 하나가 담을 수 있는 컴파일된 규칙은 최대 15만 개입니다. URL과 CSS 패턴을 위한 예산치고는 넉넉한 편이지만, 하나의 익스텐션이 허용하는 범위보다 더 넓은 커버리지가 필요한 앱, Blindfold도 여기에 포함됩니다, 은 하나의 거대한 익스텐션 대신 여러 개의 콘텐츠 차단기 익스텐션을 나누어 제공하는 이유이기도 합니다.
브라우저 확장 프로그램 광고 차단기와 다른 이유
데스크톱 브라우저에서 광고 차단기 확장 프로그램은 페이지와 나란히 실행되는 작은 프로그램입니다. DOM을 읽고, 네트워크 요청을 실시간으로 지켜보며, 페이지가 로드되기 시작한 뒤에 내용을 다시 쓰거나 제거합니다. 이것은 강력한 방식이며, 페이지 내용을 살펴보고 그에 따라 무엇을 할지 판단하는 것처럼 Safari 콘텐츠 차단기가 할 수 없는 영리하고 동적인 일을 데스크톱 광고 차단기가 해낼 수 있는 이유이기도 합니다.
Safari 콘텐츠 차단기는 그렇게 할 수 없습니다. 정적인 규칙 파일을 건네고 물러날 뿐입니다. 실시간 페이지를 들여다볼 방법이 없고 렌더링 시점에 판단을 내릴 수도 없습니다. 모든 규칙은 화면에 나타난 것에 반응하는 로직이 아니라 미리 정해진 패턴으로 작성되어 있어야 합니다.
이것은 실제 트레이드오프이며, 솔직하게 짚을 가치가 있습니다. 대신 얻는 것은 속도와 프라이버시입니다. 사용자의 브라우징 정보는 그 어떤 것도 익스텐션에 닿지 않고, 매 페이지를 살펴보기 위해 삽입되는 스크립트도 없으며, Safari는 페이지가 렌더링을 시작하기도 전에 규칙을 적용하지, 다 나타난 뒤에 정리하지 않습니다. 대부분의 광고·트래커 차단에서는 미리 계산된 규칙만으로 압도적인 다수의 경우를 커버합니다. 정적인 목록이 한계를 드러내기 시작하는 지점은 마지막 몇 퍼센트, 즉 아직 알려진 패턴과 일치하지 않는 광고들입니다.
아이폰에서 콘텐츠 차단기를 확인하고 관리하는 곳
설치한 모든 콘텐츠 차단기는 설정 > Safari > 확장 프로그램 한곳에 모여 있습니다. (iOS 15 이전 버전에서는 이 화면이 설정 > Safari > 콘텐츠 차단기로 표시되었습니다.) 각각 자체적인 켜기/끄기 스위치가 있으며, 서로 충돌하지 않으므로 여러 개를 동시에 켜 둘 수 있습니다. Safari가 컴파일된 규칙을 전부 합쳐서 적용할 뿐입니다.
새 콘텐츠 차단기를 켠 뒤 어떤 사이트가 깨진 것처럼 보인다면 가장 먼저 확인할 곳이 여기입니다. 의심되는 익스텐션을 끄고 페이지를 새로고침하면 몇 초 안에 그것이 원인이었는지 알 수 있습니다.
Blindfold가 자리하는 지점
Blindfold는 광고, 프라이버시, 방해 요소라는 세 개의 콘텐츠 차단기를 별도로 제공하며, 합쳐서 13만 개 이상의 규칙을 담고 있습니다. 광고 네트워크, 추적 스크립트, 쿠키 장벽, 고정 오버레이를 다루며, 다른 모든 콘텐츠 차단기와 같은 방식으로 작동합니다. Safari 자신이 컴파일하고 적용하며, 사용자의 브라우징을 전혀 들여다보지 않습니다.
위에서 설명한 정적 목록의 트레이드오프는 실제로 존재하므로, Blindfold는 한 겹을 더 얹었습니다. 애플의 온디바이스 모델이 페이지 로딩이 끝난 뒤, 즉 순수한 콘텐츠 차단기가 손댈 수 없는 바로 그 순간에 페이지 요소를 검토하고, 정적 목록이 놓친 것을 발견하면 정밀한 숨김 규칙을 작성합니다. 이 분석은 전적으로 사용자의 아이폰 안에서만 실행됩니다. 브라우징하는 어떤 내용도 어디로도 보내지지 않습니다. AI가 작성한 모든 규칙은 앱에 그대로 나타나 완전히 보이며, 다른 규칙과 마찬가지로 수정하거나 삭제할 수 있습니다.
목록은 매일 무선으로 갱신되므로 앱스토어 업데이트 없이도 새 규칙이 도착합니다. 30일 무료 체험 후 $7.99/년, 또는 일회성 결제 $19.99의 평생 이용 옵션이 있으며, 두 옵션 모두 가족 공유가 포함되고 계정도 필요 없습니다. 전체 기능은 Blindfold 홈페이지에서 확인하거나 App Store에서 받아보세요.
아이폰 광고를 줄이는 다른 선택지와 콘텐츠 차단기를 저울질하고 계시다면, 아이폰 광고 차단 전체 가이드에서 Safari 내장 설정, VPN 기반 차단기 등 나머지 방법과 각각의 장단점을 다룹니다.