아이폰의 출시로 시작된 스마트폰 시장은 이제 후속제품을 내놓고 2차전을 준비하고 있습니다. 소비자 입장에서는 선택의 다양성이 늘어나니 좋은 일이지만, 브랜드앱 개발의 관점에서는 문제가 한 두 가지가 아닙니다. 제품이 많아지고, 운영체제가 다양해지니, 각각의 제품에서 문제없이 동작하도록 테스트하는데 많은 시간이 소요되는 것이죠. 이번 칼럼에서는 브랜드앱 개발과정에서 플랫폼 다양성 때문에 발생하는 파편화의 문제에 대해 살펴보려고 합니다.
파편화(fragmentation)의 정의와 종류
파편화는 플랫폼이 통일되지 않고 여러 종류로 나뉘어 있는 현상입니다. 주로 운영체제의 버전과 하드웨어의 사양차이 때문에 발생합니다. 특히 하드웨어의 경우에는 처리속도, 기본 지원기능, 버튼배치, 화면사이즈, 화면 해상도가 모두 파편화의 요소가 됩니다.
운영체제의 파편화
운영체제의 파편화는 새로운 운영체제의 배포시점과 적용시점의 차이 때문에 발생합니다. 제조사에서는 기능을 개선하여 새로운 운영체제를 출시하지만, 사람들이 즉시 업데이트를 수행하는 것은 아니기 때문에 같은 시점에서 다양한 운영체제가 공존하게 됩니다. 지금도 어떤 PC방에서는 윈도우98을 사용하고 있는 것과 같은 이치입니다.
애플의 경우에는 장치들이 하나의 회사에서 제작되고 관리되기 때문에 파편화의 정도가 적은 편입니다. 애플 iOS는 아이튠스를 통해 모든 기기에 대해 일괄적으로 업데이트 됩니다. 아이튠스에 접속하는 순간, 새로운 업데이트가 있음을 알려주고 한번의 클릭으로 업데이트가 진행되기 때문에 업데이트가 빠르게 진행되도록 할 수 있습니다. [그림 1]은 iOS의 운영체제 현황으로 대부분 최신버전인 4.x를 사용하고 있는 모습을 볼 수 있습니다.
[그림 1] iOS의 아이폰 운영체제 비중
출처: chitika insights 2011.03.03 출처: Bump usage analysis 2011.01.10
하지만 안드로이드는 운영체제를 휴대폰제작사에서 튜닝할 수 있도록 허용하기 때문에 파편화의 문제가 매우 심합니다. 우선 운영체제의 경우, 레퍼런스 OS를 구글에서 출시하면, 각 제조사는 각자 UI와 기능을 재구성하여 출시합니다. 그래서 후속버전이 출시된다 하더라도, 각각의 제조사가 자사의 기기에 맞게 다시 튜닝해야하기 때문에 기종별로 OS가 보급되기까지는 많은 시간이 걸립니다.
[그림 2] 안드로이드 OS 업데이트의 시점차이
주: 이해를 돕기 위한 그림으로 실제 업데이트 상황과는 관련이 없습니다.
위 [그림 2]에서 보시는 바와 같이 구글이 제일먼저 최신 OS를 적용하여 자사의 폰으로 출시합니다. 그러면, 각 제조사는 자사의 폰에 맞게 튜닝작업을 거쳐야 하기 때문에, 시차를 두고 최신 OS업데이트를 출시하게 됩니다. 이후 다시 새로운 OS가 나오게 되면, 업데이트되지 않은 기존의 2.1버전, 2.2버전 그리고 새로 출시된 2.3버전이 한 시점에 공존하게 됩니다. 여기에 소비자의 업데이트 시점차이까지 겹치게 되면 그야말로 각종 운영체제의 전시장이 되는 것이죠. 문제는 이렇게 제조사 별로 튜닝된 운영체제는 각각 새로운 버전의 운영체제라고 봐도 무방할 정도로 차이가 크고, 하위버전과의 호환성이 iOS만큼 좋지 못하다는 사실입니다. 따라서 브랜드앱을 안드로이드로 출시하려고 한다면, 어느 기종의 어느 OS 버전까지 테스트할 것인지를 비용을 고려하여 따져봐야 합니다.
[그림 3] 안드로이드의 OS 파편화
출처: http://developer.android.com
[표 1] 아이폰의 버전 별 사양차이
하드웨어의 파편화 – 안드로이드
이번에도 문제는 안드로이드에서 더 심각합니다. 안드로이드 진영에서는 수많은 제작사에서 여러 종류의 휴대폰을 출시하고 있는데, 사양이 제각각입니다. 적어도 아이폰에서는 화면 사이즈와 비율은 같았지만, 안드로이드에서는 이마저도 다릅니다. 그래서 브랜드앱 개발에 어려움이 발생합니다. 개발을 가장 어렵게 하는 것은 화면 처리속도와 해상도의 파편화입니다. [그림 3]에서 보는 것처럼 안드로이는 CPU와 해상도가 기종별로 다릅니다. 때문에, CPU에 민감한 영향을 받는 게임이나 3D처리의 경우, 어느 기종까지 고려하느냐에 따라 이미지 품질을 다르게 설정해야 합니다. 또한 캐쉬메모리도 큰 차이가 나기 때문에 다른 기종에서는 잘 돌아가던 것이 특정기종에서는 자주 멈춰버리는 현상이 발생할 수도 있습니다. 이 부분은 출시하려는 국가의 스마트폰 인기기종을 검토해서 어느 기종까지 지원할지를 기획단계에서 확정해야 합니다.
[그림 4] 안드로이드의 하드웨어 파편화
해상도의 경우는 보다 개발에 직접적인 영향을 미칩니다. 화면 레이아웃을 디자인할 때, 아이폰의 경우는 해상도는 달라도 화면의 비율은 같았기 때문에, 화면 배치 자체는 문제가 되지 않았습니다. 더 높은 해상도의 이미지만 준비하면 되었죠. 그러나 안드로이는 가로:세로 비율이 제 각각이어서 디자인이 까다롭습니다.
만약 가로, 세로 사이즈가 정해져 있는 이미지를 각기 다른 해상도의 장치에서 본다면, 아래 [그림 5]와 같이 저해상도에서는 크게, 고해상도에서는 작게 보일 것입니다. 따라서, 해상도와 화면비율 및 크기에 따라 화면구성을 일일이 맞춰주어야 합니다.
[그림 5] Pixel을 이용했을 경우의 해상도별 레이아웃
그런데, 이러한 해상도의 다양성을 극복하기 위해, 구글은 DIP(Density independent pixel)이라는 개념을 제안하고 있습니다. 픽셀 밀도에 관계없이 이미지를 특정비율로 보여지도록 하는 API입니다. DIP를 사용하게 되면, 화면 해상도와 관계 없이, 이미지를 원하는 비율로 보여지도록 할 수 있기 때문에, 일일이 다양한 해상도별로 이미지를 작업해야 하는 수고를 덜어줍니다. 물론 이미지를 키우거나 줄이면서 화면이 뿌옇게 보이는 현상은 어느 정도 감안해야 합니다.
[그림 6] DIP를 이용했을 경우의 해상도별 레이아웃
출처: http://developer.android.com
하지만 DIP도 가로-세로의 비율이 다른 문제까지 해결해 주지는 못합니다. 세로로 긴 형태의 디스플레이를 가진 휴대폰은 한 화면에 더 많은 것을 보여주게 되는 것이죠. 그래서 안드로이드 UI디자인은 세로 스크롤을 염두에 두고 개발되어야 합니다. 또한 절대좌표보다는 상대좌표를 이용해야 다양한 비율의 디스플레이에서도 화면 구성을 유지할 수 있습니다.
[그림 7] 서로 다른 종횡비에 따른 디스플레이 차이
출처: http://developer.android.com
이상에서 브랜드앱 개발에 어려움을 주는 요소인 파편화에 대해 알아보았습니다. 브랜드앱을 제작하려는 기업이라면, 자사가 대상으로 하는 국가가 어디인지, 그 국가의 플랫폼별 점유율은 어떠한지, 그리고 가장 인기 있는 스마트폰은 무엇인지를 먼저 판단해야 합니다. 이를 바탕으로 어떤 플랫폼, 어떤 OS, 어떤 기종까지를 공식 지원할 것인지 기획단계에서 확정해야 합니다.필자는 소니코리아 전략기획팀을 거쳐 디지털 카메라 프로덕트 매니저로 근무하였고, 모바일의 가능성을 보고 브랜드앱 전문회사 오퍼니티㈜를 설립했으며, 현재 브랜드앱 사례와 다양한 시장 자료를 정리한 블로그(blog.naver.com/oponiti)를 운영 중이다
※ 외부 필자의 원고는 당사의 편집방향과 일치하지 않을 수도 있습니다.
Copyright ⓒ 디지틀조선일보 - 디지틀조선TV