[안드로이드 공부하기] 4대 컴포넌트가 뭐죠?

MJ·2022년 1월 6일
0

안드로이드 4대 컴포넌트 중 OO에 대해서 설명해보세요.

안드로이드 직무 면접에서 빠지지 않고 등장하는 질문이라고 생각합니다. 안드로이드의 기초 중의 기초이기 때문이죠.

그렇습니다. 저는 안드로이드로 졸업 프로젝트를 했으면서 불과 몇달 전까지 4대 컴포넌트가 뭔지도 몰랐습니다. 그런 저를 돌아보며, 올해 목표는 기술 블로그 운영으로 잡고 안드로이드에 관한 글을 써 보려고 합니다. 그리고 대망의 첫 주제는... 바로 4대 컴포넌트가 되겠습니다. 👏👏박수 짝짝👏👏

안드로이드의 핵심 요소인 Acivity, Service, ContentProvider, BroadcastReceiver를 묶어 4대 컴포넌트라고 합니다. 각각의 용도가 다르긴 하지만, 컴포넌트인만큼 아래와 같은 공통점을 가지고 있어요.

  • 앱을 구성하는 최소 단위이다.
  • 앱 내에서 독립적인 실행 단위를 갖는다.
  • 각 컴포넌트는 Intent를 사용하여 서로 상호작용한다.

그럼, 이제부터 각각의 컴포넌트가 어떤 역할을 하는지 알아볼까요?

1. 액티비티(Activity)

액티비티(Activity)는 사용자에게 보여지는 UI를 구성하는 컴포넌트로, 모든 안드로이드 앱은 최소 1개 이상의 액티비티를 가지고 있어야 합니다. 즉, 사용자와 직접적으로 상호작용하는 컴포넌트라고 할 수 있겠습니다.

액티비티는 고유의 생명주기(LifeCycle)를 가지고 있어 특정 시점에 원하는 동작을 수행하도록 구현할 수 있습니다. 그리고, Intent를 사용하여 다른 애플리케이션의 액티비티를 호출할 수도 있습니다. 액티비티에는 1개 이상의 View 혹은 ViewGroup이 존재합니다. 마지막으로, 2개 이상의 액티비티를 동시에 보여줄 수 없습니다.

요약

  • 액티비티는 UI를 구성하는 컴포넌트이다
  • 모든 안드로이드 앱은 하나 이상의 액티비티를 가지고 있어야 한다
  • 액티비티는 고유의 생명주기를 가진다
  • 액티비티는 1개 이상의 View 또는 ViewGroup을 가진다
  • 2개 이상의 액티비티를 동시에 보여줄 수 없다

2. 서비스(Service)

액티비티가 화면을 가지는 컴포넌트라면, 서비스(Service)는 화면을 가지지 않는 컴포넌트입니다. 사실 액티비티를 제외하고 대부분의 컴포넌트는 UI를 가지지 않습니다. 눈에 안 보인다는 특성을 가지고 있기 때문에 서비스는 주로 백그라운드 작업 처리에 사용되고, 크게 포그라운드(Foreground), 백그라운드(Background), 바인드 서비스로 구분됩니다.

서비스는 백그라운드 작업을 주로 처리하기 때문에 별도의 쓰레드에서 동작하는 것으로 오해할 수도 있는데, 서비스 또한 UI 쓰레드라고 불리는 메인 쓰레드에서 동작하기 때문에 멀티쓰레드 환경을 위해서는 서비스 내에서 별도의 쓰레드를 생성해서 사용해야 합니다.

요약

  • 서비스는 주로 백그라운드 작업을 처리하는 컴포넌트이다
  • 서비스는 크게 포그라운드, 백그라운드, 바인드 서비스로 구분된다.
  • 서비스 또한 UI 쓰레드에서 동작한다.

3. 콘텐트 제공자(ContentProvider)

콘텐트 제공자(ContentProvider)는 데이터를 관리하고, 다른 애플리케이션과 데이터를 공유할 수 있도록 표준 인터페이스를 제공하는 컴포넌트입니다. 콘텐트 제공자를 사용하여 다른 애플리케이션이 앱 데이터에 안전하게 액세스하여 이를 수정할 수 있도록 허용할 수 있다는 장점이 있습니다.

이러한 콘텐츠 제공자는 ContentResolver 클래스에 의해 처리되고, 주로 SQLite, Web 또는 파일 입출력을 통해 데이터를 관리합니다. ContentProvider 역시 별다른 UI를 가지고 있지는 않습니다.

4. 방송 수신자(BroadcastReceiver)

방송 수신자(BroadcastReceiver)는 안드로이드 OS 또는 애플리케이션에서 보내는 다양한 이벤트를 받아 알맞은 작업을 수행하는 컴포넌트라고 할 수 있습니다.

예를 들어 비행기 모드가 켜졌을 때 특정 기능을 수행하고 싶다면, OS에서 비행기 모드가 켜졌을 때 보내는 방송(Broadcast)을 BR에서 받아서 처리할 수 있습니다.

브로드캐스트 수신 이외에도, 애플리케이션은 BR을 사용하여 브로드캐스트 메시지를 전송할 수 있습니다.


4대 컴포넌트부터 차근차근 정리해보니 다시금 안드로이드에 대한 공부 의지가 불타네요🔥🔥
다음 주제는 액티비티의 LifeCycle에 대해 자세히 다뤄보도록 하겠습니다. 그럼 안녕~~
profile
오늘보다 내일을 더 즐겁게

0개의 댓글