Security Tech

Android와 iOS 아키텍처 비교: 모바일 플랫폼 구조와 특징 정리

작성자 - dhkstn

1. 개요


이번 포스팅에서는 모바일 플랫폼의 양대 산맥인 Android와 iOS의 핵심 특징을 살펴보고, 내부 아키텍처를 분석하여 두 플랫폼이 하드웨어와 소프트웨어를 제어하는 방식의 차이를 비교해 보겠습니다.

 

2. 안드로이드 특징


2-1. 오픈소스와 다양성

안드로이드는 구글이 주도하는 오픈소스 모바일 플랫폼입니다. 삼성, 샤오미 등 다양한 제조사가 이 소스를 가져와 자사 기기에 맞게 커스터마이징(One UI, MIUI 등) 하여 사용합니다.

  • 장점: 기기 선택 폭이 넓고, 파일 시스템 접근 등 시스템 레벨에서의 자유도가 높습니다.
  • 단점: 기기 종류와 제조사가 너무 다양하다 보니 OS 버전, 화면 크기, 커스터마이징 수준이 제각각인 파편화(Fragmentation) 문제가 발생하기도 합니다.

2-2. 개발 환경

  • 언어: Kotlin(권장), Java, C/C++(NDK)
  • IDE: Android Studio
  • 배포: 기본적으로 Google Play 스토어를 사용하지만, 원스토어 같은 제조사 마켓이나 APK 파일 직접 배포도 가능합니다. (기업 내부 배포, 테스트용 배포 등)

2-3. 보안 모델

안드로이드는 리눅스 기반 권한 모델을 따릅니다.

  • 각 앱은 샌드박스(Sandbox) 환경에서 서로 격리되어 실행됩니다.
  • 카메라, 위치, 연락처 등 민감한 기능에는 권한(Permission) 이 부여되어 있으며, 사용자의 명시적인 승인을 받아야만 접근할 수 있습니다.

3. 안드로이드 구조(5단계 계층)


안드로이드 시스템은 리눅스 커널을 기반으로 아래에서 위로 이어지는 5단계 계층 구조로 구성됩니다.

  • Linux Kernel → HAL → Android Runtime & Native Libraries → Java API Framework → System Apps

https://jtm0609.tistory.com/103

 

① 리눅스 커널 (Linux Kernel)

안드로이드 아키텍처의 가장 하단에 위치한 계층으로, 하드웨어와 상위 소프트웨어를 연결하는 추상화 계층 역할을 합니다.

  • 역할: 전력 관리, 메모리 관리, 프로세스/스레드 관리, 보안 권한 관리 등 OS의 핵심 기능을 담당합니다.
  • 드라이버: 카메라, 디스플레이, 오디오, Wi-Fi, 블루투스 등 하드웨어를 제어하는 디바이스 드라이버가 이 계층에 포함됩니다.

② 하드웨어 추상화 계층 (HAL)

상위 소프트웨어(Java/Kotlin 프레임워크)가 하드웨어의 복잡한 동작 방식을 몰라도 기능을 사용할 수 있게 해주는, 일종의 “통역사 계층”입니다.

  • 필요성:
  • 안드로이드는 제조사가 다양합니다. 삼성 카메라와 샤오미 카메라의 내부 구조는 다르지만, 앱 개발자는 단순히 Camera 관련 API만 호출하면 됩니다. HAL이 그 사이에서 각 제조사 하드웨어에 맞게 명령을 매핑해 줍니다.
  • 형태:
  • 카메라, 오디오, 블루투스, GPS 등 각 하드웨어별 모듈이 C/C++ 라이브러리 형태로 구현됩니다.

③ Android 런타임(ART) & 네이티브 라이브러리

  • Android 런타임 (ART)
    • Android 앱(Java/Kotlin 코드)을 실행하는 가상 머신 계층입니다.
    • 앱 코드는 DEX(Dalvik Executable) 바이트코드 형태로 변환된 뒤, ART 위에서 실행됩니다.
    • 특징:
      • 앱 설치 시 미리 기계어로 변환하는 AOT(Ahead-of-Time) 컴파일
      • 실행 중 자주 사용되는 코드를 최적화하는 JIT(Just-in-Time) 컴파일
      • 가비지 컬렉션(GC)을 통한 자동 메모리 관리
  • 네이티브 라이브러리
    • 그래픽, 웹 렌더링, 멀티미디어 등 성능이 중요한(core) 기능을 C/C++ 네이티브 코드로 제공하는 계층입니다.
    • 예:
      • OpenGL ES (2D/3D 그래픽)
      • WebKit/Chromium 기반 웹 엔진
      • 미디어 프레임워크(오디오/비디오 인코딩·디코딩)
      • SQLite(경량 데이터베이스)

④ 자바 API 프레임워크 (Java API Framework)

앱 개발자가 실제로 사용하는 Java/Kotlin 기반 API 집합입니다. 한마디로 개발자의 도구 상자에 해당합니다.

  • Activity Manager: 앱의 화면 전환과 생명 주기(Lifecycle) 관리
  • Content Provider: 연락처, 갤러리 등 앱 간 데이터 공유
  • View System: 버튼, 텍스트, 리스트 등 UI 구성 요소
  • Notification Manager: 상단 알림 바(상태 표시줄) 관리
  • Resource Manager: 문자열, 이미지, 레이아웃(XML) 등 리소스 관리

⑤ 시스템 앱 (System Apps)

가장 상단에 위치한 애플리케이션 계층입니다. 우리가 직접 눈으로 보고 손으로 사용하는 부분이기도 합니다.

  • 기본 탑재 앱: 전화, 문자, 주소록, 카메라, 설정 등
  • 서드파티 앱: 사용자가 Google Play 스토어 등에서 설치한 카카오톡, 인스타그램, 유튜브 등

이 모든 앱은 앞서 설명한 프레임워크 + 런타임 계층 위에서 동일한 방식으로 실행됩니다.

 

4. iOS 특징


4-1. 폐쇄형 생태계와 최적화

iOS는 애플이 하드웨어(아이폰, 아이패드)와 소프트웨어(iOS)를 모두 직접 설계, 관리하는 폐쇄형 구조입니다.

  • 장점:
    • 하드웨어 스펙이 정해져 있기 때문에 OS를 기기에 최적화하기 쉽습니다.
    • 기기 간 UI/UX 일관성이 높아 사용 경험이 균일합니다.
  • 단점:
    • 기기 가격이 상대적으로 비싸고,
    • 사용자가 시스템을 커스터마이징하거나 내부를 건드릴 수 있는 자유도가 낮습니다.

 

4-2. 개발 환경

  • 언어: Swift(권장), Objective-C
  • IDE: Xcode
  • 배포: 원칙적으로 App Store를 통해서만 정식 배포가 가능하며, 애플의 심사(App Review) 절차가 엄격하기로 유명합니다.

 

4-3. 강력한 보안과 프라이버시

iOS는 보안과 프라이버시를 플랫폼의 핵심 가치로 두고 있습니다.

  • 모든 앱은 샌드박스 내부에서 실행되며, OS가 허용한 범위 밖으로 벗어나기 어렵습니다.
  • 권한 요청(위치, 카메라, 마이크 등) 역시 보수적으로 관리되며,
  • 코드 서명(Code Signing), Keychain, Secure Enclave 등을 통해 데이터 보호와 무결성을 강화하고 있습니다.

 

5. iOS 구조(4단계 계층)


iOS는 보통 아래와 같은 4단계 계층 구조로 설명합니다.

  • Core OS → Core Services → Media → Cocoa Touch

https://jtm0609.tistory.com/103

 

① Core OS (Kernel Level)

안드로이드의 리눅스 커널 계층과 비슷한 역할을 수행합니다. iOS는 Darwin(XNU 커널) 기반의 UNIX 계열 시스템 위에서 동작합니다.

  • 역할: 메모리 관리, 파일 시스템, 네트워크, 전원 관리, 프로세스/스레드 관리, 보안 등 시스템의 가장 기초적인 기능을 담당합니다.

② Core Services

UI와 직접적으로 연결되지는 않지만, 앱 로직에 필수적인 핵심 서비스 계층입니다.

  • 예시 기능:
    • 데이터 관리: Core Data
    • 위치 정보: Core Location
    • 센서 처리, 네트워크, iCloud 연동 등

앱의 비즈니스 로직 대부분이 이 계층의 기능을 활용해 구현됩니다.

③ Media Layer

그래픽, 오디오, 비디오 등 멀티미디어 처리를 담당하는 계층입니다.

  • 예시:
    • Metal, Core Graphics: 2D/3D 그래픽 렌더링
    • AVFoundation: 오디오/비디오 재생 및 녹화
    • 이미지 처리, 카메라 캡처 등

안드로이드의 네이티브 라이브러리 계층과 유사한 역할을 한다고 볼 수 있습니다.

④ Cocoa Touch (Application Layer)

사용자가 직접 보고 터치하는 UI 계층입니다. iOS 앱에서 “화면”을 구성하는 대부분의 요소가 이 계층에서 제공됩니다.

  • UIKit / SwiftUI:
  • 버튼, 리스트, 네비게이션, 탭바, 제스처, 화면 전환 등
  • 역할:
  • 터치 이벤트 처리, 화면 전환/내비게이션, 푸시 알림 처리, 앱 생명주기 관리, 멀티태스킹 등

 

6. Android vs iOS 비교


두 플랫폼은 모두 커널(하드웨어 제어) → 핵심 서비스 → UI/앱 계층이라는 비슷한 계층형 구조를 가지지만, 설계 철학과 실행 방식에는 차이가 있습니다.

비교 항목 Android iOS

기반 커널 Linux Kernel Darwin(XNU, UNIX 계열)
개방성 오픈소스, 제조사·마켓 다양 폐쇄형, Apple 기기 전용
실행 환경 ART 위에서 DEX 바이트코드 실행 (JIT + AOT) Swift/ObjC를 네이티브 바이너리로 컴파일
주요 언어 Kotlin, Java (+ C/C++) Swift, Objective-C
앱 배포 Play 스토어, 제조사 스토어, APK 직접 배포 등 App Store 중심, 심사 엄격
데이터/리소스 공유 인텐트(Intent), 브로드캐스트 등 비교적 자유로움 샌드박스·권한 기반으로 엄격히 제한
플랫폼 철학 자유와 확장성: 다양한 기기·환경을 수용 통제와 최적화: 제한된 기기를 극대화

 

결국 두 운영체제의 차이는 '목적에 따른 설계 방식'에서 비롯됩니다.

Android는 수많은 제조사와 하드웨어를 포용하기 위해 유연한 계층 구조(HAL)와 가상 머신(ART)을 선택했고, iOS는 최상의 최적화와 보안을 위해 하드웨어부터 소프트웨어까지 수직적으로 통합된 구조를 택했습니다.

이러한 시스템 아키텍처의 차이가 바로 우리가 느끼는 '자유로운 안드로이드'와 '부드러운 아이폰'이라는 각기 다른 특징을 만드는 근본적인 원인이라고 할 수 있습니다

Contents

이 글이 도움이 되었다면, 응원의 댓글 부탁드립니다.