백그라운드 앱 새로고침은 꺼야 하나요?
아이폰의 배터리 라이프를 증가시키기 위해, 백그라운드 앱 새로고침을 끄라는 수 많은 블로그 포스트들을 볼 수 있습니다. 제 개인적으로 이러한 글들을 좀 무책임하다고 생각합니다. 백그라운드 앱 새로고침을 완전히 끄는 것이 배터리에 도움을 주는 것은 사실이지만... 이 글을 다 읽고 다시 판단해 보시기 바랍니다.
백그라운드 앱 새로고침이란
백그라운드 앱 새로고침이란, 앱들이 사용되지 않는 동안에도, 아주 작은 용량의 데이터를 웹으로 부터 내려 받아 컨텐츠를 미리 준비시켜 두는 기능입니다. 따라서, 오랫만에 트위터를 켜더라도, 추가 로드 없이 최신 타임라인이 표시되는 등의 경험이 가능해집니다.
일반적인 백그라운드 작업과의 구분
일반 백그라운드 작업
일반 앱들은 홈 버튼을 눌러 홈화면으로 나가거나, 다른 앱으로 전환하면, 일시 중단상태로 전환되어, 배터리를 포함하여 더 이상 시스템 리소스를 사용하지 않습니다. 다만 파일 다운로드등, 안전한 파일 닫기등을 위해, 보통 앱들도 약 3분간의 유예시간을 가질 수 있습니다.
위치 기반, 오디오 재생, VOIP 통화 같은 특수한 앱들은, 중단 상태에서도 시간 제약 없이 시스템 리소스를 사용하며 일련의 작업을 계속 수행할 수 있습니다. 이 작업은 앱을 강제 종료할 때 까지 지속됩니다. 이러한 작업들을 백그라운드 작업이라고 합니다.
백그라운드 앱 새로고침
일반 백그라운드 작업과 달리, 백그라운드 앱 새로고침은 앱의 상태와 무관하게(앱을 실행한 적이 없거나, 강제 종료한 상태라 하더라도) 주기적으로 작동될 수 있습니다. 백그라운드 앱 새로고침은 하루에 한 두번 정도, 적당한 시점에 3~40초 가량 수행되고 종료됩니다. (자세한 내용은 후술됩니다.)
중요한 사실 중 하나는, 실제로 백그라운드에서 배터리를 잡아먹는 대부분의 일반적인 백그라운드 작업은 백그라운드 앱 새로고침을 끄더라도 영향을 받지 않는다는 점입니다. 이들은 오직 앱을 강제 종료한 경우에만 백그라운드 리소스를 쓰지 않습니다. (내비 앱등)
백그라운드 작업을 완전히 차단한다는 것은, 상기한 앱들이 아예 제대로 작동할 수 없다는 뜻이며, iOS3를 설치하는 것 외엔 방법도 없습니다. (그것도 가능할거란 생각이 들지는 않습니다만)
작업 시점 및 제약
백그라운드 앱 새로고침시에 일어나는 과정은 다음과 같습니다:
- 아이폰은 적당한 시점에 앱을 깨우거나 실행하여 백그라운드 새로 고침 작업을 시작하라고 알려 줍니다.
- 앱은 이 작업을 수행하고 3~40초 이내에 완료사실을 iOS에게 통보해야 합니다.
- 대부분의 앱은 이 동안 새로운 컨텐츠를 내려 받아 앱내의 데이터베이스를 업데이트 합니다.
- 만일 주어진 시간 이내에 작업완료가 통보되지 않으면 iOS는 앱을 강제로 종료시키고, 더 이상 예산을 할당하지 않습니다.
그런데 적당한 시점이란 과연 언제일까요?
이 작업은 보통 하루에 한 두번 정도 수행되며, 사용자의 사용 습관에 따라 배터리 수명에 영향을 최소화 할 수 있는 최적 시간에 스케쥴 됩니다. 예를 들어 여러분이 집과 직장등에서 비교적 유사한 시간대에 충전 소스 및 Wi-Fi에 연결한다면, 해당 시점에 백그라운드 앱 새로고침을 예약합니다.
어차피 아이폰을 활발하게 사용하고 있는 중이어서, 적은 파일을 하나 둘 정도 더 다운로드 받아도 배터리 수명에 영향을 거의 주지 않는 환경에서도 예약 됩니다. 조건이 만족되지 않거나, 절전모드인 경우, 백그라운드 앱 새로고침은 수행되지 않습니다.
어떤 앱들이 어떤 동작을 수행하나
이러한 동작은 대게 SNS, 뉴스등과 같은 앱에서만 사용하며, 보통은 소량의 데이터를 다운로드 받아 데이터를 최신화 하는 작업을 수초 이내에 마칩니다. 일반적인 앱들은 아무런 동작도 하지 않습니다. 그 짧은 시간동안 크게 할 수 있는 일이 많지 않습니다.
변칙적인 백그라운드 앱 새로고침
그러나 일부 앱들은 그 동안 변칙적인 작업을 할 수도 있습니다. 예를 들어 제 앱 중 하나인 ‘오늘은’ 같은 경우, 백그라운드 앱 새로고침 동안, 디-데이 카운트 배지를 업데이트 전용 로컬 푸시를 갱신합니다. iOS는 앱들이 로컬 푸시 예약을 64개까지만 허용하기 때문에, 이러한 변칙적인 테크닉을 사용하지 않으면, 앱을 64일 이상 사용하지 않았을 경우, 배지가 제대로 업데이트 되지 않는 문제를 유발하기 때문입니다. (또한, 다른 로컬 알림이 추가적으로 필요한 상황이라면 64개중 나눠써야 하기 때문에 그보다 이른 시점에 문제가 발생할 수 있습니다.)
또 다른 제 앱인 미리알림: 위젯+의 경우, 완료되고 오래된 미리알림 항목들을 영구 삭제하는 등의 작업을 합니다. (이들이 시리 검색기능을 매우 쓸모 없게 만들어 버리기 때문에) 제 앱들은 위젯 기능이 주 강점인 앱들이어서, 사용자들이 위젯만 사용하고 앱을 영원히 안 켤수도 있기 때문에, 저는 이런 방법을 사용해야만 했습니다.
전술한 바와 같이 Apple의 의도와는 다른 구현(소량의 데이터를 다운 받아 데이터를 갱신시키는 작업이 아닌 작업들)들이 있을 수 있습니다. 이러한 앱들의 경우, 백그라운드 앱 새로고침을 꺼 두신 경우, 일부 기능이 정상적으로 작동하지 않을 수 있습니다.
앱 신뢰
물론 그러도록 의도된 것은 아니지만, 저 짧은 시간에도 에너지에 심각한 영향도를 주는 코드를 수행하는 악성 앱이 있을 수도 있습니다. 여러분의 라이프 패턴이 집-직장 충전과 같은 균일한 패턴이 아니라면, 백그라운드 앱 새로고침은 여러분이 아이폰을 활발히 사용하는 동안 수행 될 것이고, 이는 배터리 성능에 영향을 줄 수 있습니다. 따라서, 의심되는 앱이 있으면 해당 앱의 백그라운드 새로고침을 꺼 두신다고 해도 특별히 이견이 없습니다, 다음의 방법에 따라 일부 앱만 백그라운드 앱 새로 고침을 차단할 수 있습니다:
- 설정 앱을 여세요
- 일반 > 백그라운드 앱 새로고침을 선택하세요.
- 신뢰하지 않는 앱을 끄십시오.
셀룰러 데이터
여러분이 주무시는 동안 iPhone이 데이터 요금을 발생시킬 수도 있다는 사실이 달갑지 않으실 수도 있습니다. 여러분의 실생활 패턴에 자주 등장하는 고정적인 Wi-Fi 연결이 없다면, iOS는 셀룰러 네트워크를 통해 백그라운드 앱 새로고침을 수행할 수 도 있기 때문이죠. 이를 막고 싶으시다면 다음 절차를 따르세요:
- 설정 앱을 여세요
- 일반 > 백그라운드 앱 새로고침을 선택하세요.
- 최상단의 백그라운드 앱 새로고침을 선택하시고, Wi-Fi를 선택하십시오.
결론
2~3일 씩 충전없이, WiFi 따위 없는 곳에 매일 등산을 다닌다던가 하는식의 대단히 독특한 라이프 스타일을 가지신게 아니라면, 걍 켜두시면 됩니다.
페이스북 따위에 가뭄에 콩나듯 긴 글을 적어 본 경험을 되새기며, 이 글을 쓰는데 얼마나 공을 들이셨을까를 생각하게 하네요. 오지랖 넓은 욕심(?)으론, 개인 블로그나 페이스북 담벼락 등에도 적어 더 많은 분들이 공유할 수 있다면 좋겠네요. 잘 읽었습니다.
아무리 신경꺼라, 앱화면 위로올려봤자 소용없다 말해도 소용이 없더군요.
덧붙여 애플에서 기본적으로 활성화 된것은 끄지 않고 쓰는게 편하게 쓸 수 있다고 생각되서 건드리는게 없네요.
많이 배웁니다 감사합니다
저같은 경우엔 구글포토 업로드를 위해 백그라운드 새로고침을 쓰고 있는데요,
배터리가 염려되서 평상시엔 끔으로 해두고
잠 잘 때만 'wifi 연결시만 백그라운드 앱을 새로 고침' 옵션을 켭니다. 물론 충전하고요.
이 경우엔 주기적으로 30-40초씩만 리소스를 쓰나요, 아님 자는동안 지속적으로 쓰는건가요?
후자라면, 즉 충전하면서 계속 작업을 한다면 배터리 생명에 치명적인건가요?ㅠㅠ
하지만 확실한 것은 백그라운드 앱 새로고침을 과정중에 직접, 업로드 하는 것 아니라는 점입니다. 백그라운드 앱 새로고침 30초 제한 시간을 풀 방법은 없습니다. 그리고 이놈은 그렇게 자주 실행될 수 없습니다.
다만 이론상, 백그라운드 앱 새로고침이 파일 업로드 세션 작업을 시작 시킬 수는 있습니다. 즉, 백그라운드 앱 새로고침이 자기자신은 즉시 종료하면서 일반적인 파일 업로드와 같은 작업을 시작 시킬 수는 있습니다.
이렇게 시작된 세션은, 앱의 실행/종료 여부와 상관 없이 iOS가 직접 해당 파일을 백그라운드에서 업로드 시킵니다. (앱의 코드가 실행되는 것이 아님)
이렇게 시작되어버린 작업은 앱 새로고침이 끝나도 지속되므로, 백그라운드 새로고침 옵션과 상관 없이 셀룰러 네트워크를 사용할 수도 있으며, 배터리에 악영향을 줄 수도 있습니다. 이미 시작된 후, WiFi연결이 끊어지거나, 충전 소스로 부터 분리될 수 있으니까요. 하지만 자는 동안 그런 일이 일어날 확률은 높지 않을 것 같습니다.
업로드 세션을 시작할 때, 셀룰러도 쓸 것인지 결정하는 옵션이 있습니다.
여튼 마음놓고 써도 되겠네요. 좋은 글 (+답변까지) 너무 감사드립니다!
좋은 글 감사합니다 :D