이제까지 안드로이드의 '컴포넌트(component)에 대해서 기본적인 속성들을 살펴보았습니다. 이러한 컴포넌트에는 네 가지 종류가 존재합니다. 세부 사항은 계속 살펴볼 예정이므로, 간단하게 요약해 살펴보겠습니다.
1. Activity(액티비티) : UI 구성을 위한 컴포넌트
2. Service(서비스) : UI 없이 백그라운드에서 장시간 수행되는 컴포넌트
3. ContentProvider(콘텐츠 프로바이더) : 애플리케이션 간 데이터를 공유하기 위한 컴포넌트
4. BroadcastReceiver(브로드캐스트 리시버) : 이벤트 모델로 수행되는 컴포넌트
○ Activity(액티비티)
가장 기본적으로 사용자 화면을 제공하는 컴포넌트 입니다. 화면을 구성하는 컴포넌트이므로, 자연스럽게 가장 많이 사용하는 컴포넌트라고 생각하면 됩니다.
○ Service(서비스)
사용자 눈에는 보이지 않고, 화면과 상관 없이 백그라운드에서 장시간 수행되는 컴포넌트를 의미합니다. 특히, 채팅 앱의 경우 사용자가 게임이나 다른 서비스를 사용하고 있어도 채팅 앱은 서버와 연결을 유지하고 데이터를 주고 받습니다. 이럴 때 사용하는 컴포넌트가 서비스 입니다.
○ ContentProvider(콘텐츠 프로바이더)
앱 사이에 데이터를 공유할 때 사용하는 컴포넌트입니다. 앱에서 갤러리 앱의 사진을 불러오거나, 주소록의 사용자 데이터를 불러오는 경우에 사용합니다.
○ BroadcastReceiver(브로드캐스트 리시버)
이벤트 모델로 수행되는 컴포넌트라고 설명되는데, 이는 사실 인텐트 원리를 이해하고 있어야 이해가 가능합니다. 일단, 현재는 배터리 부족 또는 시스템 부팅 완료 등의 이벤트가 발생하였을 때, 이 이벤트를 받기 위해 작성하는 컴포넌트라고 이해하고 넘어가도록 합시다.
안드로이드 앱을 개발한다는 것은, 결국 위의 네 가지 컴포넌트를 조합해 개발하는 것을 뜻하게 됩니다. 예를 들어, 아래와 같이 세 개의 A,B,C 앱이 있다고 가정해 봅시다.
A - Activity / Activity
B - Activity / Service / Activity
C - Activity / Service / Activity / Content Provider
A는 화면을 두 개 제공하는 앱이라는 의미가 됩니다. B의 경우, 화면을 두 개 제공하는 동시에 백그라운드에서 계속 수행하는 기능을 갖는 앱이라는 의미입니다. C의 경우는 자신의 데이터를 다른 앱에 공개하는 기능을 갖고 있다고 보면 됩니다.
컴포넌트의 구성과 앱 개발 자체는 자유롭지만 , 결국 각각의 앱이 갖는 기능에 따라 최적화 된 컴포넌트를 도출하는 것이 중요합니다. 이에 대해서는 계속해서 구체적으로 살펴보겠습니다.
'Programming > Android' 카테고리의 다른 글
2. 안드로이드 기본 구조의 이해 (4) - 앱 디렉토리와 파일 (0) | 2023.12.14 |
---|---|
2. 안드로이드 기본 구조의 이해 (3) - 리소스 외부화, XML (1) | 2023.12.02 |
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 2 (0) | 2023.11.27 |
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 1 (0) | 2023.11.15 |
2. 안드로이드 기본 구조의 이해 (1) - 안드로이드 아키텍쳐 (0) | 2023.11.12 |