코린이 탈출기
chapter 9.3 - Process, Thread, Handler 본문
chapter 9.3 - Process, Thread, Handler
50HEE 2021. 5. 26. 13:53Process - 한 대의 컴퓨터(OS) 안에서 여러 가지 작업을 동시에 실행할 때 사용되는 각각의 작업의 단위를 의미합니다.
컴퓨터를 한대 구매한다고 생각해봅시다. 아마 CUP, RAM, HDD / SSD, 그래픽 카드, 메인 보드 등을 구매할 것입니다.
CPU는 컴퓨터의 두뇌로 연산 / 계산을 주로 담당합니다.
계산 또는 연산이란 덧셈, 뺄셈 등과 같은 숫자 계산뿐만 아니라 글자를 불러오거나 기능을 실행할 때 어떤 모양을 부를 것인지를 실행하는 것도 포함합니다.
이러한 CPU는 기본적으로 한 번에 하나의 작업만 수행할 수 있습니다.
우리는 음악을 재생하면서 인터넷 쇼핑을 하는 등 여러 개의 프로그램을 동시에 이용하고 있습니다.
하지만 CPU는 하나의 작업만 가능하다고 하였으므로 위와 같은 동작은 불가합니다.
이를 가능할 수 있는 이유는 실제로는 한 가지 프로그램을 잠깐 실행했다가 다른 한 가지 동작으로 넘어가 실행하는 것입니다.
즉, 번갈아 가면서 동작하는 것입니다.
이 순간순간 넘어가는 것이 너무 순식간이라서 사람은 이를 인지 못하고 동시에 실행된다고 생각합니다.
정리하면 CPU는 여러 개의 프로그램을 아주 짧은 간격으로, 각각의 딜레이를 사람이 인지하지 못할 정도로 빠르게 순환시키면서 실행합니다.
동시에 여러 개를 돌리기 위한 하나하나의 작업들을 프로세스라고 합니다.
이를 알아볼 수 있는 방법 중에는 마우스를 빠르게 움직이면 잔상이 남는 것과 같습니다.
다른 방법으로는 윈도우를 사용하는 분의 경우에는 'CTRL + SHIFT + ESC'를 누르면 지금 작업 중인 프로그램들을 볼 수 있습니다.

위의 작업 하나하나를 프로세스라고 부릅니다.
Thread - 하나의 프로그램(App) 안에서 돌아가는 프로세스 같은 개념입니다.
프로세스의 경우에는 동작을 실행시키는 곳이 컴퓨터 내에서 합니다.
반면 스레드의 경우에는 하나의 프로그램 안에서 실행합니다.
예를 들면 이전에는 영상을 보기 위해서는 다운로드를 받은 후에 재생이 가능했습니다.
하나의 행동을 마치고 나서야 다음의 행동이 가능하기 때문에 스레드가 적용되지 않습니다.
하지만 유튜브를 보면 영상을 다운로드하면서 동시에 재생을 할 수 있습니다.
하나의 행동이 끝나지 않았어도 다른 행동을 동시에 가능하게 하는 것이 스레드의 개념입니다.
Handler - 안드로이드에서 스레드처럼 동작하도록 도와주는 클래스입니다.
시간이 오래 걸리는 작업들은 따로 백그라운드 처리하는 것이 편합니다.
예를 들면 네트워크 통신을 말합니다.
하지만 사용자가 이러한 작업들이 처리되는 동안 보고 있는 화면(UI)이 멈춰있다면 사용자가 불편함을 느끼거나 앱이 죽었다고 느낄 수 있습니다.
이 불편함을 줄이기 위해 UI는 계속 사용자의 간단한 동작을 받을 수 있도록 유지하고, 다운로드 같은 다른 작업은 별개의 핸들러를 통해서 실행하도록 합니다.
이를 사용하는 방법 중 하나인 postDelayed 함수가 있습니다.
이 함수의 사용법은 다음 챕터를 통해 다루어보겠습니다.
'인터넷 강의 > 클래스101 - 비전공자들을 위한 나만의 안드로이드 앱 만들기' 카테고리의 다른 글
| chapter 9.5 - 안드로이드 액티비티의 생명주기 개념 이해 (0) | 2021.06.01 |
|---|---|
| chapter 9.4 - Handler - postDelayed (0) | 2021.05.26 |
| chapter 9.2 - manifest - 앱 정보사항 관리 (0) | 2021.05.25 |
| chapter 9.1 - mipmap - 앱 아이콘 제작 (0) | 2021.05.25 |
| chapter 8.4 - 방 목록 보여주기 (3) - Serializable을 활용한 방 상세보기 (0) | 2021.05.24 |