코루틴3 [Kotlin] 동시성(Concurrency) 프로그래밍 #1 : 스레드 & 코루틴 [Kotlin] 동시성(Concurrency) 프로그래밍 #1 : 스레드 & 코루틴 안드로이드 애플리케이션과 같은 응용 프로그램들을 개발하다 보면 비즈니스 로직을 짤 때 스레드가 굉장히 많이 쓰이곤 한다. 특히 구글이 코틀린을 안드로이드의 메인 언어로 채택한 이후, 코틀린은 안드로이드 진영에서 이제 선택이 아닌 필수가 되었다. 그러므로 코틀린에서 어떻게 스레드를 다루고, 동시성 프로그래밍은 어떻게 하는지 정리해보도록 하겠다. 1. 프로세스와 스레드의 기본 개념 2. Kotlin에서 스레드와 코루틴 3. 코루틴의 우수성 프로세스와 스레드의 기본 개념 프로세스(Process) 프로세스(Process)는 보통 한 프로그램(Program)의 커다란 하나의 태스크(Task)를 말한다. 프로그램이 하나의 프로세스로.. 2022. 5. 26. [Kotlin] 코루틴 (Coroutine) #2 - 기본기 2 [Kotlin] 코루틴 (Coroutine) #2 - 기본기 2 첫 번째 코루틴 포스트에서 코루틴 빌더 중 launch만 살펴보았다. launch에 대한 더 자세한 내용과 또다른 빌더인 async를 알아보고 루틴의 작업(Job), 그리고 코루틴의 문맥에 대해 알아보겠다. 복습 1. 코루틴 스코프 : 루틴 작업이 정의되는 코드 영역 ex ) GlobalScope, CoroutineScope 2. 코루틴 빌더 : 코루틴 스코프를 생성하는 빌더 ex ) launch, async, runBlocking 이 포스트에서 공부할 것 1. 코루틴 빌더 : async 2. 작업(Job) 3. 코루틴 빌더 매개변수 코루틴 빌더 : async async는 launch 처럼 코루틴 스코프를 생성하는 코루틴 빌더이다. laun.. 2022. 2. 24. [Kotlin] 코루틴 (Coroutine) #1 - 기본기 1 [Kotlin] 코루틴 (Coroutine) #1 - 기본기 1 개념 코루틴은 동시성 프로그래밍을 위해 탄생하였으며, 일명 '루틴(Routine)' 이라고 불리는 논블로킹(Non-Blocking) 작업(Job)들을 정의한 뒤, 이것들을 조화롭게 활용하여 멀티태스킹을 수행하는 것을 말한다. 그래서 여러 루틴들의 협력한다하여 코(Co)루틴이다. (코틀린의 'Ko'도 아니고, 코틀린만의 개념도 아니다!) 논블로킹(Non-Blocking)은 현재 작업을 수행중인 메인스레드를 중단(Blocking)하지 않고, 백그라운드에서 작업을 수행하여 현재 스레드를 종료하지 않도록하는 비동기적 작업 수행을 말하는데, Java 에서는 쓰레드(Thread, Runnable)을 통해 이러한 작업 구현이 가능했다. 그러나 이런 비동.. 2022. 1. 10. 이전 1 다음