Android

Be together. Not the same.

— 안드로이드 생태계 특유의 다양성과 오픈소스 개방성을 우아하게 대변하는 유서 깊은 공식 슬로건

리눅스 커널의 자유를 물려받아 지구촌 모바일 보급률 70% 이상을 석권한 독보적 황제이자, 파편화된 기기 환경으로 모바일 개발자들의 야근을 평생 보장하는 주범. 사실상 구글 산하의 거대 하드웨어 광고판이자, 오라클과의 10년짜리 수조 원 소송 끝에 자바 가상머신을 버리고 통째로 네이티브 코틀린으로 탈출하는 드라마의 주인공(...)

1. 개요

구글에서 주도하여 개발한 모바일 전용 오픈소스 운영체제(OS). 리눅스 커널 위에 자바 가상머신(현재는 ART 런타임)을 얹어 애플리케이션을 구동하며, 제조사의 입맛대로 커스텀할 수 있는 압도적인 개방성을 무기 삼아 애플(애플)의 iOS 독점 구도에 유일하게 맞서 전 세계 스마트폰의 대부분을 지배하고 있다.

2. 오픈소스가 쏘아 올린 다양성의 축복

안드로이드의 최대 무기는 소스코드가 전 세계에 공짜로 공개되어 있다는 점이다. 이 덕분에 삼성, 샤오미 등 제조사들은 로열티 한 푼 내지 않고 자신들만의 독자적인 UI(One UI 등)와 커스텀 기능을 입혀 스마트폰을 찍어낼 수 있었다. 하지만 이 축복은 개발자들에게는 '지옥 같은 기기 파편화(Fragmentation)'라는 끔찍한 저주로 되돌아왔다. 앱 하나를 배포하면 초고가 갤럭시 폴드부터 저가형 중국산 공짜폰까지 수만 개의 변태적인 해상도와 CPU AP 환경에서 앱이 터지지 않고 동일하게 작동하는지 밤새 시뮬레이터를 돌리며 눈물겹게 테스트해야 하기 때문이다.(...)

3. 오라클 소송 파동과 Kotlin으로의 탈출

초기 안드로이드는 전 세계에 널리 퍼진 Java 개발진을 흡수하기 위해 자바 API 선언부와 문법을 적극 채용해 설계되었다. 하지만 이를 고깝게 보던 오라클이 자바를 인수하자마자 구글을 상대로 '자바 API 무단 도용 소송'을 걸어 무려 10여 년간 피 터지는 법정 공방이 벌어졌다. 소송 피로도와 자바 언어 특유의 장황한 문법에 지친 구글은 결국 젯브레인(JetBrains)사가 개발한 모던 언어인 Kotlin을 안드로이드의 최우선 공식 언어로 전격 선포했다. 코틀린은 자바와 100% 호환되면서도 널 안전성(Null Safety)과 콤팩트한 문법을 제공하여, 현재는 주니어 개발자들에게 자바를 밀어내고 안드로이드 입문의 절대 표준으로 자리 잡았다.

4. 관련 밈 및 드립

4.1. 우주를 뚫는 파편화 지옥

안드로이드 앱 화면을 이쁘게 다 만들어놓고 배포하면, 특정 중국 제조사의 단말기에서만 알 수 없는 하드웨어 GPU 드라이버 에러로 앱이 터져버리거나 레이아웃이 찢어지는 참사가 터진다. 개발 커뮤니티에서는 'iOS 개발자는 사장님 폰 하나만 맞추면 퇴근하지만, 안드로이드 개발자는 동네 구멍가게 알뜰폰까지 맞추느라 퇴근을 영원히 도둑맞는다'는 자조 섞인 드립이 전설처럼 통용된다.

5. 여담

  • 안드로이드 인형 이름은 Bugdroid: 초록색 깡통 로봇 마스코트의 공식 명칭은 'Bugdroid(버그드로이드)'이다. 이름에 대놓고 '버그'를 달고 있어 개발자들 사이에서는 버그가 유출되는 주범이 아니냐며 웃음벨로 소비되기도 한다.
  • 유구한 디저트 코드네임의 역사: 구글은 안드로이드 버전을 출시할 때마다 가나다 순(C, D, E, F...)의 디저트 이름(Cupcake, Donut, Eclair, Froyo... 마시멜로, 누가, 오레오)을 코드네임으로 고수해 왔다. 최신 10 버전 이후부터는 공식 마케팅에서 숫자로 표기하기 시작했으나, 구글 내부 개발 소스코드에는 여전히 디저트 이름(예: Android 14는 Upside Down Cake)이 숨겨져 있다.
  • 앤디 루빈의 매몰 차인 과거: 안드로이드의 창시자 앤디 루빈은 원래 삼성을 찾아가 '이 모바일 OS에 투자해 달라'고 제안했으나, 당시 삼성 임원진은 '겨우 이 작은 팀이 폰용 OS를 만든다고?'라며 비웃으며 쫓아냈다. 그리고 단 2주 뒤 구글의 설립자 래리 페이지가 안드로이드 팀의 천재성을 즉시 알아보고 단숨에 인수하며 모바일 역사의 판도를 완전히 뒤집었다.

6. 관련 문서