안드로이드 실전 pt 9

황일규·2023년 10월 26일
0

컴포넌트 (Component) 종류
안드로이드는 4가지의 컴포넌트, 즉 액티비티(Activity), 서비스(Service), 브로드 캐스터(BroadCast Receiver), 콘텐츠 제공자(Content Provider)가 있다. 각각의 컴포넌트는 고유의 기능을 가지고 있고, 인텐트를 통해 서로 상호작용을 할 수 있다.

안드로이드 컴포넌트
1. 액티비티(Activity)
액티비티는 사용자가 앱과 상호작용하는 하나의 화면을 의미하며 사용자에게 드러나는 화면을 의미한다.

사용자와 상호작용을 담당하는 인터페이스이기 때문에 적어도 반드시 하나 이상의 액티비티를 포함하고 있어야 한다.

컴포넌트끼리는 인텐트를 통해 상호작용하기 때문에, 인텐트를 통해 다른 액티비티를 호출할 수 있다. 또한 하나 이상의 View 또는 ViewGroup을 포함하고 있어야 한다. 액티비티 내에 프래그먼트(Fragment)를 추가하여 화면을 분할시킬 수 있다.

  1. 서비스(Service)
    서비스는 사용자와 직접적으로 상호작용하지는 않는다.

이것은 백그라운드에서 어떠한 작업을 처리하기 위해서 사용하는데, 애플리케이션을 사용하면서 파일을 다운로드할 때 서비스를 사용한다.

서비스는 눈에 보이지 않는다고 다른 스레드에서 동작한다고 생각하지만 사실은 메인 스레드에서 동작한다. 따라서 서비스 내에서 별도의 스레드를 생성하여 작업을 처리하여야 한다.

네트워크와 연동이 가능하고, 애플리케이션이 종료되어도 이미 시작된 서비스는 계속 동작한다.

  1. 브로드 캐스터(BroadCast Receiver)
    브로드 캐스터는 안드로이드 OS로부터 발생하는 각종 이벤트와 정보를 받아와 핸들링하는 컴포넌트이다.

브로드 캐스터는 사용자 인터페이스를 표시하지 않지만, 상태 표시줄 알림을 생성하여 사용자에게 이벤트가 발생했다고 알릴 수 있다.

  1. 콘텐츠 제공자(Contents Provider)
    콘텐츠 제공자는 파일 시스템, SQLite 데이터베이스, 웹상이나 앱에 액세스할 수 있는 다른 모든 영구 저장 위치에 저장 가능한 앱 데이터의 공유형 집합을 관리한다. 작은 데이터들은 인텐트로 데이터를 공유할 수 있지만, 콘텐츠 제공자는 음악이나 사진 파일과 같이 용량이 큰 데이터들을 공유할 때 사용한다.

구성 요소 활성화 : 인텐트(Intent)
구성 요소 중 콘텐츠 제공자를 제외한 액티비티, 서비스, 브로드캐스터는 인텐트라는 비동기식 메시지로 활성화된다.

인텐트는 런타임에서 각 구성 요소를 바인딩한다. 서로 독립적으로 동작하는 4대 컴포넌트 간의 상호 통신을 위한 장치이다. 컴포넌트에 액션이나 데이터를 전달한다. 이것을 통해 다른 앱의 컴포넌트를 활성화시킬 수 있다.

객체지향 프로그래밍(Object Oriented Programming)

  • 모든 데이터를 객체(Object)로 취급하여, 객체가 처리 요청을 받았을 때, 객체 내부에 있는 기능을 가져와 사용해 처리하는 기법
  • 모든 객체가 내부의 자료형(Field)와 함수(Method)로 구성된 프로그래밍 구조를 의미.
  • 장점
    => 코드의 재사용이 가능하다.(유지보수에 좋다)
    => 분석과 설계의 전환이 쉽다.
  • 단점
    => 처리 속도가 상대적으로 느리다.
    => 설계에 많은 시간이 소요된다.
  • 4가지 특정
    => 추상화 : 공통된 속성에만 중점을 두어 모델화
    => 캡슐화 : 데이터와 함수를 하나로 묶는 것
    => 상속성 : 상위 부모 객체의 속성과 특징을 하위 객체가 물려받는 것
    => 다형성 : 같은 함수가 있어도 매개변수에 따라 각자 다른 일을 하는 것
  • 객체지향 프로그래밍 언어 : Java, Python
    함수형 프로그래밍(Functional Programming)
  • 순수 함수를 사용해, 상테를 제어하기보단, 빠르게 처리하는데 초점을 둔 방법.
  • 실행 순서를 지정할 필요가 없어 비절차형 언어라고도 한다.
  • 장점
    => 코드에서 프로그램의 실행에 영향을 미치는 영역과 순수한 영역을 최대한 분리한다.
    => 코드의 가독성이 높아지고, 유지보수가 좋아진다.
    => 테스트가 쉬워진다.
  • 단점
    => 외부 데이터 혹은 내부 데이터의 상태를 조작할 수 없다.
  • 함수형 프로그래밍 언어 : Haskell, OCamal 등
profile
Never give up

0개의 댓글

관련 채용 정보