스마트폰 시장에서 안드로이드는 독보적인 위치를 차지합니다. 전 세계 스마트폰 사용자의 70% 이상이 안드로이드 기기를 사용하는데, 그 영향력이 얼마나 큰지 짐작이 갑니다. 그래서 앱 제작을 준비 중이라면 안드로이드가 정확히 무엇인지, 어떻게 이렇게 큰 존재로 성장하게 되었는지 배경지식을 쌓아두는 게 여러모로 도움이 됩니다.
그렇다면 안드로이드는 단순히 ‘구글’이 만들어서 이렇게 큰 성장을 이뤄낼 수 있었던 걸까요? 아래 그 진실부터 설명드립니다.
✍️ 이 글의 순서
• 안드로이드 OS의 역사 훑어보기
• 안드로이드 OS 특징 3가지
• 안드로이드 OS ‘장점 vs 단점’
• 장단점 밸런스 잘 잡는 개발자 찾는 법
안드로이드(Android)는 ‘안드로이드 샤(社)’에서 개발한 모바일용 운영체제(OS; Operation System)로, 2005년 구글에서 인수한 뒤 2007년 인텔, LG전자, 삼성전자, 모토로라 등 48개 회사가 오픈 핸드셋 얼라이언스(OPH; Open Handset Aliance)를 결성했습니다.
이후 2008년, 리눅스 커널 2.6 기반의 ‘오픈 소스’로 대중에게 공개했는데요. 당시 모바일 플랫폼은 애플의 iOS가 유일했으므로, 안드로이드 오픈 소스 공개는 시장 점유율을 높이기 위한 구글의 공격적인 전략으로 평가되었습니다. 실제로 안드로이드가 오픈 소스 형태로 공개된 뒤 수많은 기업과 개인들이 안드로이드 체제에서의 앱을 적극적으로 개발하기 시작했습니다.
🔖 운영체제(OS; Operation System)란?
하드웨어를 제어하고 소프트웨어를 실행하기 위한 플랫폼을 제공하는 ‘시스템 소프트웨어’로, 대표적인 PC의 OS로는 ‘윈도우, 맥, 리눅스, 유닉스’ 등이 있습니다.
안드로이드는 애플의 iOS나 MS의 윈도우 폰 등과 다르게 ‘완전 개방형 플랫폼’입니다. 다시 말해, ‘오픈 소스’ 소프트웨어이기 때문에 누구나 앱을 개발할 수 있는 것이죠. 백미는 누군가 만든 소스를 내가 발전시켜 새로운 창작물을 구현해 낼 수 있다는 점입니다.
안드로이드는 프로그래밍 언어로 Java를 이용합니다. 그래서 웹 개발자들도 금방 익혀 앱을 개발할 수 있습니다. 웹이나 앱이 처음인 초보 개발자들도 iOS에 비하면 쉽게 배울 수 있죠. 또 안드로이드는 호환성이 우수하기 때문에 스마트폰 이외의 기기들과도 연동하기 좋습니다. 안드로이드TV, 워치, 내비게이션 등 다양한 기기를 넘나드는 호환이 가능합니다.
안드로이드는 런타임 라이브러리를 제공하며, 모바일 환경에 특화된 가상 머신을 사용하기 때문에 효율적으로 개발할 수 있습니다. 웹에 비해 리소스가 한정적인 가진 모바일 기기에서도 앱이 원활하게 동작할 수 있게 해줍니다. 경험상이 점은 복잡한 연산이 필요한 앱을 개발할 때 큰 도움이 됩니다.
가상 머신의 또 다른 장점은 메모리 효율성입니다. 안드로이드의 가상 머신은 메모리 요구 사항이 상대적으로 적다는 게 특징인데, 그렇기에 여러 앱을 동시에 구동할 수 있게 해줍니다. 무엇보다 사용자 경험 측면에서 큰 이점이 되죠. 생활 속에서 비유하자면, 음악을 들으면서 메시지를 확인하고 웹서핑을 할 수 있는 게 바로 이런 효율적인 메모리 관리 기술 덕분입니다.
이어서 안드로이드의 장점과 단점을 차례로 3가지씩 정리해 드립니다. 장점은 위의 특징과 중첩되는 부분이 있지만, 단점과의 명확한 비교와 이해, 또 복습 차원에서 다시 한번 확인하시길 바랍니다.
먼저 안드로이드 OS는 오픈 소스 기반이기에 개발 비용이 크게 절감됩니다. iOS 앱을 개발할 때 필요한 고가의 Mac 컴퓨터나 연간 개발자 라이선스 비용이 필요 없죠.
방대한 무료 라이브러리와 개발 도구들도 큰 매력입니다. 구글이 제공하는 Android Studio부터 수많은 서드파티 도구들까지, 개발자들은 성역 없이 다양한 리소스를 활용할 수 있습니다. 개발에 첫 발을 내디딘 초보자들의 진입 장벽을 낮추는 동시에, 경험 많은 개발자들에게 여러 영감을 불러오는 효과도 있습니다.
특정 플랫폼에서만 작동하는 것이 아니기 때문에 플랫폼 개발 방식에 종속되지 않습니다. 즉, 어떻게 설계하더라도 어느 기기나 플랫폼에서든 원활히 작동되도록 제작할 수 있죠.(호환성)
개발자 입장에서는 한 번 개발한 앱을 다양한 기기에서 구동할 수 있다는 점이 큰 장점입니다. 스마트폰, 태블릿, 스마트 TV, 웨어러블 기기 등 다양한 형태의 기기에서 같은 앱을 실행할 수 있죠. 이건 사용자 입장에서도 큰 이점입니다. 자신이 사용하는 여러 기기에서 일관된 경험을 할 수 있기 때문입니다. 스마트폰에서 사용하던 앱을 태블릿이나 TV에서도 그대로 이용할 수 있어 편리합니다.
플랫폼 독립성은 IoT(사물인터넷) 시대에 더욱 중요해지고 있습니다. 다양한 스마트 기기들이 서로 연결되는 환경에서 안드로이드의 이러한 특성은 큰 강점이 됩니다.
안드로이드 초기 버전부터 사용되어온 대표 가상 환경인 ‘달빅 VM’은 메모리와 배터리 사용을 최소화하도록 설계되었습니다. 이후 도입된 ART는 앱의 성능을 더욱 향상시켰습니다. ART는 앱을 설치할 때 미리 기계어로 변환해두는 AOT(Ahead-Of-Time) 컴파일 방식을 사용해 실행 속도를 높였죠.
이러한 가상 환경의 최적화는 개발자들에게 여러 장점을 제공합니다. 먼저, 하드웨어의 세부사항을 깊이 알지 못해도 효율적인 앱을 개발할 수 있습니다. 또 다양한 기기에서 일관된 성능도 보장받을 수 있습니다. 사용자는 빠르고 부드러운 앱 환경을 경험하게 됩니다. 특히 최근의 ART는 배터리 수명 연장에도 크게 기여하고 있어, 모바일 기기 사용에 있어 중요한 요소인 배터리 효율성도 개선하는 중입니다.
안드로이드의 개방성은 양날의 검과 같습니다. 누구나 쉽게 앱을 개발하고 배포할 수 있다는 점은 장점이지만, 동시에 품질 관리, 이미지 관리가 쉽지 않습니다. 구글 플레이 스토어는 앱 등록 과정이 iOS의 앱스토어에 비해 덜 엄격합니다. 결과적으로 저품질의 앱, 악성 앱, 심지어는 사용자의 개인정보를 노리는 해킹 앱들이 쉽게 유통되는 문제를 야기하고 있습니다.
안드로이드 플랫폼의 신뢰도가 낮아지면, 품질 높은 앱들도 덩달아 피해를 입게 됩니다. 저품질 앱들이 난무하는 사이에 묻혀 발견되기 어려워질 뿐만 아니라, 우리 역시 그런 앱으로 비칠 수 있기 때문입니다. 앱을 개발하고 운영하는 회사 입장에서는 큰 부담이 아닐 수 없습니다. 그래서 일부 회사들은 애초에 안드로이드 버전의 앱을 포기하고 iOS 버전만 만드는 강수를 두기도 하죠.
안드로이드의 장점인 ‘다양성’이 다른 측면에서 단점으로 작용되기도 합니다. 다양한 제조사에서 각기 다른 하드웨어 스펙을 가진 기기들을 출시하고, 각 기기마다 다른 버전의 안드로이드를 탑재하고 있어 호환이 되지 않는 문제가 늘고 있습니다.
이 문제는 사용자에게도, 개발자에게도 모두 악영향을 미칩니다. 먼저 개발자는 안드로이드임에도 불구하고, 더 많은 기기와 더 많은 OS 버전에서 테스트를 진행해야 합니다. 사용자 입장에서는 내 스마트폰에서 되는지 안되는지 일일이 체크하는 불편을 겪어야 하고, 이런 경험이 늘어나다 보면 결국 플랫폼 자체를 갈아타게 되는 결과로까지 이어질 수 있습니다.
구글은 이 문제를 심각하게 바라보고 있습니다. 안드로이드의 핵심 컴포넌트를 모듈화하고, 구글 플레이 서비스를 통해 OS 업데이트 없이도 새로운 기능을 제공하는 등의 노력을 기울이는 중이죠.
안드로이드 OS는 멀티태스킹에 최적화되어 있어 여러 앱을 동시에 실행할 수 있다는 장점이 있지만, 이는 동시에 단점이 되기도 합니다. 백그라운드에서 많은 앱이 실행되면서 데이터와 배터리를 많이 소모하기 때문입니다.
특히 일부 앱들은 ‘사용자가 알지 못하는 사이’에 백그라운드에서 계속 실행되기도 합니다. 이런 상태가 계속되면 기기의 전반적인 성능 저하와 배터리 수명 단축으로 이어질 수밖에 없습니다. 앞서 특징에서 ART가 배터리 수명 연장에 기여하고 있다는 점은, 말 그대로 개선을 위해 노력하고 있다는 점임을 이해하길 바랍니다.
여기까지 대표 운영체제인 안드로이드의 짧은 역사부터, 장점과 단점까지 차례로 살펴봤습니다. 무엇이든 장점과 단점은 공존하기 마련입니다. 중요한 건 개발에 참여하는 사람이 얼마나 잘 버무리고 활용하느냐에 달려있는 법이겠죠. 안드로이드라는 운영체제를 이해했다면, 이제 본격적으로 장단점 밸런스를 잘 잡아 앱을 제작, 개발해 줄 개발업체를 찾을 차례입니다.
가장 쉽고 안정적인 방법은 ‘위시켓’입니다. 위시켓은 국내 1위 IT 아웃소싱 전문 플랫폼으로 약 1만 6천여 개발 업체와 11만 명 이상의 개발 프리랜서가 연결되어 있습니다. 한 번의 프로젝트 등록으로 국내 거의 모든 개발자들에게 소식을 알리는 효과가 있기에 일일이 발품을 팔아 업체를 찾는 시간을 심플하게 줄여줍니다. 실제 위시켓을 이용했던 클라이언트사들도 가장 큰 장점으로 시간 절약과 안정성을 꼽고 있습니다.
앱제작을 앞두고 있다면 위시켓에서 얻을 수 있는 혜택들을 자세히 살펴보시기 바랍니다. 또 우리가 만들려는 프로덕트와 비슷한 프로젝트들은 어떻게 진행되고 있는지도 직접 확인해 보세요. 아래 배너를 누르면 이동합니다.
🔖 함께 보면 도움되는 글
앱개발 비용에 ‘유지 보수’ 견적 잘 녹이는 방법 (산정 기준)
안드로이드 앱개발, 왜 코틀린(Kotlin)이 필요할까?