아이폰 iOS4의 가장 큰 변화를 가져온 멀티태스킹! 요즘 이 멀티태스킹 때문에 말들이 많은데요. 아직, 아이폰 멀티태스킹에 대해 좀 더 알고 싶다면 '아이폰 iOS4 멀티태스킹의 오해와 진실'을 읽어보세요.

아이폰 멀티태스킹에서는 이론 상 메모리가 부족하게 되면, 백그라운드로 실행중인 다른 어플을 자동으로 강제종료하게 되어 있습니다. 그렇지만, 멀티태스킹으로 수행중인 어플들이 많아질수록 메모리가 환원되지 않고, 버벅거리거나 튕기는 일이 발생하고 있습니다.
http://latte4u.net
이것은 아이폰 어플을 개발할때 메모리 관리를 수동으로 해줘야하는 이유때문이기도 합니다. 사람 손으로 하나 하나 관리를 해야하니, 메모리가 누수되는 경우가 많아지면 문제가 생기기 시작하죠.

이유야 어쨌거나 메모리가 부족할때 멀티태스킹으로 수행중인 백그라운드 어플을 중지시키고 메모리를 환원해야하는데, 개발자의 문제인지 애플의 ‭iOS4의 문제인지 제대로 되지 않는 경우가  생기네요. 일반적인 어플을 사용할때는 메모리 부족으로 인한 어플 튕김 현상이 거의 없지만, 게임과 같이 용량이 큰 것을 실행하면 메모리 부족 현상이 더욱 심해집니다.

자, 그럼 수동이라도 관리를 해줘야 할까요?
일반적인 어플(멀티태스킹 포함) 사용할 때는 메모리 관리가 잘 되는 편이라 신경쓰지 않아도 됩니다. 아이폰이 알아서 관리하는 것이 정상입니다. 하지만, 메모리 누수가 되거나 관리가 잘 안되는 어플들이 쓰레기로 남아 있으면 게임 같이 큰 어플은 메모리 환원을 제대로 못하고 튕겨나가게 됩니다. 

#1 시간이 지나면 제거되는 멀티태스킹 어플
멀티태스킹을 지원하는 DropBox 어플로 테스트를 해보았는데, 최근 실행한 뒤에는 멀티태스킹의 기능으로 바로 전에 읽던 화면 그대로 보여줍니다. 하지만, 시간이 한참 지난 뒤에 다른 어플들을 많이 사용하다보면, 자연히 메모리가 부족해지면서 사용 한지 오래 된 어플순으로 메모리에서 제거된다는 생각이듭니다.

#2 멀티테스킹 어플 실행 중지 방법
멀티태스킹을 지원하든 안하든 홈버튼을 빠르게 두번 누르면 화면 하단에 최근 실행 어플 목록이 나타납니다. 이것은 멀티태스킹 목록이 아니라, 최근에 실행한 어플들의 목록입니다. 멀티태스킹 목록 같은 건 제공하지 않습니다.
http://latte4u.net
최근 실행 어플 목록은 홈화면으로 빠져나가지 않아도 다른 어플로 바로 전환할 수 있어서 편리하죠.
 

홈버튼을 두번 눌러서 최근 실행 어플 목록이 나오게 한뒤, 아이콘을 누르고 있으면 흔들흔들 모드로 바뀌게 됩니다. 흔들흔들 모드에서 어플 아이콘을 삭제하게 되면, 멀티태스킹 어플이라면 메모리상에서 해당 어플도 삭제 되어집니다. 멀티태스킹 미지원 어플은 단순히 아이콘만 제거됩니다.
http://latte4u.net
메모리가 부족할 것으로 생각될때, 이런 식으로 최근 실행 어플 목록에서 제거하면 가용한 메모리가 점차 늘어나게 될거에요. 

그렇지만, 최근 실행 어플 목록에서 모든 어플을 제거할 필요는 없습니다. 멀티태스킹 어플이 아니라면, 메모리에 존재하지도 않을 뿐더러, 단순히 아이콘만 있는 거니까요. 메모리에서 제거하는 효과를 얻으려면 현재 메모리에 수행중인 멀티태스킹 어플을 지워야겠죠.
http://latte4u.net
#3 한 번에 메모리 청소하는 방법
최근 실행 어플 목록에서 하나씩 멀티태스킹 어플을 제거하는 일은 어느 것이 멀티태스킹으로 실행중인지도 모르겠고, 매우 번거롭습니다.
http://latte4u.net
그렇다고, 애플에서 메모리 청소 기능을 제공하는 것도 아니구요.

제가 찾은 방법은 리부팅과 리스프링입니다.
리부팅이야 아이폰을 껐다가 켜는 일이니, 당연히 모든 멀티태스킹 어플도 메모리에서 사라지게 되죠.

파워버튼을 한참 누르고 있으면, 정말 아이폰을 끌것인지 메뉴가 나타납니다. 밀어서 꺼주고 완전히 종료된 후 다시 파워버튼을 눌러주면 리부팅을 시작합니다. 리부팅은 리스프링보다 강력하고 제일 깔끔한 방법이지만, 번거롭고 리부팅하는 시간이 많이 걸린다는 결정적인 단점이 있습니다.

그럼, 리스프링은 어떨까요? 

리스프링을 알기전에, 스프링보드에 대한 이해가 필요한데요, 스프링보드는 아이폰 OS에서 가장 중요한 사용자 인터페이스입니다. 여러분이 보고 있는 잠긴 화면, 아이콘이 배열된 홈화면 등등 실제로 사용자가 아이폰을 사용하기 위해 애플이 제공하는 일종의 Launcher 어플이자 윈도 관리자입니다.

리스프링이란, 스프링보드 어플을 중단시키고 재실행하는 의미입니다.

그런데, 리스프링 과정을 거치면서 멀티태스킹 어플도 메모리에서 사라집니다. 최근 실행 어플 목록에는 여전히 아이콘이 남아 있지만, (왜냐면 최근 실행된 목록이니까요) 메모리 상에서는 제거된 것으로 테스트 했습니다.
http://latte4u.net
리스프링 방법
아이폰 설정-일반-다국어에서 언어 변경 (영어<->한국어)


테스트 방법
STEP 1. DropBox와 같이 멀티태스킹을 지원하는 어플을 전환하면서 멀티태스킹이 되는 것을 확인.
STEP 2. 설정-일반-다국어에서 언어 변경
STEP 3. 리스프링
FINISH. DropBox와 같은 멀티태스킹 어플을 실행해보면 처음부터 로딩됨.
http://latte4u.net
리스프링은 리부팅에 비해 비교적 수초 이내로 빠르게 홈화면을 다시 볼 수 있습니다.  그리고, 한번에 모든 멀티태스킹 어플을 메모리에서 제거할 수 있구요.
http://latte4u.net
#4 글을 마치며...
아이폰 iOS4가 나오고 일반적인 어플은 큰 문제 없이 멀티태스킹을 포함해서 메모리 관리도 잘 하는 편이지만, 아직은 멀티태스킹 어플이 많지 않고, 메모리 관리도 게임처럼 대용량은 문제가 좀 있어 보입니다.
http://latte4u.net
최근 실행 어플 목록에서 의심가는 녀석들을 제거할 수도 있지만, 리스프링으로 한큐에 메모리 청소를 해주는 방법도 사용해보세요.

개인적인 경험 :: 저는 아직까지 멀티태스킹으로 인한 메모리 부족 현상은 없습니다.

저작권 :: Latte's Planet의 글은 기본적으로 펌금지입니다. 저작권 관련 공지 보기

아이폰/아이팟터치의 OS는 멀티태스킹을 고려하지 않았습니다. 이로 인해, 홈버튼을 누르게 되면, 실행중이던 어플은 종료되고 다른 어플을 실행하는 방식으로 되어 있습니다. 개인적으로 저는 모바일 장비에서의 멀티태스킹을 선호하지 않습니다.

그것은 오랜 기간 Palm OS를 사용하면서 직관적이고 심플한 구성이야말로 모바일 기기에서 필요한것이고 오히려 빠르게 종료되고, 빠르게 실행되는 구조가 모바일 기기에서 더 어울린다고 생각하게 되었습니다.

그러나, 우리는 싱글태스킹만 수행하는 아이폰/아이팟터치의 기능으로는 불편할때가 있습니다. 예를들어 eBook을 보다가 모르는 단어를 찾아보고자 할때, 읽고 있던 eBook을 종료하고 사전어플로 단어를 찾아보고 다시 eBook을 보아야 합니다. 매번 종료했다가 다시 실행해야하는 이런 번거로움은 멀티태스킹을 부르짖게 됩니다.

Cydia 어플에는 아이폰/아이팟터치에서 멀티태스킹이 가능하도록 지원하는 유틸리티 Backgrounder가 있습니다. Cydia어플이므로 순정폰/순정팟 사용자는 사용할 수 없습니다. 해킹된(Jailbreak) 아이폰/아이팟터치 사용자만 사용할 수 있습니다.

Backgrounder 는 Cydia 무료 어플입니다.

2009-06-04 004 2009-06-04 003 

Cydia에서 인스톨하게되면 자동적으로 Backgrounder는 실행상태가 됩니다. Backgrounder의 사용법은 간단합니다.

.Backgrounder 사용법.

1. 어플 실행도중 홈버튼을 길게 누르면 백그라운드로 실행
2. 어플 실행도중 홈버튼을 짧게 누르면 일반적인 정상 종료
3. 백그라운드로 실행중인 어플을 종료하려면 해당 어플을 실행해서 홈버튼을 다시 길게 눌러서 종료함.

.Backgrounder 사용예제.

1. 일반적인 AppStore 어플을 실행합니다. 예를들어 eBook어플인 Stanza 또는 Twitterfon.
2. 현재 실행중인 일반 AppStore 어플을 백그라운드에서 계속 실행되게 하고 싶다면 홈버튼을 길게 누릅니다.
3. 홈버튼을 길게 누르고 있으면 Backgrounding Enabled 되었다는 메세지가 보이고 홈화면으로 빠져나갑니다.
2009-06-04 005

4. 홈화면으로 나왔지만, 좀전의 어플은 백그라운드에서 계속 실행중인 상태입니다. 아이콘 하단에 백그라운드 실행중임을 나타내는 표시가 보입니다. 아래 이미지는 날씨어플이 현재 백그라운드 실행중입니다.
2009-06-04 007

5. 다른 일반 어플, 예를들어 사전어플등을 실행했다가 정보를 확인하고 살짝 홈버튼을 눌러서 정상 종료합니다.
6. 백그라운드로 실행중인 원래 실행했던 어플을 다시 실행합니다. 이때, 어플은 실행중인 상태였기 때문에 화면에 금방 나타나게되고, 트위터어플같은 경우에는 리프레쉬도 해놓게 됩니다.
7. 백그라운드가 한번 Enable된 어플은 몇번을 짧게 홈버튼을 누르고 빠져나가도 계속 백그라운드로 실행됩니다.
8. 백그라운드 실행을 중지하려면 어플을 실행하고 다시 한번 길게 홈버튼을 누릅니다. (Backgrounding Disabled)
2009-06-04 011

디폴트 상태에서 사용해도 무방하지만 Backgrounder에서는 몇가지 세부적인 셋팅 항목을 지원합니다.

Mode에서는 백그라운드 기능 Enable / Disable 기능을 사용하거나, 윈도우 작업관리자처럼 실행중인 프로세스를 보고 실행을 중지할 수 있는 기능을 선택할 수 있습니다.
2009-06-04 001

Button은 실행방법을 홈버튼을 길게 누르는 방법과, 홈버튼을 더블클릭하는 방법을 선택할 수 있습니다.
2009-06-04 008

App_Specific에서는 일반 AppStore 어플중 항상 백그라운드 모드로 실행하고 싶은 어플을 선택하거나(Always-enabled), 백그라운드 모드로 항상 실행되지 않도록 하는 메뉴(Blacklisted)도 있습니다.
2009-06-04 002 2009-06-04 009 2009-06-04 010

주의!! 서론에서 말씀드린대로 아이폰/아이팟터치는 백그라운드 작업을 전혀 고려하지 않은 시스템입니다. 정상적인 어플 종료는 여러분이 어플을 실행하다 홈버튼을 눌러서 빠져나올때, 어플의 현재 상태를 저장하게 되어 있습니다.

Backgounder를 사용하여 여러가지 어플을 실행중이라면, 메모리가 부족한 상황이 되었을때 아이폰/아이팟터치는 자체적으로 실행중인 어플을 강제 종료합니다. 이 경우 비정상적인 실행과 종료이기때문에, 어플의 현재 상태가 저장되지 않습니다.

Backgrounder는 멀티태스킹이 불가능한 아이폰/아이팟터치에서 부분적으로 백그라운드로 작업할 수 있는 기능을 제공하여 eBook, RSS Reader를 보거나, 메신져를 켜두거나, 트위터를 할때, 사전이나 기타 다른 어플을 잠깐 실행하고 다시 원래 프로그램으로 쉽게 돌아올 수 있는면에서 활용도를 더 높여주는 유틸리티입니다.

트위터 어플들은 어플을 정상 종료하게되면 오프라인에서 글을 확인하기가 어렵습니다. 또는 어플을 종료하고 잠깐 다른 것을 보고 트위터 어플을 실행하면 초기 로딩도 한참 걸리지요. 하지만, Backgrounder를 사용하게 되면 로딩이 필요없이 화면전환으로 빠르게 볼수 있고, 백그라운드에서 계속 리프레쉬되어 새로운 글을 확인하기도 보다 편리합니다..

Backgrounder로 아이폰/아이팟터치를 좀 더 잘 활용할 수 있는 일들을 찾아보세요. ^^

+ Recent posts