본문 바로가기
기타/Android

[Android] 안드로이드 앱의 기본 구조에 대해 알아보자

2024. 9. 12.

이번 포스팅에서는 Android 앱의 기본 구조에 대해 알아보려고 한다. 안드로이드 앱은 컴포넌트들로 구성되어 있으며, 컴포넌트는 안드로이드 시스템에서 관리하기 때문에 서로 생성하거나 직접 접근할 수 없다는 특징이 있다.

 

안드로이드 앱 개발의 특징

안드로이드 앱에서 가장 중요한 구성 요소인 컴포넌트에 대해 알아보자. 컴포넌트가 무엇이고, 어떤 종류가 있으며 어떤 특징이 있는지 알아보려고 한다.

 

컴포넌트 (Component)

의미

  • 애플리케이션의 구성 요소, 구성 단위
    • 하나의 애플리케이션은 여러 컴포넌트로 구성됨
  • 안드로이드에서도 컴포넌트의 기반을 두며, 클래스로 컴포넌트를 개발함
    • 하나의 컴포넌트 = 하나의 클래스
    • but 모든 클래스가 컴포넌트가 되는 것은 아님
  • 안드로이드 앱 = 컴포넌트 클래스 + 일반 클래스
    • 컴포넌트 클래스
      • 클래스의 객체 생명주기 관리를 안드로이드 시스템에서
      • 시스템에서 컴포넌트 클래스를 특별하게 관리하여 특정한 기능을 수행하게 함
    • 일반 클래스
      • 클래스의 객체 생명주기 관리를 개발자 코드에서
      • 개발자가 직접 객체를 생성한다는 것은 시스템의 컴포넌트 기능을 이용하지 않겠다는 것 ⇒ 일반 클래스로 이용하겠다는 것. 따라서 컴포넌트 클래스의 생명주기를 직접 관리하면 안 됨.

 

종류

  1. 액티비티 Activity
    • 화면을 구성하는 컴포넌트
    • 앱이 실행되면 액티비티에서 출력한 내용이 폰에 나옴
  2. 서비스 Service
    • 백그라운드 작업을 하는 컴포넌트
    • 화면과 상관 없이 백그라운드에서 장시간 실행해야 할 업무 담당
  3. 콘텐츠 프로바이더 Content Provider
    • 앱의 데이터를 공유하는 컴포넌트
    • 앱 간에 데이터를 공유하도록 해줌
    • ex) 카톡 앱에서 프로필을 변경할 때 갤러리 앱의 사진을 이용
  4. 브로드캐스트 리시버 Broadcast Receiver
    • 시스템 이벤트가 발생할 때 실행되게 하는 컴포넌트
    • ex) 부팅 완료, 배터리 방전 등의 시스템에서 발생하는 이벤트
  • 개발자가 컴포넌트를 만들 때 지정된 클래스를 상속받아야 함
    • Activiry, Service, ContentProvider, BroadcastReceiver
  • 컴포넌트는 개발자가 만들고자 하는 앱의 기능과 화면 등을 고려해서 필요한 만큼 구성

 

특징

  • 컴포넌트는 앱 안에서 독립된 실행 단위
    • 컴포넌트끼리 서로 독립적. 서로가 서로를 호출하거나 할 수 없음.
    • → 코드 결합이 발생하지 않음
    ex) A화면을 출력하는 A 액티비티, B화면을 출력하는 B 액티비티가 있을 때 A화면에서 B화면으로 넘어가는 방법?
    • A에서 B 객체를 생성할 수 없음! (클래스 결합 X)
    • → A가 안드로이드 시스템에 요청해서 B 액티비티를 실행해야 함
  • 앱 실행 시점이 다양함
    • 항상 같은 액티비티가 실행되는 것이 아님
    • 상황에 따라 다른 액티비티가 실행될 수 있음
      • 컴포넌트가 서로 독립적이기 때문에 가능
    • ⇒ 안드로이드 앱에는 main function(단일 시작점)이 없음
  • 애플리케이션 라이브러리 사용 가능
    • 다른 애플리케이션을 라이브러리처럼 이용할 수 있음
    • ex) 카톡 채팅 화면에서 카메라앱을 통해 사진을 찍고 사진을 받아와서 전송할 수 있음
      • → 카톡 앱이 카메라 앱을 라이브러리처럼 사용

 

리소스 (Resource)

안드로이드 앱 개발 시에는 리소스를 많이 활용

 

리소스

  • 코드에서 정적인 값을 분리한 것
  • ex) 문자열, 색상, 크기, 이미지
  • 대부분 xml 파일로 작성
  • 코드가 짧아져서 개발 생산성과 유지보수성이 좋아짐

 

 


위 포스팅은 아래 교재를 통해 학습한 내용을 기반으로 작성되었습니다.

 

  <Do it! 깡샘의 안드로이드 앱 프로그래밍 with 코틀린> 보러가기 ↓

 

Do it! 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 - 기타 자격증 | 쿠팡

쿠팡에서 4.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 1 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90

댓글