Android OS over iOS (데이터 관리를 중심으로)

시스템 잡설  |   2011. 8. 20. 20:30
지하철이나 버스 안에서 아이폰 하나 정도, 아이패드 정도 찾는 것은 그리 어려운 일이 아니다. 고가의 기기임에도 불구하고 그 많은 사람들이 열광하면서 구입을 하는데는 분명 이유가 있을 것이다. 특히 iPad(아이패드)의 경우에는 그렇게 많은 사람들이 어떤 용도로 사용하는지에 대한 의문이 들 때도 많다. 스스로에게 아이패드가 주어지면 무엇을 위해 쓸지에 대해 물어보아도 마땅히 떠오르는 작업이 없기 때문이다. 게임을 주로 하는 것도 아니고 이동을 하면서는 충분히 스마트폰으로 메일, SNS, 간단한 터미널 작업까지도 가능한데 큰 화면이 필요가 없고 자리를 잡고서는 대부분 노트북으로 해결이 가능하기 때문이다. 

개인적으로는 안드로이드폰 중에 개발을 위해서 Reference Phone 이라고 불리우는 hTC의 넥서스원을 사용하고 역시 개발용으로 아이팟도 가지고 있다. 전문적인 프로그램이 아니라 전체적인 프로그램의 Workflow UI 를 중심으로 해서 개발된 어플을 개선하는데 주력하고 있다. 그런 과정에서 느껴지는 AndroidOS iOS 의 차이는 단순히 무엇이 좋다고 말하기에는 어려움이 있다는 점이다. OS 를 만드는 과정에서의 주된 개발 철학과 중심 방향이 다르기 때문이다. 그래서 결국 자신에게 맞는 OS 를 선택하는 것이 중요할 것이다. 

다음을 위한 모바일 OS 선택은?


만약 타블렛이나 다음의 스마트폰으로 어떤 OS 를 사용할 것이냐는 질문을 하면 AndroidOS 를 선택할 것이다. iOS 5 의 등장도 마음을 바꾸게는 하지 못한 것 같다. 타블렛은 좀 다른 문제가 있다. 아직 안드로이드 계열의 타블렛은 현재 (20118월)에는 베타테스터가 되는 기분이다. 그러나 어느정도의 안정화 혹은 개인들에 의한 최적화가 이루어진다면 타블렛을 선택하고 싶은 마음이다. 왜 그런지에 대한 이유를 바로 '데이터 관리 및 엑세스' 측면에서 살펴보고 싶다. 

citation from hardwaresphere


AndroidOS over iOS - 안드로이드의 근본적 장점


대부분의 사람들은 애플의 다양한 심미적 디자인을 좋아한다. 애플의 디자인과 기본적인 UI의 일관성은 매력적이다. 그리고 그러한 일관된 디자인에 앱스토어를 통한 앱들을 포함한 다양한 컨텐츠 시장을 형성한 것도 상당히 매력적인 부분이다. 그렇다면 안드로이드가 가지는 장점은 무엇일까?

다양한 하드웨어 스펙트럼을 통한 사용자의 선택권이 넓다.... 고 하지만 이또한 제조사들의 추가적인 개발 노력이 상당히 많이 요구된다는 점이다. 
다양한 커스텀롬의 개발로 사용자들의 편의가 좋다... 고 하지만 이또한 루팅(Rooting)이라는 작업과 함께 일반적인 사용자에겐 적절하지 않은 매력이다. 

비스마트폰의 영역처럼 전화걸고 일반적인 전화 업무 + 인터넷을 이용한 일들을 하는데는 오히려 애플 아이폰이 더 강점이라고 얘기하고 싶다. 앞으로 이야기하는 안드로이드의 근본적 장점이라는 부분은 오히려 일반 사용자들에게는 귀찮고 쓸데없는 단점으로 불릴 수 있기 때문이다. 



a) 앱과 데이터의 분리 - Clear separations between "Apps" and "Data" 


대부분의 안드로이드폰은 내부 저장소와 외부 저장소(주로 MicroSD)로 저장 공간이 분리가 되어 있다. 실제 앱들 / 프로세스 VM (Dalvik) 등의 실행에 관련된 부분과 실행에 필요한 직접적인 캐시를 저장하는 공간이다. 외부 저장소는 우리가 저장하는 사진, 음악, 문서 기타 관련된 모든 사용자에 의한 작업 데이터를 저장하는 공간이다. 

따라서 OS가 초기화 된다고 하더라도 기존에 사용하던 사용자 문서 및 데이터는 그대로 보존될 수 있고 (반대로 외부 저장장치에 문제가 생기면 데이터가 날라기는 문제도 가능함) 외부 저장소에 프로그램의 설정 및 데이터를 백업할 수 있어서 초기화 이후에도 쉽게 복원할 수 있는 장점을 가진다. 

반면 iOS 에서는 앱과 데이터는 한몸이고 iTunes 를 통한 데이터의 저장 및 다운로드도 최근에 가능해진 일이다. 그러나 iOS 는 외부저장소의 개념이 없기 때문에 앱을 실수로 지운다면 데이터도 같이 지워지게 된다는 점이다. 아울러 내가 A라는 앱에서 저장한 텍스트 문서를 다른 앱 B에서 불러오거나 편집하기 힘들다는 점이다. 즉, 데이터는 저장한 앱에 종속되어 있다는 것이다. 단 iOS 에서는 사진이나 동영상에 대해서는 사진 저장소를 다른 앱들에서도 쉽게 접근하고 편집할 수 있지만 다른 문서에 대해서는 제한적이거나 불가능한 경우가 많다. 

일반 윈도우 나 맥 컴퓨터에서 내가 작성한 문서가 있는데 문서만 더블 클릭을 하면 그 문서를 연결할 수 있는 프로그램 목록이 나오거나 기본값으로 저장된 프로그램이 실행이 될 것이다. 그러나 iOS 에서는 근본적으로 데이터는 종속되어 있어서 문서 데이터가 노출되어 있는 경우가 없다. 즉, 어떤 작업을 할려고 한다면 해당 앱을 실행시키고 그 앱 안에서 모든 작업을 해야한다는 것이다. 그러나 일반적으로 이에는 큰 한계점이 존재한다. 하나의 앱이 자신이 원하는 모든 기능을 제공해 주지 않는다면 데이터가 공유되기 어렵기 때문에 원하는 기능을 해주는 별도의 앱에서 데이터를 읽어 작업하기 힘들다는 점이다. 

그래서 iOS 에는 사용자 데이터 (작업 데이터)를 직접 읽어들일 수 있는 파일 매니저가 기능이 존재하지 않는다. 안드로이드는 반면 파일 매니저를 통해서 실행을 하거나 읽으려 할때 마치 윈도우처럼 해당 데이터를 접근 가능한 (editable) 앱들의 목록을 보여주어 선택할 수 있게 된다. 근본적으로 이런 차이점때문에 안드로이드는 다양한 기능을 하는 작은 단위의 앱들을 개발할 수 있는 반면 iOS 에서는 거의 대부분의 원하는 기능을 하는 Killing App을 만들어야 하는 다른 점이 존재할 수 있다. 물론 이러한 부분은 cloud 환경을 통해 해결 가능한 부분이 존재한다. 그러나 인터넷이 항상 연결되어야 한다는 점과 함께 결국 데이터가 앱에 종속되어야 한다는 문제점은 피할 수가 없다. 




b) 공유기능 - Sharing for data 

대부분의 앱들은 기본적으로 공유를 지원한다. 만약 내가 인터넷을 하다가 할일 목록 (To Do) 에 넣고 싶을 때, 사진을 보다가 Facebook 이나 Twitter 에 올리고 싶을 때, 내 할일 내용을 누군가에게 바로 이메일을 보내고 싶을 때 등과 같이 내가 지금 작업하고 있는 데이터는 다양한 정보로 가공되어야 할 필요가 있을 것이다. 

안드로이드는 기본적으로 공유기능을 제공한다. (개발 시 적용하지 않는다면 제외) 다음과 같은 시나리오에서의 효율성을 살펴보면, 

- 인터넷을 하다가 해당 페이지를 보고 할일 목록 혹은 Read it Later 에 보내고 싶을 때 

AndroidOS 》 보고 있는 페이지에서 바로 공유 기능을 통해 할일목록(이나 Read it Later)에 보냄 → (입력화면으로 바로 들어가) 할일 목록에서 편집 후 바로 저장 → 뒤로 가기 버튼을 누르면 다시 인터넷 화면으로 복귀 




 iOS 》보고 있는 페이지의 주소창 클릭 후 주소를 복사 → 홈 버튼을 눌러 나옴 → 할일에 관련된 앱 실행 → 입력 화면 들어감 → 붙어넣기 후 편집 → 다시 인터넷으로 복귀 (※ 북마크 스크립트를 이용해 Read it Later 로의 공유가 가능하지만 특정 기능이 아닌 일반적인 플랫폼에서의 지원을 이야기한다.)
 

- 사진을 페이스북에 올리고 싶을 때 

AndroidOS 》갤러리 혹은 사진 관리 프로그램에서 공유기능 누름 → 바로 페이스북 입력화면에 사진이 연결되어 있고 편집 후 저장 → 뒤로 가기로 복귀  



iOS 》사진 관리 프로그램에서 사진 확인 → 페이스북 앱 실행 → 사진 올리기 편집으로 사진 선택, 편집 후 저장 → 다시 사진 관리 프로그램 실행 혹은 그냥 끝냄

이런 부분들이 iOS 에서 불편으로 느껴지지 않으면 괜찮겠지만 보통 스마트폰을 사용하는 이유는 이러한 데이터를 유기적으로 잘 연결해서 사용하고 싶은 부분도 존재한다. 공유 기능은 자신이 원하는 데이터를 적절한 곳에 빠르게 옮길 수 있고 바로 해당 앱의 편집 기능으로 들어가서 우리가 터치하는 횟수를 줄여주는 장점도 존재한다. 


c) 바로가기 - Shortcut for data

처음 아이팟이 나왔을 때 애플 매장에서 물었던 질문은 아직도 생생하다. 당연히 간단한 텍스트 파일 정도는 홈스크린에 바로가기로 내 보내고 싶었다. 매장 직원은 너무도 어이없다는 듯이 인터넷 주소만 바로가기가 가능하다고 얘기했다. 자주 사용하는 데이터는 존재한다. 매일 보는 노트가 필요할 때도 있고 매일 같은 정류장에 같은 버스를 기다리면서 언제 오는지 확인하기 위해 앱을 실행하고 몇번의 터치로 확인하기 보다는 그냥 바로 정해진 정류장과 정해진 버스번호를 바로 불러보고 싶을 때가 많을 것이다. 

데이터 관리에 있어서 바로가기는 상당히 중요한 역할을 한다. 바로 내가 실행하고 싶은 곳에서 바로 실행할 수 있게 만든다는 점이다. 바로가기의 대상은 여러가지이다. 


1. 일반 사용자 데이터 - 노트, 일반 문서, 음악, 음악 플레이리스트, 쥐메일(Gmail)의 라벨(Label) 등 추가변수(Parameter)가 존재하지 않아도 실행가능한 대상. 만약 홈 화면에 사랑하는 사람의 주소록을 바로 꺼내어 한번 터치하는 것만으로도 바로 전화걸 수 있기를 원한다면 바로가기에서 주소록의 해당 주소록을 선택하면 된다. 전화 바로걸기, 문자 바로보내기 등 바로가기는 데이터 + 앱의 특정 기능을 이미 지정하고 바로 실행해준다는 점이다. 앱을 설치하고 해당 앱엔 어떤 바로가기 기능이 있는지 살펴보는 것도 좋을 것이다. 

2. 추가변수(Parameter)가 필요한 데이터 - 지도의 바로가기 기능이 대표적이다. 목적지는 지정되어 있고 출발지는 현재 위치 정보 (GPS 혹은 A-GPS 등) 를 출발지로 설정하게 되어 바로가기를 실행하면 현재 위치에서 이미 설정된 목적지까지의 교통편을 보여준다. 



3. 앱의 특정 기능(Activity)을 바로가기 - 데이터는 없지만 앱 안에서 특정 기능으로 바로 실행할 수 있게 해준다. 예를 들어 카메라 앱 중에 다양한 효과를 기능으로 가졌다면 '세피아 효과'라는 바로가기를 만들어서 앱을 실행해서 설정을 변경하고 찍는 것이 아니라 바로가기를 실행하면 바로 세피아 모드로 전환되어 바로 찍게 할 수 있다. 


이 바로가기 기능은 상당히 유용하다. 왜냐하면 우리가 자주 쓰는 기능들을 잘 보이는 곳에 두어 바로 실행할 수 있도록 해주고 실제로 우리가 눌러야 하는 터치의 횟수를 많이 줄여준다는 것은 쉽게 이해할 것이다. 


재밌는 것은 우리나라 지도 앱을 개발하는 다음이나 네이버는 이러한 기능을 적극 활용하지 않는지 모르겠다. 음원 사이트 앱인 벅스의 경우엔 이런 바로가기 기능을 적극활용해 앨범, 가수, 심지어 노래 하나도 바로가기로 만들 수 있게 개발을 했다. 그래서 보면 다음이나 네이버가 특별한 이유가 있어 제공을 안하는 것인지 바로가기 기능을 몰라서 제공을 안하는 것인지 궁금하다. 


d) 알림창+ - Notification bar+

iOS 를 사용하면서 개인적으로 가장 불편한 부분은 오히려 알림창이다. 자고 있는 동안 일어나면 수많은 알림들이 떠있지만 실제로 확인할 수 있는 것은 맨위의 알림을 처리(닫기, 확인)해야만 다음 알림창을 볼 수 있고 첫번째 알림창에서 확인해서 해당 앱으로 진입하기라도 한다면 나머지 알림들은 놓치기 쉽다. 트위터, 할일, 메세지 등등 5개정도만 되어도 사실 내가 무엇을 알림 받아야 하는지 기억이 안나는 경우 + 내가 처리해야할 우선순위가 전혀 잡히지 않게 된다는 점이다. 


물론 이 기능은 iOS 5 에 도입되고 일부 제한적인 위젯 기능도 포함된다고 하니 어느정도 기능이 편리해질지 보아야 할 것 같다. 그러나 이미 안드로이드에서는 다양한 기능도 포함하고 알림창으로 거의 대부분의 정보와 처리해야할 일들을 순차적으로 확인할 수 있는 기능을 가진다. 루팅 및 커스텀롬이 요구되는 부분이긴 하지만 다양한 하드웨어 제어를 할 수 있는 부분이 가능하다. 알림창 이상의 기능으로 알림창+ 가 가능한 것이다. 
 

iOS 5 에서의 알림창


Workflow 측면에서도 상당히 좋은 기회를 주는 기능이다. 만약 특정한 사람에게만 알림으로 필요한 할일을 보내거나 공유를 하고 싶을 때 예를 들어 회의가 정해져서 날짜와 시간을 보냈을 때 해당 모임에 참석가능여부를 바로 알림창을 통해서 보낼 수 있고 이를 통해서 신속한 처리를 가능하게 해준다. 


e) 원하는 정보에 대한 빠른 접근성 - fast access to the information 

가장 많이 언급되는 위젯의 장점은 가장 우선순위가 낮은 장점이라고 얘기하고 싶다. 아직까지는 위젯때문에 배터리의 수명이 많이 단축되는 경우, 원하지 않는 데이터가 백그라운드에서 소모되는 경우가 존재하기 때문이다. 그러나 빠질 수는 없을 것 같다. 

간단하게 오늘의 날씨, 주식 등을 보기 위해서 iOS 는 항상 앱을 실행시켜야 한다는 불편이 있다. (iOS 5 에서는 위젯이 지원되지만 그 범위는 안드로이드에 비해 제한적이다.) 그러나 안드로이드의 위젯은 내가 확인해야 할 정보들을 바로 화면에서 보여주고 필요한 작업이 있다면 위젯을 통해 바로 접근가능하다는 점이다. 따라서 위젯은 원하는 정보를 보여주는 창이면서 동시에 바로가기가 가능한 공간이 되는 것이다. 

또한 특정 런처에서만 가능하긴 하지만 위젯 내부에서 scrolling 을 지원하여 제한된 공간에서 리스트를 스크롤할 수 있는 기능이 있다. (상당히 유용한 기능이다.) 하드웨어의 제어를 할 수 있는 위젯, 할일목록을 보여주는 위젯, 폴더기능을 제공하는 위젯, 칼렌더 위젯 등 위젯의 종류는 다양하다. 이를 통해서 자신이 원하는 데이터를 빨리 처리하고 무엇이 처리가 필요한지에 대한 뷰(view)를 볼 수 있다. 

 

 



f) 액티비티 - Activity  

스마트폰을 쓰다보면 다음과 같은 기능은 없을까 하는 생각을 하게 된다.

내가 인터넷 브라우저를 사용하고 있을 때는 어두어지는 시간이 길게 되거나,
갤러리를 실행하면 밝기를 최대로 밝게 해줘 잘 보게 하거나,
집에 오면 자동으로 WiFi 로 연결을 해주거나,
일정 시간이 되면 무음모드로 전환해주거나,
일정에 미팅이 잡혀있다면 무음모드로 자동으로 변경해주거나,
평소엔 GPS 를 꺼놨다가 특정 어플을 실행하면 GPS를 켜고 싶은... 등등 

의 경우가 있을 것 같다. iOS 안에서는 이런 자동화 기능이 거의 불가능한듯 싶다. 그리고 안드로이드 위젯기능이 있거나 알림창에 GPS bluetooth 같은 기능을 제어할 수 있는 창도 없어 ON/OFF 만을 위해서도 설정에 들어가서 해당하는 메뉴를 찾아 들어가 작동시켜야 한다는 점이다. 그런데 안드로이드는 이러한 기능마저 위젯도 손 안대고 자동으로 가능하게 해준다. (참조: http://blog.meson.kr/234

이러한 기능들이 가능한 이유는 안드로이드의 어플을 구성하는 가장 기본적인 단위인 액티비티로 되어 있기 때문이다. 액티비티는 어플 실행의 가장 기본적인 빌딩블럭으로 특정 기능을 수행하기 위해서 만들어진 단위라고 생각하면 된다. 

페이스북 어플을 살펴보면 페이스북에서 글을 쓰는 입력창, 뉴스피드를 보기 위한 부분, 친구 목록을 보여주는 리스트 등의 화면 단위 구성을 액티비티라고 부른다. 그리고 위의 바로가기 기능에서 살펴본 것처럼 바로 실행이 가능하다는 점이다. 이러한 개발적 요소가 바로 공유기능, 바로가기 기능 등을 가능하게 해준 부분이라고 할 수 있다.  

왜 아이패드를 원치 않는가 


유행처럼 아이패드를 통한 개발도 상당히 많은 요구가 이루어지는 것이 사실이다. 그러나 개인적인 입장에서 아이패드를 선택하지 못하는 이유들은 바로 안드로이드가 가지는 위와 같은 장점때문이었다. 타블렛으로 화면 크기가 커진다는 것을 통해 원하는 것은  앱 아이콘을 놓을 수 있는 공간을 넓히고 앱들의 실행 환경을 넓게 보자는데만 의의를 두고 싶지 않다. 첫화면에서 최소한 내가 해야하는 일들이 정리가 되어 있고 어떤 스케쥴이 있는지 한눈에 볼 수 있고 내가 필요로 하는 반복적인(routine) 일들을 바로 처리해줄 수 있는 아이콘이 나를 위해 정리되어 있기를 바란다. 

개인적으로 아이패드는 결코 업무용이나 업무의 효율성을 극대화한다는 점에서 반대이다. 현재 아이팟을 사용하면서도 느끼는 점은 도대체 이 많은 어플들은 언제 다 쓰는 것일까 하는 느낌이다. 거의 한번 호기심이나 필요하다고 느껴져도 결국 잘 안쓰게 되고 쓰는 몇몇의 어플만이 찾아가며 실행하게 된다. 그런 가장 큰 이유가 바로 앱 종속성에 있다고 생각한다. 그래서 하니컴(Android 3.0) 에 거는 기대가 켰지만 하드웨어 측면을 포함하여 다양한 부분에서의 변화가 필요하다는 느낌이 든다. 위의 6가지 장점을 잘 살리고 하드웨어 부분이 잘 받쳐주고 애플의 아이패드같으 디자인으로 안드로이드 기기가 나온다면 더 바랄 것이 없을 것 같다. 

왜 이렇게 정리하고 싶었나...


위의 내용은 개인적으로 iOS에서 의료정보용 단말기로 아이폰 / 아이팟을 이용한 프로젝트를 수행하면서 느꼈던 부분들을 정리한 것입니다. 다양한 기능을 필요로 하는 분야, 협업이 필요한 분야 예를 들어 의료 서비스, 공공서비스 분야 등의 대규모 정보 단말기로의 iOS 는 많은 한계점이 존재한다는 것을 느끼게 되었습니다. 프로그램 데이터의 처리 및 흐름을 제대로 관리하기 어렵고 iOS 의 다음 버젼에서 얘기하는 클라우드 서비스가 범용 서비스를 위한 얼마나 많은 API를 지원해주냐에 따라서 많은 부분 대규모 협업 시스템을 위한 단말기로 적응하느냐 못하느냐가 좌우되지 않을까 생각합니다.

그래서 iOS 는 기능이 한정적이거나 특정 목적을 위한 일반 소비자를 위한 앱은 가능성이 많지만 기업적 규모 및 대규모 협업 시스템 (엔터프라이즈급) 에서 적용하기에 iOS 가 얼마나 가능성이 있을지는 모르겠습니다. OS 의 시장범위는 바로 일반적인 소비자들이 대중적으로 이용하기 시작하게 되고 그 다음은 바로 산업적 이용으로 자연스럽게 이루어지게 될 것입니다. 그런 의미에서 어떤 OS 를 사용하여 적절한 개발을 하느냐를 선택하는 것을 위해서는 분명 각각의 장단점을 잘 파악하고 이에 맞는 개발을 수행되어야 할 것입니다.