Android의 플랫폼 아키텍쳐 및 안드로이드 OS

이윤설·2025년 2월 26일
0

안드로이드 연구소

목록 보기
19/33

Android는 왜 '오픈소스 소프트웨어 스택'일까?

안드로이드는 우리가 흔히 스마트폰에서 사용하는 운영체제(OS)로 알고 있지만, 사실 그 자체가 하나의 오픈소스 소프트웨어 스택(Open Source Software Stack)이다.

여기서 '스택'이라는 단어가 붙는 이유, 그리고 '오픈소스'가 의미하는 바를 하나씩 살펴보자.


소프트웨어 스택이란?

'스택(Stack)'은 아래에서부터 위로 차곡차곡 쌓여 있는 구조를 의미한다. 그렇다면 Android를 '소프트웨어 스택'이라고 부르는 이유는 뭘까?

안드로이드는 여러 계층(Layer)으로 구성된 소프트웨어들의 집합이다. 가장 아래에 리눅스 커널이 있고, 그 위로 HAL(Hardware Abstraction Layer)과 Native Libraries + Android Runtime, Android Framework, 그리고 최상단에는 우리가 직접 사용하는 Application이 자리 잡고 있다.

즉, 안드로이드는 단순한 운영체제가 아니라, 여러 소프트웨어 요소들이 층층이 쌓여 있는 구조이기 때문에 '소프트웨어 스택'이라고 부른다.

Android의 소프트웨어 스택 구조


1. Linux Kernel (리눅스 커널) - 하드웨어와 소프트웨어를 연결하는 가장 기초적인 층
2. HAL(Hardware Abstraction Layer) & Native Libraries - 하드웨어와 직접 연결된 코드 및 네이티브 라이브러리
3. Android Runtime (ART) - 앱 실행을 위한 런타임 환경
4. Android Framework (Java API Framework) - 모든 앱이 공통적으로 사용하는 기능을 제공하는 API
5. Applications (앱) - 우리가 실제로 사용하는 앱 (예: 카카오톡, 유튜브, 네이버 앱 등)

결국, Android라는 것은 이 모든 계층을 포함하는 소프트웨어 스택을 의미하는 것이다.


오픈소스란?

Android는 오픈소스 프로젝트(Open Source Project)다.
쉽게 말해, 소프트웨어 스택을 구성하는 코드가 비공개가 아니라 공개되어 있으며, 누구나 이를 보고, 수정하고, 활용할 수 있다는 뜻이다.

이 프로젝트는 Google이 주도하고 있지만, 전 세계 개발자들이 Android의 발전에 기여할 수 있다. 이 점이 바로 Android가 다른 폐쇄적인 운영체제(예: iOS)와 차별화되는 중요한 요소다.


Android vs Android 플랫폼 vs Android 프레임워크 vs Android 운영체제 vs Android 시스템

Android에 관련된 용어들이 많아서 헷갈릴 수 있다.
각각 어떤 차이가 있는지 하나씩 정리해보자.

📌 Android = Android 플랫폼

Android와 Android 플랫폼은 같은 의미다. 단, '플랫폼'이라는 단어를 사용하면 '무언가를 만들 수 있는 기반'이라는 의미가 강조된다. 즉, 안드로이드는 하나의 운영체제이면서도 개발자들이 앱을 만들 수 있는 오픈소스 소프트웨어 플랫폼이라는 점에서 'Android 플랫폼'이라고 부르기도 한다.


📌 Android 프레임워크 (= Java API Framework)

Android 스택에서 네 번째 층을 차지하는 것이 바로 Android Framework, 즉 Java API Framework다. 모든 Android 앱은 이 프레임워크가 제공하는 API를 사용해 만들어진다.

구글에서 만든 앱이든, 내가 직접 개발하는 앱이든 모두 같은 Android Framework를 사용하게 된다.

✅ Android Framework는 여러 Manager들로 구성되어 있다.

  • 예를 들어, ActivityManager는 앱의 실행 상태를 관리하고, NotificationManager는 알림(Notification) 기능을 제공한다.
  • 개발자는 이 Manager들이 제공하는 API를 사용해 앱을 만들고, 내부적으로 어떻게 동작하는지는 프레임워크가 처리해준다.

즉, 개발자는 API 사용법만 알면 되고, 복잡한 내부 로직은 신경 쓰지 않아도 된다.


📌 Android 운영체제 = Android 시스템

Android는 우리가 흔히 말하는 스마트폰 운영체제(OS)이기도 하다. 그래서 'Android 운영체제'라고 부르는데, 이 말은 결국 'Android 플랫폼을 모바일 기기의 OS로 사용한다'는 의미다.

운영체제는 영어로 Operating System(OS)이므로, 여기서 'Operating'을 빼고 **Android 시스템(Android System)**이라고 부르기도 한다. 결국 Android 운영체제 = Android 시스템이다.


✅ 요약

용어의미
Android = 오픈소스 소프트웨어 스택Google이 주도하는 오픈소스 프로젝트, 여러 소프트웨어 층이 쌓인 구조
Android = Android 플랫폼'소프트웨어 스택'이라는 단어를 빼고 설명할 때 사용
Android 프레임워크 = Java API Framework모든 앱이 공통적으로 사용하는 API 모음, 개발자가 직접 사용하는 영역
Android 운영체제 = Android 시스템Android를 모바일 기기의 OS로 사용하는 것
profile
화려한 외면이 아닌 단단한 내면

0개의 댓글

관련 채용 정보