2012.01.09

“쌓이면 지워야 한다?” 아이폰 멀티태스킹 바의 진실

Fraser Speirs | CFO world
iOS와 관련해서는 잘 못 알려진 사실들이 많다. 애플 지니어스(Apple Geniuses)와 같은 믿을 만한 소식통으로 여겨지는 곳도 제대로 파악하지 못한 것들도 있다. 특히, iOS의 멀티태스킹 동작 방식은 여러 가지 부정확한 것들이 마치 사실처럼 이야기 되고 있다. 
 
많은 사람들은 다음과 같이 이야기 한다.
 
iOS 기기에서 멀티태스킹 바에 있는 모든 앱들은 모두 활성화된 상태이기 때문에 속도 저하, 메모리 차지, 또는 배터리 소모를 유발한다. 그렇기 때문에 성능과 배터리 수명을 극대화하기 위해서는, 수동으로 그러한 앱들을 종료시켜야 한다.
 
하지만 iOS 멀티태스킹 바에 모든 실행 중인 앱 목록이 포함되는 것은 아니다. iOS 멀티태스킹 바에는 가장 최근 사용된 앱이 순서대로 포함될 뿐이다. 그러므로 사용자는 iOS 상의 백그라운드 태스크를 관리할 필요가 없다.
 
앞으로 이야기 할 몇몇 사례를 제외하고, 멀티태스킹 바에 있는 앱들이 모두 실행 중인 것은 아니다. 사용자가 홈 버튼을 누르면, iOS는 실행 중이던 앱을 종료한다. 거의 모든 경우에 앱은 종료되고 프로세서 타임(그러므로 배터리도)의 사용이 중단되며 필요한 경우에는 사용 중이던 메모리도 회수된다.
 
앱의 5가지 상태
iOS 앱에는 다음의 5가지 실행 상태가 있다. 
• 비실행 : 중지 혹은 실행되지 않은 앱의 상태.
• 비활성 : 실행되었지만 이벤트를 받지 않고 있는 앱의 상태 (예를 들어, 앱이 활성화된 상태에서 기기가 잠금 설정된 경우)
• 활성 : “사용 중”인 앱의 일반적인 상태.
• 백그라운드 : 화면에 나타나지 않지만 코드는 여전히 실행되고 있는 상태.
• 중지 : 메모리 상에 존재하긴 하지만 코드가 실행되고 있지는 않은 상태.
 
여기에서 활성이냐 비활성이냐는 서로 관련이 없다. 대부분 혼란스러운 것은 활성에서 백그라운드로, 중지로 그리고 비실행 상태로 바뀌면서 어떻게 되는가 이다. 
 
사용자가 홈 버튼을 누르면, 앱은 활성에서 백그라운드 상태로 바뀐다. 그러면 대부분의 앱들은 몇 초가 지나면 백그라운드에서 중지 상태로 변환된다. 중지된 상태의 앱들은 기기의 메모리 상에 남아 있는다. 그러므로 다시 활성 상태로 바뀔 때 재빠르게 상태가 전환될 수 있다. 이러한 상태의 앱들은 프로세서 시간과 배터리 전력을 소모하지 않는다.
 
앱이 메모리 상에 잔류한다면 메모리를 절약하기 위해 수동으로 그것을 제거해야 한다고 생각하는 사용자들도 있을 수 있다. 그러나 그렇게 할 필요는 없다. iOS가 그러한 작업을 알아서 수행하기 때문이다. 사용자가 게임과 같은 메모리를 많이 소비하는 앱을 실행하는 경우, iOS는 메모리에서 중단 상태의 앱을 제거하고 비 실행 상태로 전환시킨다. 즉, 그러한 앱들은 메모리 상에서 완전히 삭제되고 차후에 사용자가 해당 앱을 다시 누르면 새로운 상태로 실행된다.
 
“이러한 상태들이 멀티태스킹 바에는 반영되지 않기 때문에” 여기에서 혼란이 발생한다. 멀티태스킹 바는 앱의 상태가 백그라운드, 중지, 혹은 비 실행 상태인지에 관계 없이 최근에 실행된 앱의 목록만을 보여준다(현재 활성 상태인 앱은 멀티태스킹 바에 나타나지 않는다.). 
 
백그라운드 태스크
필자가 좋아하는 팟캐스트 앱인 인스타캐스트(Instacast)와 같이 약간 용량이 큰 파일을 웹에서 다운로드하는 앱을 예로 생각해보자. 활성 상태인 경우 인스타캐스트는 새로운 팟 캐스트를 다운로드하기 시작한다. 기본 설정으로, 사용자가 아이폰에서 홈 버튼을 누르면, 인스타캐스트는 중지 상태로 전환되기 전 5초 동안 백그라운드 상태로 실행된다. 그렇게 되면 팟캐스트의 다운로드가 중단되고, 파일 크기 때문에 약간의 시간이 소모된다. 
 
그러나 iOS는 백그라운드 상태에서 실행 시 시간이 많이 소요되는 작업이 있는 인스타캐스트와 같은 앱의 경우 유예를 허용하기도 한다. 인스타캐스트 앱은 “백그라운드 태스크”로 팟 캐스트를 다운로드할 것이라 요청할 수 있다. 그렇기 때문에 사용자가 홈 버튼을 누른 이후에도 다운로드를 완료하기 위해 추가적인 백그라운드 실행 상태를 유지할 수 있다. 
 
인스타캐스트가 하루 종일 실행되는 것은 아니다. iOS가 강제로 앱을 중지시키기 전 앱은 약 10분의 백그라운드 실행 상태를 유지할 수 있다. 그렇지만 그러한 기능은 일반적인 사용자가 걱정할 정도는 아니다. 
 



2012.01.09

“쌓이면 지워야 한다?” 아이폰 멀티태스킹 바의 진실

Fraser Speirs | CFO world
iOS와 관련해서는 잘 못 알려진 사실들이 많다. 애플 지니어스(Apple Geniuses)와 같은 믿을 만한 소식통으로 여겨지는 곳도 제대로 파악하지 못한 것들도 있다. 특히, iOS의 멀티태스킹 동작 방식은 여러 가지 부정확한 것들이 마치 사실처럼 이야기 되고 있다. 
 
많은 사람들은 다음과 같이 이야기 한다.
 
iOS 기기에서 멀티태스킹 바에 있는 모든 앱들은 모두 활성화된 상태이기 때문에 속도 저하, 메모리 차지, 또는 배터리 소모를 유발한다. 그렇기 때문에 성능과 배터리 수명을 극대화하기 위해서는, 수동으로 그러한 앱들을 종료시켜야 한다.
 
하지만 iOS 멀티태스킹 바에 모든 실행 중인 앱 목록이 포함되는 것은 아니다. iOS 멀티태스킹 바에는 가장 최근 사용된 앱이 순서대로 포함될 뿐이다. 그러므로 사용자는 iOS 상의 백그라운드 태스크를 관리할 필요가 없다.
 
앞으로 이야기 할 몇몇 사례를 제외하고, 멀티태스킹 바에 있는 앱들이 모두 실행 중인 것은 아니다. 사용자가 홈 버튼을 누르면, iOS는 실행 중이던 앱을 종료한다. 거의 모든 경우에 앱은 종료되고 프로세서 타임(그러므로 배터리도)의 사용이 중단되며 필요한 경우에는 사용 중이던 메모리도 회수된다.
 
앱의 5가지 상태
iOS 앱에는 다음의 5가지 실행 상태가 있다. 
• 비실행 : 중지 혹은 실행되지 않은 앱의 상태.
• 비활성 : 실행되었지만 이벤트를 받지 않고 있는 앱의 상태 (예를 들어, 앱이 활성화된 상태에서 기기가 잠금 설정된 경우)
• 활성 : “사용 중”인 앱의 일반적인 상태.
• 백그라운드 : 화면에 나타나지 않지만 코드는 여전히 실행되고 있는 상태.
• 중지 : 메모리 상에 존재하긴 하지만 코드가 실행되고 있지는 않은 상태.
 
여기에서 활성이냐 비활성이냐는 서로 관련이 없다. 대부분 혼란스러운 것은 활성에서 백그라운드로, 중지로 그리고 비실행 상태로 바뀌면서 어떻게 되는가 이다. 
 
사용자가 홈 버튼을 누르면, 앱은 활성에서 백그라운드 상태로 바뀐다. 그러면 대부분의 앱들은 몇 초가 지나면 백그라운드에서 중지 상태로 변환된다. 중지된 상태의 앱들은 기기의 메모리 상에 남아 있는다. 그러므로 다시 활성 상태로 바뀔 때 재빠르게 상태가 전환될 수 있다. 이러한 상태의 앱들은 프로세서 시간과 배터리 전력을 소모하지 않는다.
 
앱이 메모리 상에 잔류한다면 메모리를 절약하기 위해 수동으로 그것을 제거해야 한다고 생각하는 사용자들도 있을 수 있다. 그러나 그렇게 할 필요는 없다. iOS가 그러한 작업을 알아서 수행하기 때문이다. 사용자가 게임과 같은 메모리를 많이 소비하는 앱을 실행하는 경우, iOS는 메모리에서 중단 상태의 앱을 제거하고 비 실행 상태로 전환시킨다. 즉, 그러한 앱들은 메모리 상에서 완전히 삭제되고 차후에 사용자가 해당 앱을 다시 누르면 새로운 상태로 실행된다.
 
“이러한 상태들이 멀티태스킹 바에는 반영되지 않기 때문에” 여기에서 혼란이 발생한다. 멀티태스킹 바는 앱의 상태가 백그라운드, 중지, 혹은 비 실행 상태인지에 관계 없이 최근에 실행된 앱의 목록만을 보여준다(현재 활성 상태인 앱은 멀티태스킹 바에 나타나지 않는다.). 
 
백그라운드 태스크
필자가 좋아하는 팟캐스트 앱인 인스타캐스트(Instacast)와 같이 약간 용량이 큰 파일을 웹에서 다운로드하는 앱을 예로 생각해보자. 활성 상태인 경우 인스타캐스트는 새로운 팟 캐스트를 다운로드하기 시작한다. 기본 설정으로, 사용자가 아이폰에서 홈 버튼을 누르면, 인스타캐스트는 중지 상태로 전환되기 전 5초 동안 백그라운드 상태로 실행된다. 그렇게 되면 팟캐스트의 다운로드가 중단되고, 파일 크기 때문에 약간의 시간이 소모된다. 
 
그러나 iOS는 백그라운드 상태에서 실행 시 시간이 많이 소요되는 작업이 있는 인스타캐스트와 같은 앱의 경우 유예를 허용하기도 한다. 인스타캐스트 앱은 “백그라운드 태스크”로 팟 캐스트를 다운로드할 것이라 요청할 수 있다. 그렇기 때문에 사용자가 홈 버튼을 누른 이후에도 다운로드를 완료하기 위해 추가적인 백그라운드 실행 상태를 유지할 수 있다. 
 
인스타캐스트가 하루 종일 실행되는 것은 아니다. iOS가 강제로 앱을 중지시키기 전 앱은 약 10분의 백그라운드 실행 상태를 유지할 수 있다. 그렇지만 그러한 기능은 일반적인 사용자가 걱정할 정도는 아니다. 
 

X