아이폰 아이패드 강좌

iOS의 백그라운드 앱은 종료할 필요가 없다. 단, 미세한 차이는 있다.

T.B 2015. 10. 24. 08:31


iOS 앱의 멀티태스킹은 안드로이드와 같은 real-multitasking이 아닌, 일시정지 개념인 pseudo-multitasking이다. iOS 9 부터 아이패드2를 제외한 아이패드에서 스플릿뷰를 제공하기는 하지만 여전히 iOS의 기본은 멜웨어 등의 사용자 몰래 백그라운드에서 프로세싱을 차단하고자 하는 목적으로 '멀티태스킹 불허'다. 이마저도, 탈옥 사용자들은 ryan petrich의 smart close로 백그라운드 프로세싱을 '하지 말라.' 권한다.


Appleinsider에 앱스토어를 통해서 정식으로 다운로드 한 앱의 경우 '앱 강제 종료'를 할 필요가 없다는 글이 올라왔다.


애플인사이더님께서 그러셨으니, Aㅏ.. 그렇구나.. 그런가보다..


가 아니라, 백그라운드 앱이 영향을 줄 수 있는 몇가지 가능성에 관해서는 생각을 더 해볼 필요도 있고 이러한 주장은 즉각적인 반박을 할 수 있다. (이하 전문 번역, 원문은 Appleinsider 에서 확인할 수 있다.)


1. 전문 번역


그렇다, 당신은 iOS 앱들을 홈버튼을 두번 누른 후 슬라이딩 화면 업으로 강제종료 할 수 있다. 그러나, 그러한 정기적으로 이같은 행동을 하는 습관이 그것(속도, 배터리)에 영향을 주지는 않는다. 여기 왜 그런가에 관한 이유가 있다.


한줄 요약(tl;dr): 지속적인 스와이핑 업으로 모든 앱을 강제종료 하는 것은 시간 낭비다.


지난 몇년간, iOS는 앱 스위처 보기 접근으로 앱 강제 종료 기능을 포함해왔다. 달라진 iOS의 업데이트와 함께 멀티태스킹에 관하여 보고 느끼는 동안, 기본적인 작동과 성향은 달라진 것이 없다. 앱 스위처는 단지 최근에 사용했던 앱으로 빠르게 점프 할 수 있도록 사용자들에게 제공하는 쉬운 방법일 뿐이다.


그러나, 많은 유저들은 '잘못된 믿음'이 있는데 앱 스위처에서 보여지는 모든 앱들이 현재 그들의 아이폰에서 백그라운드로 구동되고 있는 줄 안다는 것이고, 이것들이 퍼포먼스(속도 등)와 배터리 사용량에 영향을 주고 있다고 믿고 있다. 그것은 잘못된 것이다.


애플의 iOS 플랫폼은 인공지능 멀티태스킹을 제공하고, 이것이 의미하는 바는 백그라운드에서 일부 앱들이 (선택적으로)작동하거나 종료하는 것을 자동으로 제어하며, 그때 앱을 자동으로 닫아주는 기능이 있다.


그러나, iOS 앱 스위처에서는 아이폰 또는 아이패드에서 오픈했던 모든 앱들을 보여주는 것이며 이것들은 백그라운드에서 실제로 구동이 됨 또는 되지 않음과 상관이 없다.


iOS 앱 스위처에 관한 오해는 많은 유저들이 '홈버튼 두번 누르기와 스와이핑 업'으로 그들의 모든 앱을 강제종료 하는 습관을 채택하게 이끌어 왔고, 지속적으로 헛된 노력을 통해 그돌의 기기 배터리와 퍼포먼스가 향상될 것이라는 믿음을 주었다.


진실은, 이런 습관들이 시간 낭비라는 것이다.


근거를 들자면, 당신의 폰을 재시작 한 후, 그때 홈버튼 더블 클릭을 눌러보면 (앱 스위처 목록에) 당신은 앱스위처에서 (리부팅 전)최근 사용한 동일한 앱을 볼 수 있을 것이다. 그럼에도 불구하고 팩트는 iOS가 완전히 리부팅 됐고 아무것도 열려있지 않다는 것이다.[1]


당신이 앱을 강제종료 해야 하는 유일한 경우는, 만약에 그것(앱)이 무반응이거나 불규칙적으로 작동할 때 뿐이다. 예를 들자면, 만약 당신이 페이스북을 사용했고 그 앱이 충돌이 났을 때 홈화면으로 돌아갈 수 있다. 그때 홈버튼 두번 누르기를 한 후 스와이프 업으로 페이스북을 윈도우에서 강제로 종료할 수 있다. 페이스북을 다시열면 그 앱의 정상적인 상태로 돌아갈 수 있다.


만약 당신이 배터리 수명과 퍼포먼스에 관하여 진정 걱정이 된다면, 실제로 효과적인 방법은 당신의 스크린 밝기를 줄이고 iOS 9 부터 제공하는 저전력 모드(Low Power Mode)로 향상시키거나[2] 설정에서 백그라운드 앱 리프레쉬를 제어하는 것이다.[3]


2. 부연 설명


[1]Pseudo-Multitasking에 관한 얘기다. iOS 플랫폼에서 제공하는 '일시정지' 개념의 멀티태스킹이 종료된다는 얘기로 실험 방법은 ① 아무 앱이나 실행한 다음 → ② 홈버튼을 한번 누르고 홈화면으로 나와서 → ③ 홈버튼을 두번 누른 다음 앱 스위처에서 멀티태스킹을 진행해본다. '게임'류를 통해서 확인하면 가장 이해가 빠른데, iOS 플랫폼에서의 게임을 백그라운드로 놓으면 일시정지 되거나 재실행된다.


그 다음으로는, 아무 앱이나 실행한 후 멀티태스킹을 몇번 해본다. 예를 들자면 Safari 브라우저로 아무 페이지에 들어간 다음 멀티태스킹을 몇번 해보고 백그라운드에 Safari를 둔 다음에 리부팅을 해본다. 리부팅이 됐다면 다시 앱스위처를 열어서 Safari를 누르면 리부팅 전과 다르다는 것을 알 수 있는데 리부팅 전에는 즉각적으로 그 페이지에 접근할 수 있으나, 리부팅 후에는 Safari가 '재실행'되는 것을 확인할 수 있다.


[2]'설정 → 배터리 → 저전력 모드'에서 iOS 9이 설치된 기기의 A-프로세서 클럭수를 임의로 제한할 수 있으며, 설치된 앱 중 가장 많은 배터리 소비량을 차지하는 랭킹을 보여준다. (게임을 자주 하지 않는 이상)거의 대부분이 '홈 및 잠금화면'이 높은 비중을 차지할 가능성이 높다. 이때야 말로 '설정 → 일반 → 디스플레이 및 밝기'에서 '자동 밝기'를 해제하고 수동으로 디스플레이 밝기를 (bar 기준으로) 약 1/4 ~ 1/5로 줄이면 배터리 수명이 크게 향상될 수 있다.



(2015년 9월 28일에 소개했던 내용으로, iOS 9에서 저전력 모드를 사용함으로써 아이폰 사용시간을 크게 증가시킬 수 있다. 고사양 게임을 구동하지 않는 이상 아이폰을 굳이 노멀 모드로 쓸 필요는 없다.)


다만, 저전력 모드를 사용할 경우 클럭수가 제한되어 퍼포먼스가 저하된다. 과거 A-시리즈 칩에서도 저전력 모드 개념이 있었는데, 사용자가 제어할 수 있는 저전력 모드가 아닌 애플이 배터리 수명과 과열을 이유로 임의로 제한해뒀다. 이걸 탈옥 후 강제적으로 해제하여 원래 클럭수를 회복하는 방법이 오버-클럭이라 잘못 알려지기도 했다. 이같은 기능들을 iOS 9에서 도입한 것으로 앞으로 안드로이드에서도 유사 기능이 제공될 것이다.


[3]'설정 → 일반 → 백그라운드 App 새로 고침'에서 iOS에서 제공되는 백그라운드 실행 중 일부 실행을 제어할 수 있다. 디폴트 앱 또는 사용자가 설치한 앱에 관하여 제한되며, 선택적으로 백그라운드에서 새로 고침(사용자가 실행을 하지 않아도 자동으로 특정 동작을 수행하는 백그라운드 프로세싱)을 제어할 수 있다. 이때, 주의할 점은 날씨, 푸쉬 알림과 같은 앱의 새로고침을 제한한다면 당연히 이와 관련된 기능을 제공받을 수 없기에 (그 기능을 원한다면)선택적으로 제한해야 한다.


3. 반박


Appleinsider의 글은 '가용램'을 배제한 글이다. iOS에서 앱스위처에 앱이 등록된다면, garbage collector 에서 할당된 메모리 영역 가운데 더 이상 쓸 수 없는 영역을 탐지하여 자동으로 해제를 하게 된다. 이 과정에서 프로세싱이 발생할 수 있으니 퍼포먼스와 배터리에 미세한 영향을 줄 수 있다. 이것이 iOS 9에서 개선됐고 큰 영향을 주지 않는 다는 얘기다. 아무 영향을 주지 않는다와는 다르다.



(지난 2014년 11월 17일에 Quora의 글을 번역하여 iOS가 안드로이드 보다 더 적은 스펙으로도 높은 퍼포먼스를 낼 수 있는 이유를 garbage collector 설계 스타일의 차이로 설명한적이 있다. 안드로이드 M 마쉬멜로우에서는 '실질적인 데이터 확인이 필요한 전제'에서 가용램만 보자면 똑같은 2GB RAM의 롤리팝 넥서스5 2013이 상시 가용램 900MB ~ 1.2GB 였던 반면 마쉬멜로우 넥서스5X는 1.4GB 이상으로 개선됐다. 이것이 단순히 설계상의 향상인지 HW의 차이인지는 불분명하다. RAM은 둘 다 LPDDR3다.)


애플인사이더의 글은 순정 iOS 사용자들이 프로파일 설치(비인가 서드-파티 앱)에 관한 내용 또한 배제됐다. 프로파일 설치는 쉽게 비유를 들자면 한국의 엑티브엑스와 유사한 기능이다. 엑티브엑스는 윈도우에서 제공하는 모든 보안 기능을 '일시적으로 차단' 특정 기업에서 임의로 배포하는 프로그램을 사용자의 PC에 설치하는 것이다. iOS에서도 특정 기업에서 임의로 배포하는 서드-파티 앱을 설치할 수 있는데, 일반 유저들이 가장 쉽게 접할 수 있는 것들이 '탈옥 없이 OOO' 시리즈다. 주로 에뮬레이터가 해당되고, 과거 부트로더 언락 방식의 탈옥 이후 SW exploit 기반 탈옥에서 exploit을 삽입 할 때도 쓰인다.


정리를 하자면 앱스위처에 등록된 목록에 관하여 '강박관념을 가질 필요는 없다.'는 맞는 얘기다. 다만 약간의 미필적 고의와 함께 탈옥(Jailbreak)에 관한 내용도 배제됐다.


iOS 플랫폼은 탈옥을 통해서 더 쉽고 편리하게 관리할 수 있다. 이 글과 관련된 트윅만 말하자면 SmartClose(백그라운드 프로세싱 관리), CCSettings for iOS 9(iOS 설정을 제어센터에서 토글로 제어 및 백그라운드 앱 한번에 종료) 등이 있다.


 T.B의 SNS 이야기 블로그의 모든 글은 저작권법의 보호를 받습니다. 어떠한 상업적인 이용도 허가하지 않으며, 이용(불펌)허락을 하지 않습니다.

▲ 사전협의 없이 본 콘텐츠(기사, 이미지)의 무단 도용, 전재 및 복제, 배포를 금합니다. 이를 어길 시 민, 형사상 책임을 질 수 있습니다.

▲ 비영리 SNS(트위터, 페이스북 등), 온라인 커뮤니티, 카페 게시판에서는 자유롭게 공유 가능합니다.


T.B의 SNS이야기 소식은 T.B를 팔로윙(@ph_TB) 하시면 실시간으로 트위터를 통해서 제공 받을 수 있습니다.

728x90
반응형