'정의'에 해당되는 글 1건

  1. 2010/04/06 [안드로이드 이야기] 안드로이드란 무엇인가? (8)

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

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

첫번째로 안드로이드(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 보다 높다고 판단됩니다. 아이폰의 아성을 넘을 수 있으려면, 나름 기다려야 할듯하지만요~ 아직도 컵케이크 속에 있는 안드로이드 처럼요~ (지금은 컵케이크 속에서 나왔습니다~ ^^)



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

혹시 궁금하신 점이나 부족한 점이 있으시면~ 언제든지 댓글 부탁드립니다. :-)
저작자 표시 비영리
Trackback 0 And Comment 8

Trackback http://blog.java2game.com/trackback/424 관련글 쓰기

  1. cofcat 2010/04/07 02:30 address edit & del reply

    안드로이드에 대한 좋은 정보 감사드려요^^
    안드로이드가 계속 발전하고 이제 아이폰을 따라잡을 수준까지 온 것 같네요^^
    이번에 열리는 tac 공모전에서 좋은 어플이 많이 나온다면 조금 더 따라잡지 않을까
    기대중입니다^^

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/04/08 13:43 address edit & del

      네~ 앞으로 안드로이드가 팍팍 달려나갈 것 같습니다.
      iPhone 과의 한판승~ 저는 두편다 응원하겠습니당~ ;-)

  2. 2010/04/12 16:52 address edit & del reply

    비밀댓글입니다

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/04/13 10:30 address edit & del

      하이바네님 :-)
      깊이 있는 질문 감사드립니다.

      우선 안드로이드가 Linux Kernel을 이요한 것은 원래 Google이 안드로이드 사를 인수하기 전부터 Linux Kernel을 이용한 것으로 알고 있습니다.

      이 점은 여러가지 장점이 있는데요~ 여차하면 Linux의 다양한 라이브러리를 이용할 수 있고~ 안정적인 Linux Kernel을 통하여 다양한 하드웨어를 잘 컨트롤 할 수 있기 때문입니다.

      즉, Linux의 성능이 Linux Kernel에서 나오는 것 처럼 안드로이드의 진정한 성능도 Linux Kernel에서 나온다고 할 수 있습니다.

      하지만, 모바일 프로그램은 데스크탑 Linux 어플리케이션과 다른 특성을 가지고 있습니다.

      즉, 적은 메모리, 낮은 CPU 성능, 그리고 배터리 성능 등으로 인하여 모바일 프로그램만의 특성을 담을 수 있는 그릇이 필요하게 되었습니다.

      이러한 점은 구글은 달빅이란 VM을 통하여 해결하였습니다.

      이미 Java는 JavaME를 통하여 전 세계 핸드폰에서 돌아가고 있으며, 그만큼 안정성이 입증되어 있습니다.

      즉 Java의 태생이 그러하듯이 모바일 환경에 많은 적합성을 가진 언어라는 것입니다. 이러한 점을 간파한 Google에서 한가지 문제를 삼은것은 말씀하신 성능입니다.

      부족한 성능을 끌어 올릴 수 있는 방법이 필요하게 된 것입니다.

      이에따라 기존 JavaVM을 사용하는 대신 자체 JavaVM을 만들었습니다. 사실 라이센스 문제도 한몫했구요~

      따라서 ARM 기반의 CPU에 더 적은 Instruction으로 구동할 수 있는 VM을 만들어 달빅이란 이름을 붙였습니다. 점 엉뚱한 이름이긴 합니다~ ㅎㅎ

      여튼 이에따라 기존 JavaME의 성능보다는 높은 성능을 갖추게 되었습니다. 물론 말씀하신대로 iPhone 보다는 낮은 성능을 가지고 있지만 나름 장점이 있습니다.

      우선 Java 개발자를 바로 끌어 댕길 수 있습니다. Java와 문법이 같기 때문이죠~ 그리고 오픈 소스 진영의 Java 라이브러리를 마음껏 이용할 수 있습니다.

      개발하는 쪽에서 볼때 상당히 좋은 조건입니다.

      저도 Object C를 조금 알지만~ 어려운 면이 있거든요~ 개발 장비 문제도 있구요~

      하지만 안드로이드 프로그래밍의 경우 일반 IBM PC를 통해서도 쉽게 개발이 가능합니다.

      마지막으로 성능을 계속 좋아질 것 입니다. 그것이 iPhone이건 Android이건 Windows Phone이건~

      이제 모바일 기기의 하드웨어 성능에서 더 이상 메모리 문제와 CPU 문제가 많이 언급되지 않고 있습니다. 물론 한계가 있습니다. 배터리 소모 문제도 있지만~

      더 저 전력에 더 높은 클럭을 갖춘 CPU와 더 낮은 메모리를 소비하는 RAM과 더 긴 시간을 자랑하는 배터리가 채용되고 있습니다.

      따라서 모바일 기기의 성능은 어느 순간~ 대략 내년 말쯤~ 넷북의 성능을 추월할 것 같습니다. 저장 공간 역시 SDHC의 발전 속도를 볼때 곧 128G를 갖춘 고급 스마트폰도 나올 기세입니다.

      사실 그렇게 하지 않으면 하드웨어 제조사 나름의 장점을 갖추기 힘듭니다. 이미 소프트웨어 전쟁에서 뒤쳐졌다고 보여집니다.

      여튼 저는 Android도 좋아하고 iPhone도 좋아하는 사람의 입장에서 마무리 한다면~ 성능의 문제 보다는 더 좋은 모바일 소프트웨어가 진화할 수 있는 체계를 갖춘쪽이 더 성공할 가능성이 높아 보입니다.

      결국 소비자는 좋은 소프트웨어를 바라보기 때문이죠~ 원하시는 답변이 되었는지 모르겠네요~ :-)

  3. Favicon of http://www.chszard.com 하이바네.P 2010/04/13 17:42 address edit & del reply

    심도있는 답변 감사드립니다. 아무래도 하드웨어-소프트웨어-판매사가 하나인 애플에 비해 안드로이드라는 생태계를 만들어 놓은 구글이라는 회사가 뭔가 보여줘야 할 때인 것 같네요. 이번 4월의 발표회때 잡스씨가 언급한 내용중에 팜프리나 블랙베리쪽이 맡아왔던 기업형 소프트웨어에 대한 지원까지 늘린다고 하는걸 보니, 애플의 차근차근 단계를 밟아가는 모습에 비해 안드로이드의 두드러진 모습이 없어서 아쉽습니다. 그래도 미래가 기대되네요.^^

    • Favicon of http://blog.java2game.com 장선진 jangsunjin 2010/04/14 01:59 address edit & del

      아네~ 하이바네님 :-)
      덕분에 저도 많은 생각을 하게 되었습니다. 좋은 질문 종종 올려주세용~

      굳이 안드로이드와 아이폰을 비교하지 않아도 좋을 것 같습니다. 추구하는 바가 너무도 틀립니다.

      완벽한 미와 기능성을 추구하는 아이폰과 공개되고 조금 정리가 되지 않았어도 개방성을 추구하는 안드로이드는 사실 서로 태생부터 다르며, 추구하는 바가 너무도 다릅니다.

      안드로이드 역시 Linux가 그랬던것처럼 Linux 엔진을 달고 개방성을 향해 나아가는 스마트폰 플랫폼이며, 아이폰의 경우 애플이란 회사가 독점권을 가지고 만들어가는 스마트폰 플랫폼입니다.

      당근 한 회사에서 만들면 추진력도 점있고 전체적으로 통일감도 있는 반면~ 개방성에서 떨어지구요~
      여러회사가 연합되어 있는 안드로이드의 경우 개방성은 좋아서 많이 사용되지만 너무 개방적이기 때문에 약간의 혼선과 대응이 느린 부분이 있습니다.

      모두 필요한 특성이자 부분이라는 생각이 드네요~ :-)

  4. Favicon of http://lemonflavor.tistory.com 레몬에이드 2010/04/19 16:01 address edit & del reply

    컵케이크 속 안드로보이 귀여운걸요 ^^
    좋은 정보 감사드려요!

prev | 1 | next