원문 제목: Mobile Safari web pages are severely limited by memory 원문 링크: https://lapcatsoftware.com/articles/2026/1/7.html 번역 생성일: 2026-02-18 KST
작성자는 Safari 확장(StopTheMadness Pro) 기능을 개발하다가, iOS에서 큰 폰트 파일(약 50MB)을 data URL로 바꿔 표시할 때 페이지가 자주 죽는 문제를 확인했다.
테스트는 단순했다. 자바스크립트 배열에 문자열을 반복해서 넣어 메모리를 채웠다.
- iPhone SE 3세대(iOS 26.2): 대략 100MB 부근에서 페이지 크래시 재현
- iPad 8세대(iOS 26.2): 대략 200MB 부근에서 페이지 크래시 재현
일부 경우 iPad 전체가 멈추고 재부팅처럼 보이는 현상도 있었다. 즉, 웹페이지 하나가 기기 사용성에 큰 영향을 줄 수 있었다.
또 하나 확인된 사실은 확장 API runtime.sendMessage() 자체에도 메시지 크기 제한이 있다는 점이다.
- iOS / macOS 모두 개별 메시지 약 64MB 제한
- 이 경우에는 예외를 잡을 수 있지만, 웹페이지 자체 메모리 한계로 죽는 경우는
try/catch로 처리되지 않음
작성자는 현재 API 설계를 비판한다.
- 메시지 "개별 크기"만 제한하고
- "빈도"는 제한하지 않아 우회가 쉽고
- 자동 청크 분할을 브라우저가 하지 않아 확장 개발자가 직접 구현해야 함
결론적으로, 모바일 Safari 환경에서는 큰 파일 처리(예: FileReader + data URL) 시
- 기기별 실사용 메모리 한계를 먼저 가정하고
- 기능에 용량 경고/가드레일을 넣는 것이 현실적인 대응이라고 정리한다.