Develop/Kotlin

[kotlin] Android 4대 컴포넌트

JunJangE 2023. 8. 30. 15:58

💡 Android 4대 컴포넌트란?

Android에서 4대 컴포넌트는 애플리케이션을 구성하고 동작시키는 기본적인 구성 요소들을 말한다. 이 4대 컴포넌트는 각각 다른 역할을 수행하며, 함께 조합하여 완전한 Android 애플리케이션을 구축한다.

📌  컴포넌트는 무엇이고 어떤 역활을 수행하는지?

Android에서 컴포넌트(Component)는 애플리케이션을 구성하고 동작시키는 기본적인 모듈 또는 요소를 말한다. 각 컴포넌트는 특정한 역할을 수행하며, 이들을 조합하여 완전한 Android 애플리케이션을 구축할 수 있다. 다양한 컴포넌트들은 서로 상호작용하면서 앱의 기능과 동작을 결합시킨다.

  • 컴포넌트는 애플리케이션을 구성하는 단위이며 애플리케이션이 아니다. 
  • 컴포넌트는 애플리케이션이 아니다.
  • 하나의 애플리케이션은 여러 컴포넌트로 구성되어 있다.
  • 안드로이드에서는 클래스로 컴포넌트를 개발한다.
  • 하나의 클래스는 하나의 컴포넌트이다.
  • 앱을 구성하는 모든 클래스는 컴포넌트가 아니다.
    • 컴포넌트 클래스 : 개발자가 만들기는 했지만 생명주기를 안드로이드 시스템에서 관리.
    • 일반 클래스 : 클래스의 객체 생성부터 소멸까지 생명주기 관리를 개발자 코드에서 관리.
  • 컴포넌트는 앱의 구성단위 이며, 여러개의 컴포넌트들을 조합하여 하나의 앱을 만들 수 있다.
      • 컴포넌트의 물리적인 모습은 클래스이며, 모든 클래스가 컴포넌트는 아니다.
      • Android의 클래스는 일반 클래스, 컴포넌트로 나뉘는데, 일반클래스의 생명주기는 개발자 코드로 관리하고 컴포넌트는 생명주기를 안드로이드 시스템이 생성하여 관리하다가 소멸된다.
  • 컴포넌트는 앱 내에서 독립적인 앱 실행 단위이다.
    • 컴포넌트끼리 서로 종속되지 않아서 코드 결합이 발생하지 않는다.
    • 컴포넌트 클래스는 독립적인 수행 단위로 동작하기 때문에 직접 개발자 코드로 생성해서 실핼할 수 있다.
    • ex) A클래스에서 B클래스를 실행하려면 val b: B = B() 로 객체를 생성해서 실행하는데, 실행하고자 하는 B클래스가 컴포넌트 클래스라면 Intent를 매개로 하여 결합하지 않은 상태에서 독립적으로 실행하는 구조.
  • main 함수 같은 어플리케이션의 진입 지점이 따로 없다. (앱의 실행 시점이 다양할 수 있다. ← 안드로이드 앱은 메인 함수 개념이 없다.)
    • 앱의 실행 시점은 다양한데, 컴포넌트 클래스들은 모두 프로세스가 구동되었을 때 최초로 실행되는 실행 시점이 될 수 있다.
      • ex) 사용자가 SMS를 실행한 적이 없을때, 스마트폰에 SMS가 전달되면 사용자가 앱을 실행하지 않아도 SMS수신 기능을 하는 컴포넌트 부터 실행되어 프로세스가 구동될 수 있다.
  • 어플리케이션 라이브러리 개념이 존재한다.
    • 안드로이드가 컴포넌트 기반이기 때문에 개발자의 코드가 결합이 발생하지 않으므로 외부 앱의 컴포넌트도 실행할 수 있다.

  • 컴포넌트의 특징
    • 각 컴포넌트들은 하나의 독립적인 형태로 존재
    • 컴포넌트들은 고유의 기능을 수행
    • 컴포넌트들은 인텐트를 통해 서로 상호작용

📌 Android 4대 컴포넌트

  1. Activity(Ui를 구성하기 위한 컴포넌트)
    • 사용자 인터페이스(UI)를 가지는 화면 단위의 컴포넌트이다.
    • 사용자와 상호작용하고 화면을 표시하며, 애플리케이션의 UI를 구성하는 역할을 한다.
    • 앱에서 여러 개의 액티비티가 존재하며, 하나의 액티비티가 실행될 때 다른 액티비티를 호출하거나 전환할 수 있다.
  2. Service(Ui 없이 백그라운드에서 장시간 수행되는 컴포넌트)
    • 백그라운드에서 실행되는 비주얼 UI 없는 컴포넌트이다.
    • 백그라운드에서 오랫동안 실행되는 작업이나 서버와의 통신 등을 처리하는데 사용된다.
    • 사용자와 직접 상호작용하지 않으며, 더 오랫동안 실행될 수 있는 컴포넌트이다.
  3. Broadcast Receiver이벤트 모델로 수행되는 컴포넌트)
    • 시스템 또는 앱 내에서 발생하는 브로드캐스트 메시지(이벤트)를 수신하는 컴포넌트이다.
    • 예를 들어, 배터리 부족, 네트워크 연결 변경 등의 시스템 이벤트를 감지하거나, 다른 앱이나 시스템으로부터 전달되는 브로드캐스트 메시지를 수신할 수 있다.
  4. Content Provider(애플리케이션 간 데이터를 공유하기 위한 컴포넌트)
    • 앱 간 데이터를 공유하고 관리하는데 사용되는 컴포넌트이다.
    • 데이터베이스, 파일 시스템, 네트워크 등의 데이터를 다른 앱과 공유하고 사용할 수 있도록 인터페이스를 제공한다.

이 4대 컴포넌트는 각각 다른 역할을 수행하며, 앱을 다양한 방식으로 구성하고 동작시키는 데 사용된다. 이 컴포넌트들을 조합하여 안드로이드 애플리케이션의 다양한 기능과 동작을 구현할 수 있다.

++Intent

  • 어플리케이션 컴포넌트간에 작업수행을 위한 정보를 전달하는 역활, 인텐트를 통하여 다른 어플리케이션의 컴포넌트를 활성화시킬 수 있다.

참고

 

안드로이드 액티비티의 인생 - 액티비티 생명주기(LifeCycle)

지난 글에서 액티비티란 간단하게 무엇인가 설명했었는데요.오늘은 안드로이드 액티비티의 생명주기에 대해 간략하게 이야기 해볼까 합니다.액티비티(Activity)는 메모리에 상주되면서 소멸되기

velog.io

 

Component란 무엇인가?

안드로이드 앱 아키텍처의 가장 큰 특징은 컴포넌트 기반이라는 것입니다. 그렇다면 컴포넌트는 무엇이고 어떤 역할을 수행하는지 알아보겠습니다.

hongbeomi.medium.com

 

[Android]안드로이드 구성요소, 컴포넌트(Android Component)

@ Component * 액티비티(Activity) : 사용자 인터페이스(UI)를 구성하는 기본 단위- 일단 윈도우(window)와 유사한 개념으로 생각하되 정확하게 같지는 않으며 윈도우보다는 더 큰 개념이다. 눈에 보이는

ariarihan.tistory.com

 

안드로이드(android) 앱개발의 특징 - 컴포넌트, 리소스

키워드 컴포넌트 리소스 컴포넌트를 기반으로 한 개발 안드로이드 앱개발의 핵심! 컴포넌트 컴포넌트 = 애플리케이션을 구성하는 단위 컴포넌트 ≠ 애플리케이션 하나의 애플리케이션은 여러

raekki.tistory.com

 

[Android] 안드로이드 기초 - 안드로이드 4대 컴포넌트 : 액티비티, 서비스, 콘텐츠 프로바이더, 브

개요 컴포넌트(Component)란 안드로이드 애플리케이션을 생성할 수 있도록 제공되는 구성 요소(building block)이다. 각각의 컴포넌트는 다른 진입점을 통하여 애플리케이션에 들어간다. 안드로이드

4z7l.github.io

 

'Develop > Kotlin' 카테고리의 다른 글

[Kotlin] Data class  (0) 2024.04.03
[Kotlin] enum와 sealed class  (0) 2024.02.26
[kotlin] 코틀린 기본 문법  (0) 2022.12.06
[kotlin] 객체 지향 프로그래밍  (0) 2022.12.05
[kotlin] 코틀린이란 무엇인가?  (0) 2022.12.02