본문 바로가기

Architecture for Software/Android

[안드로이드 이야기] 안드로이드란 무엇인가?

안드로이드에 대하여 익히고 공부하는 것들을 정리하기 위하여 [안드로이드 이야기]를 연재할까 합니다.
언제 얼마큼 연재할지 모르겠지만~ 제가 알고 있는 지식들을 정리하여 여러분들과 함께 나누기 위한 내용을 중점적으로 다루겠습니다.

첫번째로 안드로이드(Android)란 무엇인가에 대한 내용을 다루어 보겠습니다.



안드로이드란 무엇인가?(What is Android?)

이 질문에 대한 가장 정확한 답은 http://www.android.com/about/ 에서 찾을 수 있습니다. 공식적인 안드로이드 사이트이자 Android에 대한 가장 신뢰할 수 있는 정보를 제공하는 사이트이기 때문입니다. 아울러 http://developer.android.com/guide/basics/what-is-android.html 에서 정의된 내용을 바탕으로 안드로이드에 대한 정의를 내리는 것이 좋다고 생각됩니다.

안드로이드(Android)는 OHA(Open Handset Alliance)에서 개발된 운영체제(OS)와 미들웨어(Middleware) 및 핵심 모바일 어플리케이션을 포함한 모바일 기기를 위한 소프트웨어 스택이라고 할 수 있습니다.


안드로이드는 공개되어 있습니다.(Open)
안드로이드는 모든 핸드셋에 제공할 수 있는 멋진 모바일 어플리케이션을 개발자들이 창조할 수 있는  가장 최고의 환경을 제공하였습니다.
이러한 환경은 완전히 공개되어 있습니다.

예를들어, 사용자를 위한 더욱 응집되고 풍부한 경험이 녹아있는 어플리케이션을 창조할 수 있도록, 전화를 걸거나, 문자를 보내거나, 카메라를 사용하는 등의 핸드폰의 핵심 기능을 호출하여 사용할 수 있습니다.

안드로이드는 공개된 리눅스 커널(Linux Kernel)을 기반으로 하고 있습니다.
더욱이, 모바일 환경에서 하드웨어 리소스와 메모리 최적화를 위하여 설계된 커스텀 가상 머신을 사용하고 있습니다.

안드로이드는 오픈 소스(Open Source) 입니다.
즉, 오픈 소스를 이용하여 새로운 최신 기술들을 바탕으로 자유롭게 확장할 수 있습니다. 이를 통하여 개발자 커뮤니티들이 함께 혁신적인 모바일 어플리케이션을 구축하듯이 안드로이드 플랫폼은 지속적으로 진화할 것입니다.


어플리케이션은 동일하게 창조되었습니다.(All applications are created equal)
안드로이드는 핸드폰의 핵심 어플리케이션이든 써드파티(third-party) 어플리케이션이든 구분하지 않습니다. 광범위하게 사용자에게 제공되는 어플리케이션과 서비스들은 핸드폰의 기능에 동일하게 접근할 수 있도록 구성되어 있습니다.

안드로이드 플랫폼을 사용하는 기기에서 사용자들은 취향에 따라 모든 것들을 정의할 수 있습니다.

사용자들은 핸드폰의 홈스크린(Homescreen)과, 다이얼 스타일 및 어떠한 어플리케이션이라도 교체할 수 있습니다. 심지어 모든 사진들을 볼 때 사용하는 사진 보기 어플리케이션을 선호하는 것으로 변경할 수 있습니다.


어플리케이션의 경계가 존재하지 않습니다.(Breaking down application boundaries)
안드로이드는 새롭고 혁신적인 어플리케이션을 구축할 수 있는 경계가 존재하지 않습니다.
예를 들어, 개발자들은 핸드폰에 있는 사용자의 연락처, 일정, 위치 정보등과 같은 개인적인 정보를 웹에서 조합하여, 사용자에게 더욱 유용한 경험을 제공할 수 있습니다. 즉 안드로이드 하에서, 개발자는 사용자의 친구가 주변에 있다면 만날 수 있는 기회를 제공하기 위하여 알려주는 어플리케이션을 구축할 수 있습니다.


빠르고 쉬운 어플리케이션 개발(Fast & easy application development)
안드로이드는 풍부한 어플리케이션을 구축하는데 사용할 수 있는 광범위한 유용한 라이브러리들을 제공합니다.
예를 들어, 안드로이든 기기의 위치를 알 수 있또록 지원하여, P2P 기반으로 통신할 수 있는 풍부한 Social 어플리케이션을 지원합니다.

덧붙이면, 안드로이드는 높은 생산성과 깊은 통찰력을 바탕으로 개발자들이 어플리케이션을 제작할 수 있는 최상의 플랫폼이며, 이를 위한 툴들을 포함하고 있습니다.




이상으로 안드로이드의 정의가 끝났습니다.

흠~ 너무 안드로이드에 장점만 설명하는 정의입니다.
개인적으로 안드로이드는 풍부한 UX/UI 프레임워크가 부족하며, 아직 개발자들에게 풍부하고 생산성 높은 개발을 하기 위한 지원이 부족하다고 생각합니다.

안드로이드의 버전이 숨가쁘게 올라간 이유를 가만히 들여다 보면, 안드로이드가 그 만큼 안정성과 풍부한 라이브러리를 지원하지 못하였기 때문이라고 보입니다.

그런 면에서 아직도 안드로이드는 갈길이 멀은 스마트폰 OS 라고 판단됩니다. 다만 잠재력은 어느 스마트폰 OS 보다 높다고 판단됩니다. 아이폰의 아성을 넘을 수 있으려면, 나름 기다려야 할듯하지만요~ 아직도 컵케이크 속에 있는 안드로이드 처럼요~ (지금은 컵케이크 속에서 나왔습니다~ ^^)



다음에는 안드로이드의 주요 기능을 살펴보겠습니다.

혹시 궁금하신 점이나 부족한 점이 있으시면~ 언제든지 댓글 부탁드립니다. :-)