Kotlin 14

[Kotlin] CoroutineContext

CoroutineContext코틀린에서 코루틴을 실행할 때 사용하는 컨텍스트를 나타내는 인터페이스Spring MVC와 같이 thread-per-request 모델에서는 ThreadLocal을 사용하지만 Reactor나 코루틴처럼 각 요청을 처리할 때마다 수행하는 쓰레드가 변경되기 때문에 특정 쓰레드에 종속되는 ThreadLocal에 접근 불가이에 따라 Reactor에서는 Context, 코루틴에서는 CoroutineContext를 사용하여 파이프라인 context를 저장CoroutineContext는 코루틴의 동작을 커스터마이징하고, 실행 쓰레드나 예외 처리, 디버깅 정보 등을 포함하는 요소들을 담고 있음 1. Continuationsuspend 함수는 다양한 쓰레드에서 실행되기 때문에 ThreadLoc..

Kotlin 2024.10.03

[Kotlin] 코루틴 (Coroutine) 기초

1. suspend 함수코틀린 코루틴에서 비동기적으로 실행할 수 있는 특수한 함수로코루틴 내에서 중단 가능(suspension) 한 작업을 처리할 수 있도록 설계됨실행 일시 중단 가능나중에 다시 실행 재개할 수 있는 특징 지님 코루틴 내에서 네트워크 요청이나 파일 읽기/쓰기와 같이 특정 작업을 대기해야 할 때 CPU 리소스를 낭비하지 않고, 효율적으로 다른 작업 처리 가능 1.1 suspend 함수 특징코루틴 내에서만 실행 가능: suspend 함수는 오직 코루틴 내에서만 호출될 수 있으며 코루틴 범위 밖에서는 직접 호출 불가중단 및 재개 가능: 앞서 언급했다시피 suspend 함수는 중간에 실행을 멈추고, 나중에 다시 이어서 실행 가능비동기 작업 처리: suspend 함수는 일반 함수와 달리 비동기 작..

Kotlin 2024.10.02

[Kotlin] 코루틴 (Coroutine) 개요

코루틴Kotlin Serialization, Kotlin Lincheck과 함께 코틀린에서 지원하는 공식 라이브러리로 동시성을 지원하는 라이브러리기존의 쓰레드 기반 비동기 프로그래밍의 복잡성과 성능 한계를 극복하기 위해 설계되었으며, 동시성을 처리하는 강력한 도구비동기 non-blocking으로 동작하는 코드를 동기 방식으로 작성할 수 있도록 지원단, 컴파일된 후의 결과는 동지적으로 동작하지 않음 CoroutineContext를 통해 Dispatcher, Error Handling, 그리고 ThreadLocal 등을 지원CoroutineScope를 통해 Structured Concurrency와 Cancellation 제공Flow, Channel 등의 심화 기능 제공 1. kLogger코틀린에서 로깅을 ..

Kotlin 2024.10.02

[Kotlin] lateinit과 by lazy의 차이점

개요 회사와 연계해서 진행하는 패스트캠퍼스 코틀린 안드로이드 강의를 듣는 도중 생소한 개념인 lateinit과 by lazy 키워드가 등장했습니다. 다행히 holika님이 잘 정리해주신 글이 있어 개념은 이해할 수 있었지만 아직 정확한 사용처는 파악하지 못했습니다. 프로젝트를 진행하면서 사용하는 케이스가 나왔을 때 해당 게시글에 추가 작성하도록 하겠습니다. https://holika.tistory.com/entry/%EB%82%B4-%EB%A7%98%EB%8C%80%EB%A1%9C-%EC%A0%95%EB%A6%AC%ED%95%9C-Kotlin-lateinit%EA%B3%BC-by-lazy%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90 [내 맘대로 정리한 Kotlin] lateinit과..

Kotlin 2022.07.13