본문 바로가기

플랫폼 컨설팅/iPhone Apps

iPhone4는 개발자에게 불편하다?



이번 WWDC 2010을 다녀와서 모 커뮤니티에 기사를 썼는데 내용은 iPhone4와 안드로이드를 비교하는 내용이었다. 매일 하는 일이 안드로이드 선교이다보니 아무래도 안드로이드에 유리하게 분석하는 경향이 없지는 않다. 히지만 나는 분명히 "이런건 아이폰이 좋다~"라고 썼는데 읽는 사람들이 "이런건 아이폰이 좋지 않다"라고 해석을 하니 좀 당황스럽다. 내가 글을 못 쓰는건가? 아래는 내가 쓴 글의 원본이다.

내 보고서 내용 중에서


"iOS 4, 효율적인 멀티태스킹을 위해서는 개발자가 고생해야 한다

이전까지 Android가 iPhone 대비 갖고 있는 최대의 경쟁력을 하나만 꼽으라면 그건 두말할 필요 없이 멀티태스킹이다. 그만큼 iPhone의 최대의 약점이었고 그렇게 때문에 iOS 4의 핵심은 멀티태스킹이라 볼 수 있다.

Android 입장에서 iPhone 4는 진정한 의미에서 멀티태스킹은 아니라 할 수 있다. Android의 멀티태스킹이 PC와 같은 개념이라면 iPhone 4에서는 오히려 서로 협력하는 멀티태스킹이라고 볼 수 있다. Android에서 App은 개발시에 멀티태스킹을 고려할 필요는 없다. 즉 다른 App들과 서로 시스템 리소스를 서로 양보해가면서 사용하겠다는 API도 없을뿐더러 그렇게 개발자를 유도하지도 않는다. 그냥 각자 동작하면 OS가 알아서 멀티태스킹으로 지원할 뿐이다.

이에 비해 iPhone 4의 멀티태스킹은 App들이 서로 양보하면 동작하는 것을 고려해야 한다. 물론 기존 App도 S/W를 고치지 않고도 App의 빠른 전환은 가능하다. 하지만 결국 iPhone 4에서 제공하는 보다 효율적인 멀티태스킹을 하기 위해서는, 예로 Pandora 의 음악이 나오면서 동시에 웹 브라우징을 하기 위해서는 새로 제공되는 API를 사용해 야 한다. 결국 사용자가 편하기 위해서는 개발자가 고생을 해야 한다는 뜻이다. 하지만 Android에서는 개발자가 특별히 신경 쓰지 않았기 때문에 사용자 입장에서는 App들이 눈에 보이지 않게 너무 많이 실행되면서 배터리를 잡아먹는 주범이 되고 있다.


위 그림을 보면 기존에 개발된 App들도 iOS4.0로 새로 컴파일만 하면 빠른 App 전환 기능은 가능하지만 오른쪽의 Pandora의 예처럼 새로운 API를 사용하면 보다 똑똑한 멀티태스킹이 가능하다.

여기서 iOS 4의 멀티태스킹 방법이 정답은 아니라는 점이다. 하지만 Android의 기본 멀티태스킹은 휴대폰에서 배터리 관점에서는 문제가 있다. iOS 4가 몇 가지 면에서 Android와 경쟁하면서 배운 점이 있다면, 반대로 Android는 분명히 “좀 더 세심하게 고려된 멀티태스킹”을 배워야 할 것이다."
이 글에서 내가 정말 "iOS가 개발자에게 불편하다"라고 주장한 것 같지는 않는데. 참.

신문사 기사 내용 중에서

이 글을 읽고서 국내 신문사 기자분은 아래와 같이 요약하셨다.

"애플이 기존 아이폰3GS와의 가장 큰 차별점으로 내세운 멀티태스킹(Multi-tasking) 역시 다른 애플리케이션과 서로 양보하면서 동작해야하는 만큼 불완전하고, 기존 애플리케이션에 새로운 API를 적용해야한다는 점에서 개발자들의 부담을 키울 수 있다는 지적이다. "


그리고 아래는 커뮤니티에 게시된 어떤 분 댓글이다.

특히나 iOS4가 개발자가 불편하다는건 이해가지 않습니다. 백과사전 두깨의 윈도우 사용법을 익힌고 OS를 만들수는 없습니다. 최대한 사용자가 편하게 사용할수 있게 만드는게 진정한 개발이 아닐까요? 개발하기 편한것 치고 학습이 쉬운것은 없습니다. 좀 더 사용자 중심의 시각이 필요해 보이네요. 

편협한 시각의 문건인것 같네요~ 숲을 보셨으면 합니다. 하드웨어에 대한 부분 보다는 부족한 하드웨어를 소프트웨어적으로 커버하여 기존 사용자들에 대한 배려, 제품 라인의 통일성, iPad와 iPhone 어플의 상호연계등이 고려된것이라고 생각이 안되시는지 궁금하네요. 

본인의 짧은 글 솜씨를 이해하시길 바라며

어찌되었건 내가 쓴 글을 읽고 오해를 하시니 여기다 좀 더 부연 설명을 적어본다. 최소한 내가 iOS4의 멀티태스킹에 대해서는 "칭찬"을 한거라는 것을 다시 밝힌다.

난 맨 처음 iOS4의 멀티태스킹 "개념"을 보고 참 "기가 막히게" 고객의 사용 시나리오를 고려한 "제한적인 멀티태스킹"을 설계했다는 생각이 들었다.

일단 아이폰의 스크린 크기는 3.5인치이다. 그 얘기는 PC와는 달리 한 화면에 두 개의 어플리케이션이 동시에 표시될 확률은 거의 없다고 봐야할 것이다. PC에서 어떤 사용자들은 TV 윈도우를 열어놓고 웹 브라우징을 하던가, 나처럼 웹 브라우저를 열어놓고 글을 쓰는 사람들도 있다. 즉 진짜 Task switching이 아닌 Multi Tasking이 필요하다. 하지만 이런 사용 시나리오가 3.5인치에서 나오기는 어렵다. 즉 스크린 크기가 절대적인 이유이다. 설마 어떤 분이 3.5인치 크기의 화면을 둘로 나눠서 웹 브라우저를 열어놓고 문서 편집을 하실까?

즉 아이폰 크기의 스마트폰에서는 PC와 같은 수준의 멀티태스킹이 필요한 상황이 많지 않다는 얘기가 된다. 결국 제일 많이 필요한 건 빠른 Task switching이다. 즉 몇 개의 어플리케이션을 사용했던지 사용자 입장에서는 기존에 사용하던 페이지로 그대로 돌아가기만 하면 된다. 그런 관점에서 안드로이드의 "Back" 버튼은 위력을 발휘한다. 즉 트위터를 쓰다가 웹브라우저가 열려서 어떤 페이지를 보다가도 "Back" 버튼을 열심히 누르다보면 다시 트위터 화면으로 나온다. 하지만 이런 모습은 아이폰에서는 불가능했었다. 하지만 이제 iOS4의 멀티태스킹으로 가능해진 것이다.

개발자가 고생하면 사용자는 편해진다

iOS4의 멀티태스킹이 개발자에게 고생을 시킨다는 의미는 좀 더 신경써서 개발해야 한다는 것을 의미한다. 오히려 안드로이드 개발자는 상대적으로는 멀티태스킹을 지원하기 위해서 개발할 필요가 없다고 생각된다. 하지만 iOS4의 새로운 API들을 사용하면 개발자는 고생하지만 사용자는 편해지고 빠르게 어플리케이션들의 화면들을 전환할 수 있고 또한 배터리 소모도 안드로이드에 비해서 현저하게 적을 수밖에 없다.

당연한 것이 iOS4에서는 말이 멀티태스킹이지 어플리케이션이 눈에 보이지 않게 되면 숨겨진 상태에서 실행될 수 있는 기능이 상당히 제한적이기때문이다. 이는 OS가 사용자를 고려해서 가능한 배경 실행 자체를 억제시키고 있는 것이다. 바로 iOS4의 정신이 "완전한 개방"이 아닌 "사용자를 위한 제한"이기때문이다. 물론 자기들만의 판단이긴 하지만 말이다.

반대로 안드로이드 OS의 현재까지의 "정신"은 완전한 개방이고 알아서들 하라는 얘기이기때문에 알아서들 서로 동작하고 있으니 너무 난리가 날 정도로 배경에서 실행되고들 있으니 "Task Killer" 프로그램이 필요하게 되는 것이다. 이건 좀 문제가 있다.

뭐 이런 얘기를 짧게 쓰다 보니 읽는 분들에게 혼란을 드렸다면 죄송하다는 말씀을 드리면서 피곤한 금요일 저녁을 마무리하려고 한다. 제발 "고객 관점"에서 안드로이드도 개선되었으면 한다.

안드로이드가 밥줄인 퓨처워커
http://futurewalker.kr
2010년 6월 18일