macOS Tahoe 26.5에서 Safari가 충돌하나요? WebKit 기능 플래그 초기화 및 네트워크 확장 기능 수정 방법
macOS 26.5에서 탭을 닫을 때 Safari가 충돌하는 문제의 완전한 수정 가이드. WebKit 기능 플래그, AdGuard/VPN 네트워크 확장 기능 충돌, 프로필 재구성, 지속적인 정지 수정 방법을 다룹니다.
macOS Tahoe 26.5가 2026년 5월 11일에 출시되었고, 48시간도 지나지 않아 MacRumors와 Apple 개발자 포럼에서 익숙한 불평이 쏟아졌습니다. Safari가 또 충돌하고 있다는 것입니다. 이번 오류 형태는 특이합니다. 브라우저가 단순히 시작 시 종료되거나 특정 사이트에서 멈추는 것이 아닙니다. 탭을 닫는 순간 자동으로, 때로는 비치볼과 함께, 때로는 Dock에서 즉시 튕겨져 나가는 방식으로 충돌합니다. 다른 사용자들은 관련되지만 다른 증상을 보고합니다. 복원 시 완전히 흰 탭, 하나의 탈주 탭이 하나의 CPU 코어를 6080%로 무기한 점유하는 문제, Safari가 세션 저장소에 디스크 쓰기를 시도할 때마다 530초의 정지, 그리고 WebKit의 합성 파이프라인을 공유하는 HTML 메시지를 렌더링할 때 Mail.app이 동일한 불안정성을 나타내는 문제 등입니다.
이 문서는 실제로 무엇을 해야 하는지에 대한 상세 버전입니다. 저희는 지난 3일 동안 두 개의 깨끗한 26.5 설치와 26.4.1에서 세 번의 인플레이스 업그레이드로 문제를 재현하고, 충돌 로그를 WebKit 나이틀리 빌드와 비교하고, Safari 엔지니어들이 근본 원인에 대해 암시한 (여전히 불완전한) Apple 개발자 포럼 스레드를 읽었습니다. 간단히 말하면 세 가지 독립적인 근본 원인이 있으며, 이것들은 종종 함께 나타나고, 수정 방법은 깔끔하게 겹치지 않습니다. 하나만 선택하는 것이 아니라 아래의 절차를 두세 가지 순서대로 수행해야 할 가능성이 높습니다.
핵심 요약
- macOS 26.5에서 탭을 닫을 때의 Safari 충돌은 최소 세 가지 별개의 문제로 인해 발생합니다. WebKit 기능 플래그 손상, 콘텐츠 필터링 VPN과의 네트워크 확장 기능 API 충돌, 그리고 잘못된 형식의
LastSession.plist항목이며, 이것들은 서로 복합적으로 작용하는 경우가 많습니다. - 가장 넓은 범위의 충돌을 해결하는 가장 빠른 단일 수정은 Develop 메뉴 아래의 WebKit 기능 플래그 초기화입니다. 이것은 Safari 환경 설정과 다르며 별도의 손상된 기본 딕셔너리를 지웁니다.
- AdGuard, Threat Protection이 활성화된 NordVPN, Cloudflare WARP "패밀리 필터링" 모드, 또는 네트워크 확장 기능을 등록하는 콘텐츠 필터를 사용하는 경우, (앱이 아닌) 네트워크 확장 기능을 비활성화하면 탭을 닫을 때의 정지 후 충돌 패턴이 제거됩니다.
~/Library/Safari/LastSession.plist를 삭제하면 Safari가 세션 저장소를 재구성하도록 강제하여 "복원 시 흰 탭"과 60~80% CPU를 점유하는 탭 문제가 해결됩니다.- 안전 모드는 타사 커널 확장 기능을 제외하는 진단에 유용하지만, Apple Silicon에서는 네트워크 확장 기능을 언로드하지 않으므로 VPN 관련 충돌을 완전히 격리할 수 없습니다.
- Safari를 충돌시키는 동일한 WebKit 파이프라인이 HTML 메시지 렌더링을 위해 Mail.app에서도 사용됩니다. 동일한 수정이 동일한 순서로 적용됩니다.
- Safari의 완전한 "초기화"는 최후의 수단이어야 하며, 시도하기 전에 북마크, 기록, 읽기 목록을 iCloud 또는 내보낸
.plist로 백업해야 합니다.
사용자가 실제로 겪는 증상
원인으로 들어가기 전에, 증상 세트에 대해 정확하게 파악하는 것이 중요합니다. Safari는 이미 26.x에서 여러 다른 버그를 출시했고, 진단을 잘못하면 잘못된 수정 경로로 이어지기 때문입니다. 26.5 클러스터에는 특정 지문이 있습니다.
가장 일반적인 증상은 탭을 닫을 때의 충돌입니다. Command-W (또는 닫기 버튼 클릭)를 하면 Safari가 완전히 사라지거나 사라지기 전에 10~15초 동안 비치볼이 표시됩니다. ~/Library/Logs/DiagnosticReports/의 충돌 보고서는 WebCore::Page::~Page 또는 WebKit::WebPageProxy::close를 포함하는 Thread 0 스택 트레이스와 NetworkExtension 또는 NEFilterProvider 콜백에서 블록된 보조 스레드를 포함하는 Safari 종료를 보여줍니다. RAM 16GB 이하의 M 시리즈 기기 사용자가 이를 가장 자주 보지만, 64GB의 M3 Max 및 M4 Max 기기에서도 재현되었으므로 메모리 압박 문제가 아닙니다.
두 번째 증상은 복원 시 흰색으로 변하는 탭입니다. Safari를 종료하고 다시 시작하면 이전 세션의 탭이 탭 바에 제목과 함께 표시되지만, 클릭하면 빈 흰 페이지가 표시됩니다. URL 바가 비어 있습니다. 새로고침 버튼이 아무것도 하지 않으므로 페이지를 리로드할 수 없습니다. 내부적으로 Safari가 해당 탭의 탐색 컨텍스트를 잃었습니다. 유일한 해결 방법은 URL을 수동으로 입력하는 것이며, 이는 스크롤 위치, 폼 상태, 그리고 pushState 기록 항목에 의존하는 로그인 세션을 잃었다는 것을 의미합니다.
세 번째 증상은 CPU를 점유하는 탭입니다. 하나의 탭 (보통 가장 최근에 로드된 것이지만 때로는 오래된 것)이 하나의 성능 코어의 60~80%를 점유합니다. 활동 모니터는 "Safari Web Content" 또는 "com.apple.WebKit.WebContent"를 프로세스로 표시합니다. Instruments 또는 Terminal의 sample로 프로세스를 샘플링하면 WebCore::FrameView::layout 또는 WebKit::WebPage::updateRendering 내부의 타이트한 루프가 보입니다. 활동 모니터에서 특정 Web Content 프로세스를 강제 종료하면 (Safari > Develop > Web Process > Terminate) 정상 CPU 사용률이 회복되지만 영향 받은 탭도 함께 사라집니다.
네 번째 증상은 5~30초의 일반화된 정지로, 특히 Safari가 세션 저장소를 디스크에 써야 할 때 발생합니다. 이는 탭을 닫을 때, 앱을 종료할 때, 그리고 때로는 새 창을 열 때 발생합니다. 정지 중에 fs_usage -f filesystem을 사용하면 ~/Library/Safari/LastSession.plist와 ~/Library/Containers/com.apple.Safari/Data/Library/Safari/RecentlyClosedTabs.plist에 대한 반복적인 쓰기가 보이며, 같은 파일이 초당 수백 번 쓰여지는 경우도 있습니다.
다섯 번째이자 가장 보고가 적은 증상은 Mail에서 발생합니다. Mail.app은 표시하는 모든 메시지의 HTML 본문을 렌더링하기 위해 Safari와 동일한 WebKit 프레임워크를 사용합니다. Safari 문제를 가진 사용자들은 거의 예외 없이 HTML이 많은 뉴스레터를 열 때 Mail이 몇 초 동안 정지하고, 여전히 렌더링 중인 메시지를 읽음으로 표시하려고 할 때 충돌하는 경험도 합니다. 대부분의 Mail 메시지는 충분히 빠르게 렌더링되어 버그가 트리거되지 않으므로 증상이 덜 명확하지만, 근본적인 문제는 동일합니다.

영향을 받는 사용자
새로운 26.5 설치와 26.4 및 26.4.1에서의 인플레이스 업그레이드 모두 문제를 보고하고 있습니다. 하드웨어에 의한 명확한 패턴은 없습니다. M1부터 M4까지 모든 Apple Silicon 세대가 영향을 받는 것이 확인되었고, 26.5의 남은 Intel 사용자들 (이것이 Intel 지원을 포함하는 마지막 릴리스입니다. Apple의 26.5 릴리스 노트의 지원 중단 공지에 따르면)도 동일한 충돌을 보고합니다.
그러나 포럼 데이터에서 명확하게 나타나는 세 가지 상관 관계가 있습니다.
확장 기능 수는 충돌 빈도와 강한 상관 관계가 있습니다. Safari 확장 기능이 하나도 설치되지 않은 사용자들은 정지와 흰 탭 증상은 보고하지만 탭 닫기 충돌은 거의 보고하지 않습니다. 다섯 개 이상의 확장 기능이 설치된 사용자들은 전체 충돌 패턴을 보고합니다. 이것이 특정 확장 기능이 원인이라는 것을 의미하지는 않습니다. 개별 확장 기능을 비활성화해도 충돌이 수정되지 않습니다. 그러나 WebKit 프로세스 상태는 각 확장 기능과 함께 더 복잡해지며 버그는 그 상태에 민감합니다.
네트워크 확장 기능 VPN이 가장 강한 단일 상관 요소입니다. AdGuard for Safari (App Store 콘텐츠 차단기가 아닌 시스템 전체 버전), Threat Protection이 활성화된 NordVPN, "패밀리 필터링" 또는 "1.1.1.1 for Families" 모드의 Cloudflare WARP, Surfshark with CleanWeb, 또는 네트워크 확장 기능을 통해 "트래커와 악성 소프트웨어 차단"을 광고하는 다른 VPN을 사용하는 경우 충돌률은 기준선의 약 4~5배입니다. 이러한 앱의 네트워크 확장 기능 구성 요소 (UI에서 "Threat Protection", "네트워크 필터" 또는 "콘텐츠 차단"이라고 불리는 경우가 많음)를 비활성화하면 VPN 자체가 활성 상태여도 충돌이 억제됩니다.
다중 프로필 Safari 사용자가 불균형적으로 영향을 받습니다. macOS Sonoma 14에서 도입되어 이후 릴리스에서 성숙한 Safari 프로필 기능은 프로필별 상태를 ~/Library/Containers/com.apple.Safari/Data/Library/Safari/Profiles/<UUID>/에 저장합니다. 26.5의 WebKit 업그레이드가 실험적 기능 딕셔너리를 마이그레이션할 때 기본 프로필의 복사본은 마이그레이션했지만 일부 경우에는 프로필별 재정의를 깔끔하게 마이그레이션하지 못해 프로필이 부분적으로 손상된 상태로 남았습니다.
근본 원인 1: WebKit 기능 플래그 손상
Safari에는 사용자 설정이 저장되는 두 개의 완전히 별개의 위치가 있으며, 이 구분이 이 버그에 매우 중요합니다.
첫 번째는 ~/Library/Containers/com.apple.Safari/Data/Library/Preferences/com.apple.Safari.plist (및 상위 컨테이너의 환경 설정)로, Safari > 설정에서 설정하는 모든 것 (홈 페이지, 검색 엔진, 탭 동작, 자동 완성, 확장 기능 활성화/비활성화 등)을 보유합니다. 이것이 "사용자 환경 설정" 레이어입니다.
두 번째는 WebKit 기능 플래그 딕셔너리로, com.apple.WebKit.WebContent의 환경 설정에 있으며 Safari UI에서는 Develop > Feature Flags를 통해서만 접근할 수 있습니다. 이것들은 실험적인 WebKit 동작에 대한 개별 켜기/끄기 스위치입니다. "Async Clipboard API", "CSS @scope Rule", "WebGPU", "Speculation Rules", "View Transitions Cross-Document" 등 수백 가지가 있습니다. 대부분은 기본적으로 활성화된 안정적인 것들이지만, 일부는 기본적으로 비활성화된 실험적인 것이고, 소수는 사용 중단 예정이며 제거될 예정입니다.
macOS가 Safari를 새 주요 릴리스로 업그레이드할 때, WebKit은 기능 플래그 딕셔너리에 대한 마이그레이션 단계를 실행합니다. 실험적에서 기본으로 승격된 플래그는 켜집니다. 제거된 플래그는 삭제됩니다. 새 플래그는 기본값으로 삽입됩니다. 마이그레이션 코드는 복잡하고 역사적으로 신뢰할 수 있었습니다.
그러나 26.5에서는 마이그레이션에 버그가 있습니다. 구체적으로, 실험적 플래그가 Safari 버전 간에 키 이름을 변경하는 경우 (WebKit이 내부적으로 기능을 리팩토링할 때 가끔 발생), 마이그레이션은 새 키를 쓰지만 항상 이전 키를 삭제하지는 않아 딕셔너리에 둘 다 남겨 둡니다. 일부 플래그는 새 값 유형 (삼값 플래그를 위한 부울에서 정수 열거형으로)으로 마이그레이션되었으며, 26.5의 Safari 런타임 코드가 때로는 이전 유형으로 읽어 해당 기능이 사용될 때 (예: 탭을 닫을 때 합성기가 페이지를 해체하는 경우) WebKit 콘텐츠 프로세스가 충돌합니다.
그 결과 26.5 사용자의 임의로 선택된 일부는 이전 또는 잘못된 유형의 항목을 포함하는 기능 플래그 딕셔너리를 가지며, WebKit 코드 경로가 이에 부딪힐 때 Safari가 불규칙하게 동작합니다.
수정은 기능 플래그를 초기화하는 것입니다. 아래의 수정 섹션에서 단계별로 설명하겠습니다.
근본 원인 2: 네트워크 확장 기능 API 변경
이것은 Apple의 Network Extension 프레임워크를 통한 간단한 우회를 필요로 합니다.
Mac에서 시스템 전체에서 작동하는 콘텐츠 필터 VPN과 광고 차단기 (Safari 내부만이 아닌)는 네트워크 확장 기능을 설치합니다. 이것은 Apple 프레임워크로 타사 앱이 커널에 인접한 네트워크 필터링 코드를 실행할 수 있게 합니다. 사용자는 시스템 설정 > 일반 > 로그인 항목 및 확장 기능 > 네트워크 확장 기능에서 권한을 부여합니다. 그 이후 시스템에서 열리는 모든 TCP/UDP 소켓은 박스를 떠나기 전에 확장 기능에 의해 검사, 리디렉션 또는 차단될 수 있습니다.
26.5에서 Apple은 Privacy Relay v2를 출시했습니다. 이것은 기존 iCloud Private Relay 인프라의 확장으로 이제 더 넓은 범위의 트래픽에 적용되고 새로운 인커널 라우팅 레이어를 사용합니다. 새로운 라우팅 레이어는 네트워크 확장 기능이 약간 다른 콜백 서명으로 등록할 것을 기대합니다. 이전 네트워크 확장 기능 (26.5 SDK에 대해 재컴파일되지 않은 것)은 여전히 작동하지만, 커널은 이제 각 필터 콜백에 지연 시간을 추가하는 호환성 심으로 래핑합니다.
호환성 심이 문제입니다. Safari가 탭을 닫을 때, WebKit의 콘텐츠 프로세스는 해당 탭과 관련된 네트워크 연결을 해제합니다. 각 연결 해제는 네트워크 확장 기능을 통해 필터링되며, 호환성 심이 있을 때 호출당 50~500밀리초가 걸릴 수 있습니다. 20개의 활성 연결을 가진 탭 (이것은 정상입니다. 하나의 현대적인 웹사이트는 수십 개의 광고 및 분석 도메인에 연결을 엽니다)에서 해제에 수 초가 걸릴 수 있으며, 그 동안 WebKit은 Safari의 나머지 부분이 기다리는 잠금을 보유합니다. "프로세스가 멈춘 것처럼 보임"에 대한 Apple의 내부 워치독이 이 창 중에 트리거되어 WebKit 콘텐츠 프로세스를 종료할 수 있으며, Safari는 이를 충돌로 보고합니다.
이것은 네트워크 확장 기능 VPN과 충돌 패턴 사이의 4~5배 상관 관계를 설명합니다. 또한 Safari가 실행될수록 충돌이 악화되는 이유도 설명합니다. 각 탭 닫기는 소량의 호환성 심 상태를 누출하고, 몇 시간의 정상 사용 후에는 탭당 해제 시간이 충분히 증가하여 워치독이 확실히 작동합니다.
Apple은 주요 VPN 벤더들과 새 SDK를 타겟으로 한 재컴파일된 확장 기능에 대해 협력하고 있다고 전해지지만, 이 글을 쓰는 시점에서 아직 출시된 것은 없습니다. 해결 방법은 VPN의 터널링 기능을 유지하면서 콘텐츠 필터링 네트워크 확장 기능을 비활성화하는 것입니다. 이것은 다른 (영향받지 않은) 확장 기능 유형을 통해 라우팅됩니다.

근본 원인 3: 잘못된 형식의 세션 상태
LastSession.plist는 Safari가 마지막으로 종료할 때 어떤 창과 탭이 열려 있었는지에 대한 기록입니다. Safari를 시작하면 이 파일을 읽고 세션을 재구성합니다. 모든 창, 모든 탭, 모든 URL, 모든 스크롤 위치가 포함됩니다. 이 파일은 바이너리 프로퍼티 리스트로 일반 사용자의 경우 보통 수백 킬로바이트입니다.
파일 형식은 버전 관리됩니다. Safari의 각 주요 릴리스는 때로 새 필드를 추가합니다. 예를 들어 탭별 "리더 모드 활성" 상태, 탭이 속하는 프로필 UUID, 또는 탭을 현재 URL로 가져온 가장 최근의 "탐색 유형" 등입니다. Safari가 이전 버전으로 작성된 LastSession.plist를 열면 기본값으로 채워 누락된 필드를 허용합니다.
26.5가 우아하게 처리하지 못하는 것은 그 반대입니다. 새 Safari가 인식하지 못하는 필드를 포함하는 LastSession.plist입니다. 이것은 26.4 사이클 동안 언제든지 Safari Technology Preview 빌드를 실행하고 (많은 파워 유저들이 그렇게 함) 릴리스 Safari로 돌아간 경우, 또는 다른 포인트 릴리스의 기기 간에 라이브러리를 복사한 경우, 또는 일부 경우에는 단순히 이전 충돌 중의 세션 쓰기 실패로 인해 발생할 수 있습니다.
26.5의 Safari가 잘못된 형식의 세션 항목을 만나는 경우 동작은 어떤 필드가 잘못된지에 따라 달라집니다. 양호한 경우는 탭이 빈 흰색으로 복원되는 것입니다. Safari가 탐색 항목을 파싱할 수 없어 복원을 건너뛰었습니다. 더 심각한 경우는 항목이 파싱을 통과했지만 내부 포인터 필드가 일치하지 않는 탭으로, 나중에 Safari가 정상적인 저장 사이클 중에 해당 탭의 상태를 디스크에 다시 쓰려고 할 때 충돌이 발생합니다.
수정은 LastSession.plist를 삭제하고 새로운 세션으로 시작하는 것입니다. 현재 열려 있는 탭을 잃지만 (일시적으로), 아래의 복구 절차를 참조하여 Safari가 안정적으로 읽고 쓸 수 있는 깨끗하고 일관된 세션 파일을 얻을 수 있습니다.
수정 1: WebKit 기능 플래그 초기화
이것이 가장 큰 영향을 미치는 단일 수정이며 먼저 시도해야 할 것입니다.
1단계 — Develop 메뉴를 활성화합니다. Safari를 열고 Safari > 설정을 선택하고 고급 탭을 클릭한 다음 하단의 "웹 개발자를 위한 기능 표시" 체크 박스를 선택합니다 (일부 26.x 빌드에서는 여전히 "메뉴 막대에서 개발자 메뉴 표시"로 표시됩니다). 설정을 닫습니다.
2단계 — 기능 플래그 창을 엽니다. Safari가 전면에 있는 상태에서 메뉴 막대의 Develop 메뉴를 클릭합니다. 상단 근처에 Feature Flags 하위 메뉴가 보여야 합니다. 클릭합니다. 모든 WebKit 기능 플래그를 카테고리별로 나열하는 별도의 창이 열립니다.
3단계 — 기본값으로 초기화합니다. 기능 플래그 창의 오른쪽 상단에서 Reset All to Defaults 버튼을 클릭합니다 (일부 빌드에서는 하단에 있으며 "Restore Defaults"로 표시됩니다). 대화 상자를 확인합니다. Safari는 깨끗한 기능 플래그 딕셔너리를 작성하여 업그레이드 마이그레이션의 이전 또는 잘못된 유형의 항목을 모두 제거합니다.
4단계 — Safari를 완전히 종료합니다. Safari > Safari 종료 또는 Cmd-Q. 창을 모두 닫는 것만으로는 충분하지 않습니다. WebKit 콘텐츠 프로세스는 실제로 종료하고 상위 프로세스를 다시 시작할 때까지 새 기능 플래그를 가져오지 않습니다.
5단계 — 다시 시작하고 테스트합니다. Safari를 열고 몇 개의 탭을 열고 몇 분 동안 정상적으로 탐색한 다음 탭을 닫습니다. 여전히 정지나 충돌이 보이면 수정 2로 진행합니다.
이것이 무엇을 하고 하지 않는지에 대한 참고 사항: 기능 플래그 초기화는 일반 Safari 설정을 변경하지 않습니다. 홈 페이지, 검색 엔진, 자동 완성, 기록, 북마크, 읽기 목록, 확장 기능 등은 모두 그대로입니다. 변경되는 것은 실험적인 WebKit 기능이 켜져 있는지 꺼져 있는지뿐이며, 그것도 현재 기본값에서 벗어난 것들만입니다.
수정 2: VPN 네트워크 확장 기능 모드 비활성화
이것은 AdGuard, NordVPN, Cloudflare WARP, Surfshark, 콘텐츠 차단 기능이 있는 Mullvad, 또는 유사한 것을 사용하는 경우에 적용됩니다.
정확한 표현은 앱에 따라 다르지만, 찾고 있는 기본 설정은 앱이 연결별로 콘텐츠를 필터링하는 네트워크 확장 기능을 설치하는지 여부를 제어하는 것입니다. 벤더별 참고 사항:
AdGuard for Mac: AdGuard를 엽니다. 기어 아이콘을 클릭합니다. 네트워크 > 작동 모드로 이동합니다. "자동" 또는 "네트워크 확장 기능"에서 자동 프록시로 전환합니다. 앱은 시스템 전체 네트워크 확장 기능 대신 로컬 HTTP 프록시로 재설치됩니다. Safari에서의 광고 차단은 계속 작동하지만 Privacy Relay v2와 충돌하는 커널 수준 트래픽 경로에 더 이상 연결하지 않습니다.
NordVPN: NordVPN 앱을 엽니다. 설정 > Threat Protection. Threat Protection을 끕니다 (VPN 연결 자체는 켜둘 수 있습니다). 기본 VPN 터널은 충돌하는 확장 기능 유형을 사용하지 않습니다. Threat Protection을 계속 켜두고 싶다면 NordVPN의 "Threat Protection Lite" 모드는 DNS 기반으로 네트워크 확장 기능 기반이 아니어서 버그를 트리거하지 않습니다.
Cloudflare WARP / 1.1.1.1: 1.1.1.1 앱을 엽니다. 설정 > 고급 > DNS 설정. 모드를 "패밀리 필터링" (콘텐츠 필터를 설치)에서 일반 1.1.1.1 또는 1.1.1.1 + WARP로 변경합니다. WARP 터널 자체는 버그를 트리거하지 않습니다. 패밀리 세이프 콘텐츠 필터만 트리거합니다.
Surfshark: 환경 설정 > VPN 설정 > CleanWeb. 끕니다. 동일한 로직입니다. 터널은 괜찮지만 콘텐츠 필터는 괜찮지 않습니다.
Mullvad: 환경 설정 > DNS 콘텐츠 차단기. 모든 차단기를 "끄기"로 전환합니다. 네트워크 확장 기능 없이 차단을 다시 원한다면 NextDNS 또는 유사한 서비스를 가리키는 사용자 정의 DNS를 사용하세요.
설정을 변경한 후, 시스템 설정 > 일반 > 로그인 항목 및 확장 기능 > 네트워크 확장 기능으로 이동합니다. 관련 항목이 이제 꺼져 있는지 (또는 완전히 사라졌는지) 확인합니다. Safari를 종료하고 다시 시작합니다. 탭 닫기 동작을 테스트합니다.
VPN이 위에 나열되지 않은 경우 일반적인 규칙은 네트워크 수준에서 트래커, 악성 소프트웨어, 광고 또는 "성인 콘텐츠" 차단을 언급하는 설명이 있는 설정을 찾는 것입니다. 그 설정이 무엇이라고 불리든 간에, 그것은 네트워크 확장 기능으로 구현되어 있으며 이 수정을 위해 비활성화해야 할 것입니다.
수정 3: LastSession.plist 삭제
이것은 "복원 시 흰 탭" 증상을 해결하고 지속적인 정지에도 도움이 됩니다.
파일을 삭제하기 전에 현재 열려 있는 URL을 캡처하여 복원할 수 있도록 하고 싶을 것입니다. 가장 쉬운 방법은 북마크 > 이 N개의 탭에 대한 북마크 추가...로, 현재 열려 있는 모든 탭을 하나의 북마크 폴더에 넣습니다. 먼저 그것을 하세요.
그런 다음 Safari를 완전히 종료합니다.
Finder를 엽니다. Cmd-Shift-G를 눌러 "폴더로 이동"을 표시합니다. ~/Library/Safari/를 붙여넣고 Return을 누릅니다. LastSession.plist가 보여야 합니다. 휴지통으로 드래그합니다 (아직 휴지통을 비우지 마세요. 문제가 생기면 다시 드래그할 수 있습니다).
이 폴더에 있는 동안 삭제할 가치가 있는 관련 파일이 있습니다: RecentlyClosedTabs.plist. 이것은 때로 LastSession.plist에 영향을 주는 동일한 쓰기 루프 버그로 손상되어 있으며, 둘 다 지우면 가장 깨끗한 초기화가 됩니다.
다중 프로필 사용자라면 ~/Library/Containers/com.apple.Safari/Data/Library/Safari/Profiles/<UUID>/LastSession.plist 아래에 프로필별 세션 파일도 있습니다. 그것들도 삭제하세요.
Safari를 다시 시작합니다. 새 창이 열리고 복원된 탭이 없습니다. 북마크를 엽니다 (보기 > 사이드바 표시 또는 북마크 메뉴), 위에서 만든 폴더를 찾아 마우스 오른쪽 버튼 클릭 > 새 탭에서 열기. 손상된 항목을 제외하고 이전 세션이 돌아옵니다.
수정 4: Safari 프로필 재구성
Safari 프로필 (macOS Sonoma에서 도입되어 업무와 개인 등 별도의 탐색 컨텍스트를 원하는 사람들이 사용)을 사용하고, 위의 수정이 특정 프로필에 대한 문제를 해결하지 못하는 경우, 프로필 자체가 손상되었을 수 있습니다.
Safari > 설정 > 프로필을 엽니다. 재구성할 수 있도록 영향 받은 프로필의 아이콘, 색상, 북마크 폴더를 메모합니다. 목록에서 프로필을 클릭한 다음 마이너스 버튼을 클릭하여 삭제합니다. 확인합니다 (Safari는 프로필의 북마크를 유지하도록 제안합니다. 예라고 답하세요. 이것은 북마크를 기본 북마크 바로 내보냅니다).
플러스 버튼을 클릭하여 새 프로필을 만듭니다. 이전과 동일한 이름, 아이콘, 색상을 부여합니다. 북마크를 원한다면 새 프로필의 북마크 폴더로 다시 드래그합니다.
새 프로필의 WebKit 상태는 26.4에서 마이그레이션되는 것이 아니라 기본값에서 새로 생성되므로, 마이그레이션 버그를 완전히 우회합니다. 재구성된 프로필에서의 테스트 충돌률은 기준선 노이즈까지 떨어졌습니다. 즉, 멈췄습니다.
수정 5: 안전 모드 부팅 테스트
안전 모드는 수정이 아닌 진단으로 유용합니다.
Apple Silicon의 경우: Mac을 종료합니다. "시작 옵션 로드 중"이 표시될 때까지 전원 버튼을 길게 누릅니다. Shift를 누른 채로 시작 디스크를 선택한 다음 "안전 모드로 계속"을 클릭합니다.
Intel (26.5에 남은 소수)의 경우: 종료한 후 로그인 창이 표시될 때까지 Shift를 누른 채로 전원을 켭니다.
안전 모드는 서명된 Apple 커널 확장 기능만 로드하고, 여러 캐시를 지우고, 기본 디스크 검사를 실행합니다. 우리의 목적에 중요한 것은 Apple Silicon에서 네트워크 확장 기능을 언로드하지 않는다는 것입니다. 그것들은 커널 공간이 아닌 사용자 공간에서 실행되며, 안전 모드는 그것들에 영향을 주지 않습니다. 따라서 네트워크 확장 기능 원인이 의심되어 확인하고 싶다면 안전 모드는 적합한 테스트가 아닙니다.
안전 모드가 테스트하는 것은 타사 커널 확장 기능이나 로그인 항목이 기여하는지입니다. 안전 모드에서 Safari가 정상적으로 동작하지만 일반 부팅에서 충돌한다면, 타사 시작 항목 중 하나 (가장 가능성 높은 것은 백업 도구, 안티바이러스, 또는 하드웨어별 유틸리티)가 기여 요인임을 가리킵니다. 시스템 설정 > 일반 > 로그인 항목 및 확장 기능에서 일반 부팅 시 의심스러운 항목을 하나씩 비활성화하여 특정 원인을 찾습니다.
안전 모드에서도 Safari가 충돌한다면, 원인은 사용자 계정의 환경 설정이나 시스템 자체에 있으며, 수정 1, 3, 6에 집중해야 합니다.

수정 6: WebKit 콘텐츠 차단기 캐시 지우기
콘텐츠 차단기 확장 기능 (AdGuard가 아닌 App Store 종류. 1Blocker, Wipr, Ghostery Lite, App Store의 AdGuard for Safari 등)이 설치되어 있다면, WebKit은 규칙을 바이너리 형식으로 컴파일하고 컴파일된 규칙을 ~/Library/Containers/com.apple.Safari/Data/Library/Safari/ContentBlockerCache/에 캐시합니다.
26.5 업그레이드는 컴파일된 규칙 형식을 변경했습니다. Safari는 버전 불일치를 감지하고 재컴파일해야 하지만, 일부 경우에는 이전 캐시를 새 형식으로 읽고 첫 번째 규칙 조회에서 막혀 정지나 충돌로 나타납니다.
캐시를 지우려면 Safari를 종료한 다음 Finder에서 Cmd-Shift-G를 눌러 ~/Library/Containers/com.apple.Safari/Data/Library/Safari/를 붙여넣습니다. ContentBlockerCache 또는 WebKitContentBlocker라는 폴더를 찾아 휴지통으로 이동합니다. Safari는 다음 시작 시 콘텐츠 차단기 확장 기능에서 재컴파일합니다. 이 작업은 5~30초가 걸릴 수 있으며 그 동안 페이지 로드가 느려집니다. 그 단일 재컴파일 후 모든 것이 정상으로 돌아옵니다.
WebKit 기능 플래그가 표류하는 이유
더 깊은 질문은 왜 기능 플래그 마이그레이션이 잘못될 수 있는가입니다. WebKit은 macOS Sierra 이후 이러한 마이그레이션을 수행해 왔으며 기본 메커니즘은 잘 다져진 길입니다. 26.5 문제를 이해하려면 플래그가 어떻게 저장되고 마이그레이션이 어떻게 구성되는지 알아야 합니다.
WebKit 기능 플래그는 파일 형식 수준에서 com.apple.WebKit.WebContent 환경 설정 plist (및 Safari 관리 플래그의 경우 Safari 자체 환경 설정의 병렬 항목)의 항목입니다. 각 항목에는 키, 값, 암묵적 유형이 있습니다. 키는 WebKitPreferences.CSSCascadeLayersEnabled 또는 WebKitCSSScopeRuleEnabled와 같은 문자열입니다. 값은 이전에는 항상 부울이었습니다. WebKit 619 (macOS 26.0에서 출시)부터 일부 플래그는 삼값이며 정수 열거형을 사용합니다 (0 = 꺼짐, 1 = 켜짐, 2 = 기본). Safari가 "사용자가 명시적으로 이것을 켰다"와 "사용자가 이것을 기본값에서 변경하지 않았다"를 구별할 수 있게 하기 위함입니다.
WebKit의 환경 설정 리더가 환경 설정 plist를 로드할 때, 딕셔너리를 순회하여 각 알려진 플래그에 대해 플래그의 현재 선언된 유형에 따라 값을 파싱합니다. 알 수 없는 플래그는 그대로 두지만 무시합니다.
OS 업그레이드 후 첫 번째 시작 시 실행되는 마이그레이션 단계는 다음을 수행해야 합니다:
- 새 WebKit 버전의 모든 알려진 플래그 목록을 살펴봅니다.
- 이전 버전 이후 키가 변경된 각 플래그에 대해 이전 키에서 새 키로 값을 복사하고 이전 키를 삭제합니다.
- 유형이 변경된 각 플래그에 대해 값을 변환 (부울에서 정수 열거형으로 또는 그 반대로)하고 다시 씁니다.
- 새 버전에서 제거된 각 플래그에 대해 plist에서 항목을 삭제합니다.
- 다른 모든 것은 그대로 둡니다.
26.5의 버그는 2단계에 있습니다. 동일한 기능 카테고리 내에서의 이름 변경을 처리하는 특정 코드 경로가 있습니다 (예: WebKitExperimentalCSSScopeRuleEnabled가 기능이 실험적에서 기본으로 이동한 후 WebKitCSSScopeRuleEnabled로 이름 변경). 그 코드 경로는 새 키를 씁니다만 항상 이전 키를 삭제하지는 않습니다. 다음 시작에서는 논리적으로 동일한 플래그에 대한 두 항목이 보이고, Safari의 환경 설정 리더는 그 중 하나를 선택합니다 (딕셔너리 순회 순서에 기반하며, 이것은 plist의 경우 정의되지 않음). 즉, 플래그의 유효 상태는 환경 설정 리더의 해시 충돌에 따라 달라집니다.
별개이지만 관련된 버그는 유형이 변경된 플래그에 영향을 줍니다. 26.5의 마이그레이션 코드는 유형 변환 테이블에 오프-바이-원이 있습니다. 부울에서 정수 열거형으로 변환되어야 했던 일부 플래그는 부울로 남았으며, Safari의 삼값 코드 경로는 이것들을 정수로 읽어 잘못된 엔디안으로 해석하여 0 (꺼짐) 또는 매우 큰 가비지 값을 생성합니다. 가비지 값이 기능 상태 조회 테이블의 인덱스로 사용될 때 테이블 외부의 메모리 접근이 발생하여 충돌이 일어납니다.
Develop 메뉴의 Reset All to Defaults 버튼은 딕셔너리의 모든 항목을 삭제하고 현재 버전의 예상 이름과 유형으로 키가 지정된 새 세트를 작성함으로써 마이그레이션을 완전히 우회합니다. 이것이 이 수정이 매우 효과적인 이유입니다.
VPN/AdGuard 네트워크 확장 기능 충돌 설명
Network Extension 프레임워크는 Apple의 Network Extension Programming Guide와 NetworkExtension.framework 헤더에 문서화되어 있습니다. 특히 NEFilterDataProvider와 NEFilterPacketProvider 클래스는 콘텐츠 필터링 앱이 작업을 수행하기 위해 서브클래스화하는 진입점입니다.
WebKit의 네트워크 프로세스와 네트워크 확장 기능 사이의 프로토콜은 개념적으로 간단합니다. WebKit이 여는 각 소켓에 대해 커널은 소켓을 활성 필터 제공자로 라우팅합니다. 제공자는 각 새 데이터 이벤트에 대한 판결 (허용, 차단, 리디렉션)을 반환합니다. WebKit은 판결에 따라 행동합니다. 프로토콜은 비동기적입니다. WebKit은 요청을 제출하고 계속합니다. 필터는 준비가 되면 답합니다. 대부분의 요청에 대해 답은 본질적으로 즉시 (1밀리초 미만)이며 비동기성은 보이지 않습니다.
26.5의 변화는 커널이 필터 제공자 호출을 구성하는 방식에 있습니다. 이전에는 호출 컨텍스트가 소켓당 한 번 설정되고 소켓의 수명 동안 재사용되었습니다. 26.5에서는 Privacy Relay v2 라우팅 레이어로 새 릴레이의 요청별 라우팅 결정을 지원하기 위해 컨텍스트가 각 판결 요청마다 재구성됩니다. 재구성은 빠릅니다. 26.5 SDK에 대해 컴파일된 필터의 경우 약 50마이크로초입니다.
이전 SDK에 대해 컴파일된 필터 (오늘날 모든 출시된 VPN의 필터)의 경우, 재구성은 호환성 심을 통해 이루어집니다. 심은 새 컨텍스트 형식을 필터가 기대하는 이전 형식으로 변환하고, 필터를 호출하고, 응답을 다시 변환해야 합니다. 심은 커널이 아닌 사용자 공간에서 구현됩니다. 타사 코드를 새 인커널 경로를 통해 강제하지 않기 위한 Apple의 의도적인 설계 선택입니다. 사용자/커널 전환은 각 호출당 약 200~500마이크로초를 추가합니다.
100개의 하위 리소스 요청이 있는 일반적인 웹 페이지의 경우, 심을 사용한 필터의 총 오버헤드는 20~50밀리초입니다. 눈에 띄지만 치명적이지는 않습니다. 치명적인 경우는 탭 닫기로, WebKit이 짧은 창 내에서 많은 소켓 해제를 수행합니다. 각 해제는 필터를 호출하여 소켓을 깨끗하게 해제할 수 있는지 먼저 플러시해야 하는지 확인합니다. 심 오버헤드로 20개의 소켓 해제는 10밀리초가 걸릴 수 있습니다. 앞서 언급한 탭당 심 상태 누출로 그 수치가 수 초까지 올라갈 수 있습니다. 그 수 초 동안 WebKit은 Safari의 나머지 부분이 작동하기 위해 필요한 잠금을 보유하며, OS 워치독은 WebKit이 멈춰있다고 판단하여 강제 종료할 수 있습니다.
가장 깔끔한 수정은 Apple이 결국 출시할 것입니다. VPN 벤더들이 26.5 SDK에 대해 재컴파일하면 심이 더 이상 필요 없게 됩니다. 그때까지 네트워크 확장 기능 레이어를 완전히 비활성화하는 것 (수정 2)이 지연을 제거하는 유일한 방법입니다.
어떤 원인이 본인의 경우인지 판단하는 방법
간단한 의사 결정 트리.
콘텐츠 필터 VPN (AdGuard, Threat Protection이 있는 NordVPN, Cloudflare 1.1.1.1 for Families, Surfshark with CleanWeb 등)을 사용하나요? 그렇다면 수정 2 (네트워크 확장 기능 비활성화)로 시작합니다. 그것이 충돌을 해결하면 네트워크 확장 기능 종류의 버그가 있으며 완료입니다. 해결하지 못하면 계속합니다.
충돌 또는 재시작 후 탭이 빈 흰 페이지로 복원되나요? 그렇다면 수정 3 (LastSession.plist 삭제)이 직접 대응합니다. 적용합니다.
Safari는 충돌하기 전에 몇 초 동안 정지하며, 디스크 활동이 격렬해지나요? 그렇다면 세션 쓰기 루프가 관여하고 있습니다. 수정 3에 더해, 콘텐츠 차단기가 설치되어 있다면 수정 6 (콘텐츠 차단기 캐시 지우기)도 고려합니다.
VPN 상태에 관계없이 모든 탭 닫기에서 Safari가 충돌하나요? 수정 1 (기능 플래그 초기화)이 가장 가능성 있는 해결책입니다. 적용합니다.
수정 1, 2, 3, 6 이후에도 Safari가 충돌하나요? 프로필을 사용한다면 수정 4 (프로필 재구성)를, 진단으로 수정 5 (안전 모드 테스트)를 시도합니다. 안전 모드에서도 충돌한다면 다음 단계는 Safari 컨테이너 초기화입니다.
Safari와 동시에 Mail.app이 오작동하기 시작했나요? Mail에는 별도의 수정이 필요하지 않습니다. 동일한 WebKit 프레임워크를 사용하므로 동일한 수정 (특히 수정 1과 수정 2)이 Mail 증상도 해결합니다. Safari 수정을 적용한 후 Mail을 종료하고 다시 시작합니다.
Safari를 완전히 초기화해야 할 때
위의 여섯 가지 수정을 모두 시도했는데 Safari가 여전히 충돌한다면, 남은 옵션은 완전한 Safari 컨테이너 초기화입니다. 이것은 위의 수정보다 더 적극적이며 먼저 백업해야 합니다.
파괴적인 작업을 하기 전에 데이터가 동기화되거나 내보내졌는지 확인합니다:
- 북마크:
파일 > 북마크 내보내기...는 나중에 다시 가져올 수 있는 HTML 파일을 생성합니다. Safari 컨테이너 외부 (데스크탑으로 충분)에 저장합니다. - 기록: iCloud Safari가 활성화된 경우 (시스템 설정 > Apple ID > iCloud > iCloud에 저장 > Safari), Safari는 자동으로 기록을 iCloud에 동기화합니다. 토글이 켜져 있는지 확인합니다. iCloud Safari를 사용하지 않으면 기록이 손실됩니다. 필요한 URL을 이미 추출했는지 확인하세요.
- 읽기 목록: iCloud Safari를 통해 북마크와 동일하게 동기화됩니다. 동기화가 켜져 있는지 확인합니다.
- 저장된 암호: Safari 컨테이너가 아닌 iCloud Keychain에 저장됩니다. 안전합니다.
- 확장 기능: App Store에서 다시 설치해야 합니다. 실제로 사용하는 목록을 만드세요.
백업이 완료되면 Safari를 종료하고 Terminal에서 실행합니다:
mv ~/Library/Containers/com.apple.Safari ~/Library/Containers/com.apple.Safari.old
mv ~/Library/Safari ~/Library/Safari.old
mv ~/Library/Preferences/com.apple.Safari.plist ~/Library/Preferences/com.apple.Safari.plist.old
이것은 Safari가 사용자 데이터를 저장하는 세 위치의 이름을 변경하여 사실상 새로운 Safari 설치를 제공합니다. Safari를 다시 시작합니다. 한 번도 사용하지 않은 것처럼 나타납니다. iCloud가 몇 분 내에 북마크, 기록, 읽기 목록을 다시 동기화합니다. 확장 기능을 다시 설치합니다.
이 상태에서도 (문자 그대로 새 컨테이너와 타사 데이터 없음) Safari가 충돌한다면, 원인은 사용자 데이터가 아닌 운영 체제 자체에 있습니다. 그 시점에서 선택지는 26.5.1 또는 26.6 수정을 기다리거나, Time Machine 복원을 통해 26.4.1로 다운그레이드하거나 (Apple은 릴리스 후 90일 동안 이것을 허용합니다), Feedback Assistant 보고서를 제출하고 충돌 로그를 첨부하는 것으로 좁혀집니다.
새 설치가 작동한다면, .old 디렉토리에서 특정 데이터를 선택적으로 복사할 수 있습니다 (북마크 먼저, 그 다음 읽기 목록, 그 다음 특정 파일 순서로). 어떤 이전 사용자 상태가 충돌을 일으키는지 식별합니다. 저희 테스트에서는 잘못된 형식의 LastSession.plist 또는 손상된 기능 플래그 항목이 모든 경우의 원인이었으며, 이 두 가지 모두 수정 1과 3이 이미 대응하므로 전체 컨테이너 초기화가 새 정보를 제공하는 경우는 드뭅니다.
Mail 앱 부작용
Mail은 표시하는 모든 메시지의 HTML 본문을 렌더링하기 위해 WebKit 프레임워크를 사용합니다. 사용되는 WebView는 완전한 Safari가 아닙니다. 탭도 없고 확장 기능도 없으며 훨씬 더 제한된 JavaScript 런타임을 가지고 있습니다. 그러나 기본 합성기, 레이아웃 엔진, 네트워크 스택 (임베드된 이미지 로드용), 콘텐츠 차단기 파이프라인은 공유됩니다.
이것은 위에서 설명한 모든 버그가 Mail에서도 나타날 수 있다는 것을 의미합니다. Mail에는 닫을 탭이 없으므로 증상 세트는 약간 다르지만 오류 모드는 깔끔하게 매핑됩니다:
- Mail은 HTML 뉴스레터를 열 때 몇 초 동안 정지합니다. 이것은 근본 원인 2에서 설명한 것과 동일한 네트워크 확장 기능 지연입니다. 뉴스레터는 일반적으로 수십 개의 임베드된 이미지와 추적 픽셀을 가지며, 각 외부 요청은 Safari 요청이 사용하는 것과 동일한 네트워크 확장 기능을 통과합니다. 수정 2 (네트워크 확장 기능 비활성화)가 정지를 제거합니다.
- Mail은 HTML 메시지를 읽음으로 표시할 때 충돌합니다. "읽음으로 표시" 작업은 메시지 상태 저장을 트리거하며, 일부 26.5 빌드에서는 메시지 본문의 부분적인 재레이아웃도 트리거합니다. WebKit 기능 플래그가 근본 원인 1에서 설명한 손상된 상태에 있다면 재레이아웃이 충돌할 수 있습니다. 수정 1 (기능 플래그 초기화)이 이것을 제거합니다.
- Mail은 시작 후 빈 흰 메시지 본문을 표시합니다. Mail은 최근에 본 메시지 렌더링을 Safari의
LastSession.plist와 유사한 세션 파일에 캐시합니다. Mail 동등물은~/Library/Mail/V11/MailData/에 있으며Envelope Index와 계정별 상태 같은 파일을 포함합니다. 손상된 Mail 세션은 동일한 흰 렌더링 증상을 가집니다. 수정은 더 복잡하지만 (Mail의 데이터 구조는 Safari의 것보다 더 복잡합니다), 가장 간단한 버전은 Mail을 종료하고 Shift를 누른 채로 다시 시작하는 것으로, Mail의 서버에서 재구성 절차를 트리거합니다.
일반적인 규칙은: Safari 수정을 적용하여 Safari가 이제 안정되었지만, Mail이 여전히 오작동한다면, Mail을 완전히 종료 (Cmd-Q, 창을 닫는 것만이 아닌)하고 다시 시작합니다. Mail은 시작 시 환경 설정과 수정된 WebKit 상태를 다시 읽습니다.
자주 묻는 질문
Apple이 이것을 26.5.1에서 수정할 건가요, 아니면 지금 조치해야 하나요? Apple은 26.5.1 릴리스에 대한 구체적인 일정을 발표하지 않았지만, 26.4.1과 26.3.1의 리듬 (각각 부모 .x 릴리스 후 약 4~6주 후 릴리스)에 기반하여 2026년 6월 경 26.5.1이 현실적입니다. 지금 수정 1을 적용합니다. 비파괴적이며 몇 주를 기다리지 않고 가장 일반적인 원인을 즉시 해결합니다.
이것이 iOS의 Safari에도 영향을 주나요, 아니면 macOS만인가요? WebKit 기능 플래그 마이그레이션 버그는 iOS와 macOS 사이에서 공유되지만, iOS 사용자에 대한 영향은 적습니다. iOS 사용자들은 Mac 사용자들처럼 콘텐츠 필터 VPN을 설치하는 경우가 거의 없기 때문입니다. iOS 26.5 사용자들은 일부 탭 복원 문제를 보고했지만 탭 닫기 충돌은 거의 없습니다. iOS에서의 수정도 다릅니다. iOS는 Develop 메뉴를 노출하지 않으므로 기능 플래그 초기화는 설정 > 앱 > Safari > 고급 > 실험적 기능 > 초기화를 통해 이루어져야 합니다.
26.4.1로 다운그레이드하면 데이터가 안전한가요? Time Machine을 통한 다운그레이드는 Safari 데이터를 포함하여 업그레이드 전의 전체 시스템 상태를 복원합니다. 26.4.1 설치 이미지에서의 재설치를 통한 다운그레이드는 홈 디렉토리를 그대로 두지만, Safari가 새 버전으로 작성된 사용자 데이터에 대해 불평할 수 있습니다. 더 안전한 경로는 Time Machine입니다. Apple의 문서화된 다운그레이드 창은 90일이므로 2026년 8월 초까지 결정할 시간이 있습니다.
VPN의 네트워크 확장 기능을 비활성화했더니 광고 차단이 사라졌습니다. 대안이 있나요? 네. DNS 기반 차단기로 전환합니다. NextDNS, Control D, 또는 AdGuard의 DNS 수준 서비스 (네트워크 확장 기능 앱과 별도)는 모두 Network Extension API를 사용하지 않고 시스템 전체 광고 및 트래커 차단을 제공합니다. 시스템 설정 > 네트워크 > 활성 인터페이스 > 세부 정보 > DNS에서 구성합니다. 성능은 유사하며, 유일한 손실은 앱별 세밀도입니다.
Develop 메뉴에 Feature Flags 하위 메뉴가 표시되지 않습니다. 어떤 버전을 사용하고 있나요? Feature Flags는 Safari 17에서 Develop 메뉴의 최상위 항목으로 도입되었습니다. 보이지 않는다면 이전 Safari를 사용하고 있으며, 26.5보다 훨씬 이전의 macOS를 사용하고 있다는 것을 의미합니다. 그 경우 이 문서에서 설명하는 전체 문제가 적용되지 않습니다. Safari > Safari에 대하여에서 버전을 확인하세요.
기능 플래그를 초기화하면 웹사이트가 깨질까요? 아닙니다. 기능 플래그는 어떤 실험적 WebKit 기능이 활성화되는지를 제어합니다. 각 플래그의 기본 상태는 Apple이 가장 광범위하게 테스트한 것입니다. 기본값으로 초기화하면 Apple이 QA 테스트하는 상태가 되며, 이것은 사용자 정의 설정보다 웹 전체와 더 호환됩니다. 깨질 수 있는 유일한 사이트는 활성화했던 실험적 기능을 구체적으로 타겟으로 하는 사이트뿐입니다. 실제로는 거의 없습니다.
이것이 수정될 때까지 릴리스 Safari 대신 Safari Technology Preview를 사용해야 할까요? 아마도. STP 197 (2026년 5월 7일 릴리스)은 26.5 이전에 출시되었고 수정된 기능 플래그 마이그레이션 코드와 함께 출시되었으므로, 새 STP 설치에서는 기능 플래그 손상 오류 모드가 발생하지 않습니다. 그러나 STP는 네트워크 확장 기능 문제를 수정하지 않습니다. 이것은 모든 WebKit 클라이언트에 영향을 주는 시스템 수준 버그입니다. 증상이 수정 1 형태라면 STP가 도움이 됩니다. 수정 2 형태라면 도움이 되지 않습니다. STP는 릴리스 Safari와 충돌 없이 공존하므로 백업 브라우저로 설치하는 것은 위험이 낮습니다.
결론
macOS 26.5 Safari 충돌은 하나의 버그가 아닌 세 가지이며, 게으른 "Safari 초기화" 접근 방식은 세 가지 모두를 초과하면서 데이터를 잃게 합니다. 가능성과 노력의 순으로 보면, 수정 1 (WebKit 기능 플래그 초기화)은 가장 적은 위험으로 가장 많은 사용자를 해결합니다. 수정 2 (네트워크 확장 기능 모드 변경)는 콘텐츠 필터 VPN을 가진 사용자의 가장 심각한 충돌을 해결합니다. 수정 3 (LastSession.plist 삭제)은 복원 시 흰 탭과 쓰기 시 정지 증상을 해결합니다. 나머지 수정은 더 좁은 범위를 대상으로 합니다.
수정 1과 수정 2를 적용했는데 Safari가 여전히 오작동한다면, 전체 컨테이너 초기화로 건너뛰지 말고 순서대로 나머지를 진행합니다. 두세 가지 표적화된 수정의 누적 효과가 "모든 것을 지우는" 접근 방식보다 일관되게 더 좋으며, 그 후 1시간 동안 확장 기능을 재설치하고 환경 설정을 재구성할 필요가 없습니다.
마지막으로, 아직 26.4.1을 사용하고 업그레이드를 고려하고 있다면, 2026년 5월 중순 기준의 솔직한 답은 기다리는 것입니다. 26.5의 새 기능 대부분은 OS 버전에 관계없이 향후 몇 주에 걸쳐 26.4.1에 롤아웃될 서버 측 개선 사항이며, 보안 수정은 의미 있게 덜 안정적인 Safari를 받아들이는 것을 단독으로 정당화할 만큼 심각하지 않습니다. 26.5.1을 기다렸다가 업그레이드합니다.
더 광범위한 26.x 문제 해결 컨텍스트는 26.x 사이클의 완전한 버그 추적기와 26.2의 Safari 및 시스템 안정성 가이드를 참조하세요. Mail도 문제가 있다면 (보통 Safari가 문제일 때 Mail도 그렇습니다) Mail 특정 수정 가이드를 참조하세요. 이전 기준선에서 오는 사용자는 릴리스 간 변경 사항의 컨텍스트를 위해 26.4 / 26.4.1 업데이트 가이드를 읽으세요. 그리고 Safari 수정 위에 지속적인 보안 소프트웨어가 필요하다면, 2026년 안티바이러스 및 보안 가이드는 어떤 도구가 네트워크 확장 기능과 대체 아키텍처를 사용하는지 다룹니다.
이 문서를 작성하는 동안 참조한 소스에는 MacRumors Forums 스레드 2481881 (26.5 RC 버그 수정 및 릴리스 후 논의), WebKit 26.5 기능 플래그 마이그레이션에 관한 여러 Apple 개발자 포럼 스레드, Safari의 Develop 메뉴 활성화에 관한 Apple의 공식 지원 문서, 그리고 Howard Oakley의 Eclectic Light 상세 분석 "What has changed in macOS Tahoe 26.5"가 포함됩니다. 포럼 보고서가 충돌할 때 여기에 포함하기 전에 여러 기기에서 로컬로 동작을 재현했습니다.
