Self Control
SelfControl이 증명한 아이디어.
iPhone이 허용하는 방식으로 재구성.
SelfControl이 Mac의 클래식인 이유는 차단이 재시작, 삭제, 심지어 마음이 바뀌어도 유지되기 때문입니다. 어떤 앱도 iPhone에서 그 방식을 복제할 수 없으며, 여기에는 피할 수 없는 특정한 이유가 있습니다.
Self Control
SelfControl이 Mac의 클래식인 이유는 차단이 재시작, 삭제, 심지어 마음이 바뀌어도 유지되기 때문입니다. 어떤 앱도 iPhone에서 그 방식을 복제할 수 없으며, 여기에는 피할 수 없는 특정한 이유가 있습니다.
먼저 솔직한 답변: 진짜 SelfControl for iPhone은 없으며, 있을 수도 없습니다. SelfControl은 2012년에 출시된 Mac 전용 GPL 라이선스 애플리케이션입니다. Apple의 App Store는 GPL 라이선스 코드를 전혀 허용하지 않으므로, iOS의 기술적 제한을 고려하기 전에 이미 공식 포트는 불가능했습니다.
라이선스 문제가 없더라도 기술적 메커니즘 자체가 이식될 수 없습니다. SelfControl은 Mac의 시스템 수준 hosts 파일을 직접 편집하여 작동하는데, iOS의 샌드박스 모델은 어떤 타사 앱도 이 작업을 할 수 없도록 특별히 설계되었습니다.
타이머와 차단 목록을 설정하면 hosts 파일을 편집합니다. 실행되면 목록에 있는 사이트는 1분부터 최대 24시간까지 네트워크 수준에서 접근할 수 없게 됩니다.
타이머 자체는 설계상 조기 종료할 수 없습니다. Mac을 재시작해도 지워지지 않고, 앱을 삭제해도 지워지지 않습니다. 시간이 끝나기 전에 종료할 수 있는 버튼, 설정, 비밀번호가 앱 안에 없습니다.
일반적인 해제 시도에는 강하지만, 문자 그대로 깨지지 않는 것은 아닙니다. 알려진 문서화된 한계로, 기술적으로 능숙한 사용자는 hosts 파일을 직접 편집하여 접근을 복원할 수 있습니다. 이는 앱 자체를 통해서는 타이머를 깰 수 없지만, 기본 메커니즘에는 예외가 있음을 보여줍니다.
라이선스가 먼저 배제합니다. SelfControl은 GPL 라이선스 오픈소스 소프트웨어이며, Apple의 App Store 가이드라인은 기술적 문제와 별개로 GPL 코드를 허용하지 않습니다.
iOS 샌드박스는 어차피 그 메커니즘을 배제합니다. 모든 iOS 앱은 시스템 파일을 수정하거나 다른 앱의 데이터를 읽을 수 없는 샌드박스에서 실행되며, 이것이 바로 SelfControl의 hosts 파일 트릭이 의존하는 방식입니다.
Apple의 개발자용 Screen Time API는 의도적으로 제한되어 있습니다. FamilyControls, ManagedSettings, DeviceActivity 기반의 타사 차단기는 지속적인 인터넷 접근이 없는, 엄격히 제한된 읽기 전용 확장 프로그램 안에서 실행됩니다. 앱은 사용자가 차단하기로 선택한 특정 앱이 무엇인지조차 알 수 없는데, 해당 정보는 개인정보 보호를 위해 암호화 토큰 뒤에 숨겨져 있기 때문입니다.
실제로 가장 중요한 특정한 허점이 있습니다. 자체 앱 내 비밀번호가 있는 Screen Time 기반 차단기라도 iOS 설정의 'Screen Time 접근 권한이 있는 앱' 토글을 통해 비활성화할 수 있는 경우가 일반적입니다. Apple의 기본 Screen Time은 별도의 비밀번호로 잠글 수 있어 같은 방식의 허점이 없습니다.
| 도구 | SelfControl 모델과 가장 유사한 점 | 주의할 점 |
|---|---|---|
| Freedom | 조기 종료할 수 없는 잠금 모드 세션 | 영구 기본값이 아닌 세션을 직접 시작해야 함 |
| One Sec / ScreenZen | 열기 전 마찰을 주는 방식, 완전한 차단은 아님 | 접근을 제거하지 않고 일시 중지만 추가함 |
| Forest | 세션 기반 약속 장치 | 하루 종일 차단이 아닌 시간 제한 세션 중심 |
| Fella | 앱 내 토글 없이 기본 차단 | 다른 iOS 차단기와 마찬가지로 Apple의 Screen Time 프레임워크 사용 |
같은 철학, 다른 메커니즘. Fella는 SelfControl의 재시스트에도 유지되는 hosts 파일 잠금을 복제할 수 없습니다. 어떤 iOS 앱도 그럴 수 없습니다. 그러나 Fella는 SelfControl이 제거하는 것과 동일한 것을 제거합니다: 그 순간 차단을 쉽게 해제할 수 있는 방법입니다.
일시 중지, 스누즈, 앱 내 토글이 없습니다. 선택한 앱은 매일 기본적으로 차단된 상태로 유지되며, 단일 고정 타이머 대신 세션당 5분의 비상 잠금 해제 1회가 제공되고 자동으로 다시 잠깁니다.
직접적인 포트는 없습니다. SelfControl은 Mac 전용 GPL 라이선스 애플리케이션이며, Apple의 App Store는 GPL 라이선스 코드를 허용하지 않기 때문에 iOS의 기술적 제한과 관계없이 공식 포트는 불가능합니다.
SelfControl은 Mac의 시스템 수준 hosts 파일을 편집하여 차단하는데, iOS의 샌드박스 모델은 어떤 타사 앱도 이 작업을 허용하지 않습니다. iOS 앱은 시스템 파일이나 다른 앱의 데이터를 수정할 수 없으며, 이것이 바로 SelfControl이 의존하는 메커니즘입니다.
타이머와 차단할 사이트 또는 메일 서버 목록을 설정하면 SelfControl이 Mac의 hosts 파일을 편집하여 차단합니다. 실행되면 재시작이나 앱 삭제 후에도 차단이 유지되며, 중간에 중지할 수 있는 내장 방법이 없습니다.
타이머 자체는 앱을 통해 조기 종료할 수 없습니다. 그러나 알려진 한계로, 기술적으로 능숙한 사용자는 hosts 파일을 직접 편집하여 접근을 복원할 수 있으므로 완전히 깨지지 않는 것은 아니며, 일반적인 사용자가 쉽게 해제하기 어려울 뿐입니다.
커뮤니티에서는 Freedom이 가장 유사한 유료 대안으로 자주 추천되며, One Sec, ClearSpace, Forest, ScreenZen이 무료 옵션으로 제안됩니다. 또한 SelfControl에서 영감을 받은 전용 iOS 도구인 Block Distracting Websites 같은 앱도 있습니다.
정확히는 불가능합니다. 모든 iPhone 앱 차단기는 시스템 수준의 hosts 파일 편집이 아닌 Apple의 Screen Time 프레임워크에서 실행되며, Screen Time 기반 차단기라도 설정의 'Screen Time 접근 권한이 있는 앱' 토글을 통해 비활성화할 수 있습니다. Mac의 SelfControl처럼 재시스트나 삭제에도 유지되는 잠금과는 다릅니다.
Fella는 정확한 메커니즘이 아닌, 그 순간의 우회 수단을 제거한다는 핵심 아이디어를 공유합니다. 선택한 앱은 기본적으로 차단된 상태로 유지되며 앱 내 토글이 없고, 세션당 5분의 비상 잠금 해제 1회가 SelfControl의 고정 타이머 대신 더 작은 일일 허용량을 제공합니다.
Mac의 SelfControl과 달리 iOS 앱을 삭제하면 앱과 함께 차단 제한도 사라집니다. iOS는 Mac의 hosts 파일 편집처럼 삭제에도 유지되는 잠금을 지원하지 않기 때문입니다. Fella의 엄격함은 앱 내 우회 수단이 없다는 데서 오는 것이지, 삭제를 막는 데서 오는 것이 아닙니다.
Fella는 개별 웹사이트보다는 앱 차단에 중점을 둡니다. 차단된 앱의 웹사이트에 브라우저로 접근하는 것도 습관의 일부라면 별도의 제한이 필요할 수 있습니다.
Fella가 주의를 흩트리는 앱을 차단하고,
세션당 5분의 잠금 해제 기회를 드립니다.