[Android] 주요 4대 컴포넌트 - Activity 편

H43RO·2021년 7월 10일
4

Android 와 친해지기

목록 보기
2/26
post-thumbnail
post-custom-banner

Android 공식 문서를 참고하여 작성한 내용입니다
https://developer.android.com/guide/components/fundamentals#ActivatingComponents

Android 4대 컴포넌트

안드로이드 앱을 구성하는 가장 핵심적인 요소 4가지가 있다. 각각 Activity (액티비티), Service (서비스), Broadcast Receiver (브로드캐스트 리시버), Content Provider (콘텐트 프로바이더) 이다. 안드로이드 앱이라 함은, 이 4가지 구성요소를 한 뭉태기로 엮어놓은 번들 형태이다. 이 구성요소들 각각은 개발자에 의해 정의된 자기 할 일을 수행한다.

안드로이드 앱은 다른 일반 프로그램들과 달리, 코드상으로 시작점 (e.g. main() 함수 등) 이 정해져있진 않다. 대신, 안드로이드 앱 동작의 첫 시작점무조건 이 4가지 구성요소 중 1가지로 지정된다. 예를들어 주식 앱을 만들 때, 종목 매수/매도 페이지 및 그래프 보기 페이지 등 여러 액티비티가 있을 수 있다. 하지만 만약 그래프를 보여주는 액티비티를 시작점으로 지정해주면, 이 앱을 딱 실행했을 때 나오는 화면은 주식 그래프 화면이 된다. 따라서 공식 문서에선 'Each component is an entry point through which the system or a user can enter your app (각 컴포넌트는 시스템이나 사용자가 앱에 진입할 수 있는 진입점이다)' 라고 표현한다.

그럼, 이들이 각각 어떤 역할을 수행하는지 하나씩 알아보자!

이번 포스팅에선 첫 번째 주요 컴포넌트인 액티비티에 대하여 알아본다.

1. Activity

액티비티는 실제 화면에 보여지는 친구다. 즉, 사용자와 인터랙션을 하기위한 컴포넌트이다. 사용자에게 요즘 유망한 주식 그래프를 보여준다든지, 로그인을 위해 아이디 및 패스워드를 입력을 받는다든지 이 모든 것들이 액티비티 상에서 일어난다. 카톡 대화창 역시 전부 액티비티로 구현이 되어있는 것이다.

슈퍼 인싸 재질 Activity

액티비티의 특징은, 사용자 뿐만 아니라 다른 액티비티와도 커뮤니케이션을 할 수 있고 더 나아가 완전히 분리된 다른 앱의 액티비티와도 상호작용을 할 수 있다는 점이다. 예를들어 아래와 같은 시나리오를 보자.

앱 개발자가 자신의 앱을 만들기 위해 액티비티 A, B 를 만들어두고, A 에는 글 제목이나 내용 및 첨부파일 등을 넣을 수 있는 게시글 작성 페이지를 구현하려고 한다. 그리고 B 에는 카메라로 사진을 촬영할 수 있는 프리뷰 화면을 구현하려고 한다. 그렇다면 아래와 같이 기능 정의를 할 수 있다.

액티비티 A 야, 너는 게시글 작성 페이지를 띄워줘야 해!
액티비티 B 야, 너는 사용자가 액티비티 C 에서 첨부파일에 직접 촬영한 사진을 넣으려고 할 때 켜져서 사진 촬영을 하고 촬영본을 액티비티 C 에게 전달해줘!

이렇게 하면 액티비티 A 와 B 가 서로 상호작용하며 더 풍부한 동작을 할 수 있다.

하지만, 생각해보면 카메라로 사진을 찍는 기능을 담은 앱은 모든 스마트폰에 기본 앱(보통 기본 카메라 라고 함)으로써 존재한다.

그렇다면 개발자가 스마트폰에 내장돼있는 (기존에 이미 만들어져있는) 기본 카메라를 활용해볼 수 있지 않을까? 위와 똑같은 시나리오를 이렇게 옮겨볼 수 있다!

액티비티 A 야, 너는 게시글 작성 페이지를 띄워줘야 해! 대신, 사용자가 첨부파일을 넣기 위해 카메라 촬영을 원하면 '기본 카메라' 앱을 찾아가면 돼!

이렇게 정의를 해두면, 액티비티 A 에서 사용자에 의해 사진 촬영 요청이 발생하면 '기본 카메라' 앱을 실행하여 촬영을 하고, 촬영한 사진(결과물)을 첨부파일로 넣게 된다.

액티비티는 이런 식으로 사용자와의 인터랙션 뿐만 아니라 같은 앱 내의 다른 액티비티 간 상호작용, 그리고 완전히 분리된 다른 앱의 액티비티와의 상호작용이 가능하다. 그야말로 슈퍼 인싸다.

Activity 세 줄 요약

  1. 액티비티는 사용자의 화면에 보여지는 놈이다.
  2. 보통 사용자에게 뭘 보여주거나 입력받으며 사용자와 상호작용을 수행한다.
  3. 같은 앱의 다른 액티비티, 아예 다른 앱의 액티비티와 티키타카가 가능하다.

다음 포스팅에선 사용자에게 보여지지 않는 동작을 수행하는 'Service' 에 대하여 알아보자.

profile
어려울수록 기본에 미치고 열광하라
post-custom-banner

0개의 댓글