1. launch란?launch는 새로운 코루틴을 시작하는 코루틴 빌더입니다. 비동기적으로 작업을 시작하며, 결과를 반환하지 않는다는 점에서 async와 차별됩니다.코루틴을 시작하는 함수로, 실행된 코루틴은 비동기로 동작합니다.경량 스레드와 비슷한 개념으로, 별도의 스레드를 차지하지 않고 코루틴이 독립적으로 실행됩니다.launch로 생성된 코루틴은 결과값을 반환하지 않으며, 종료된 시점을 명시적으로 기다리거나 확인할 필요가 없을 때 사용합니다.간단한 예제 (launch):import kotlinx.coroutines.*fun main() = runBlocking { // launch를 사용해 새로운 코루틴을 시작 launch { delay(1000L) println("..
2. 코루틴 스코프 및 컨텍스트2.1 코루틴 스코프(Coroutine Scope)란?코루틴 스코프는 코루틴의 수명을 관리하는 역할을 합니다. 코루틴은 스코프 내에서만 실행되며, 스코프가 종료되면 그 스코프 내에서 실행된 모든 코루틴도 자동으로 취소됩니다. 이는 구조화된 동시성을 구현하는 중요한 개념으로, 비동기 작업이 여러 개 실행되더라도 일정한 흐름 안에서 안전하게 관리될 수 있도록 해줍니다.코루틴은 여러 개의 스코프에서 동작할 수 있으며, 대표적으로 두 가지 스코프를 사용할 수 있습니다:GlobalScope: 앱이 종료되기 전까지 코루틴이 계속 실행됩니다. 하지만 자원을 낭비할 수 있기 때문에 권장되지 않습니다.CoroutineScope: 특정한 범위에서만 코루틴이 실행되며, 해당 범위가 끝나면 코루..
1. 코루틴의 기초 개념1.1 코루틴이란 무엇인가?코루틴(Coroutines)은 비동기 작업을 쉽게 처리하기 위한 경량 스레드라고 생각할 수 있습니다. 코틀린의 코루틴은 실제 스레드를 차지하지 않으면서도 비동기 작업을 수행할 수 있습니다. 비동기 프로그래밍의 복잡함을 줄이고, 코드가 동기적으로 실행되는 것처럼 보이면서도 효율적인 비동기 작업을 가능하게 해줍니다.1.2 코루틴의 장점과 스레드와의 차이점경량성: 코루틴은 스레드에 비해 매우 가볍습니다. 수천 개의 코루틴이 실행되더라도 시스템 리소스를 많이 차지하지 않습니다.비동기 처리: 코루틴은 비동기 처리를 단순하게 만듭니다. 기존의 스레드를 사용한 비동기 처리에 비해 코드가 더 직관적입니다.중단 및 재개 가능: suspend 키워드를 통해 코루틴은 일시 ..