Kotlin

들어가며 안녕하세요! java21 LTS version 이 신규 출시됨에 따라 많이 관심을 받고 있는 Virtual thread 에 대해 이야기해보고자 하는데요 Virtual thread 는 기존에 동작하는 Platform thread 에서 동작하며, I/O blocking 발생시 중단(suspend) 지점을 stack 으로 옮겨, I/O block 되는 시간동안 다른 일들을 더 수행할 수 있게 지원하는 경량화 쓰레드라고 할 수 있습니다. 따라서 java 진영에서는 기존에 thread-per-request style 를 갖춘 application server 에서 I/O blocking 으로 인해 아무것도 하는일이 없는데도 task 를 처리할 수 없는 상황들로 인해 병목이 되는 부분들을 해결할 수 있어 ..
안녕하세요~! 이전에 Coroutine 에 대한 기본 개념들을 알아보았죠 이제 학습했던 Coroutine 기본 지식들을 기반으로 Spring Webflux 에 접목시킬 시간인데요. 어떻게 Spring Webflux 에서는 Coroutine 을 접목시켰는지 코드를 보면서 연결 포인트들을 알아보려고 합니다. 혹시나 Coroutine 에 익숙하지 않거나 개념을 모르신다면 아래 게시글을 참조해주세요 ^-^ https://huisam.tistory.com/entry/coroutine2 [Kotlin] Coroutine - 2. CoroutineScope & Context & Dispathcer 을 파헤쳐보자 Coroutine 이전 시간에는 코루틴의 동작원리와 동시성 과 병렬성 의 차이에 대해 알아보았습니다. ht..
안녕하세요~! ㅎㅎ 오늘은 kotlin 에서 Annotation 에 대해 알아보도록 할게요. 개발을 진행하다보면 custom 한 validation annotation 을 만들거나, spring aop 혹은 여러 유틸들을 만들때 유용하게 사용되는데요. Java 와는 약간 다른 컨셉으로 kotlin 에서는 정의되어 있다보니, 하나씩 차근차근히 봐보도록해요. Annotation kotlin 의 어노테이션을 코드와 함께 살펴보도록 해봅시다. @Target( AnnotationTarget.FIELD, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.P..
안녕하세요~! Coroutine 에서 제공하는 다양한 Interfa ce 중에서 Queue 와 비슷한 개념을 가진 Channel 에 대해서 알아볼려고 해요 Channel 이란 Channel 은 쉽게 말씀드리면 데이터를 stream 처럼 전송하기 위한 인터페이스라고 보시면 됩니다. 마치 Kafka 처럼 데이터를 제공하는 producer 와 데이터를 소비하는 consumer 의 형태로 구성됩니다. 위 그림처럼 인터페이스도 데이터를 제공하는 SendChannel 과 데이터를 소비하는 ReceiveChannel 로 이루어진 것을 볼 수 있죠. public interface SendChannel { public suspend fun send(element: E) } public interface ReceiveCh..
Coroutine 안녕하세요~ 오늘은 Coroutine 을 구현할 때 예외 처리에 대한 방법을 알아보도록 해볼려고 해요 흔히들 kotlin 에서는 try catch 문을 활용해서 예외를 핸들링 하거나 runCatching 문을 통해서 Result 객체를 기반으로 처리를 많이 하게 되는데요. Coroutine 에서는 직접적으로 예외를 catch 해서 하는 방식보다 다양한 방식으로 예외처리하는 유틸들을 제공한답니다. 하나씩 알아보도록 해보죠~! 🤗 Coroutine Hierarchy 예외에 대해 직접적으로 살펴보기전에 우리는 Coroutine 의 계층 구조를 알아볼 필요성이 있습니다. Coroutine 에서의 구조는 계층 구조를 띄고 있습니다. 부모로부터 호출된 coroutine 은 자식의 성격을 띄고, 자..
안녕하세요 ^^ 우리는 이전 게시글들을 통하여 Coroutine 이 어떤 구조로 이루어져 있고, 어떤 방식으로 동작하게 되는 것인지를 알게 되었어요. [Kotlin] Coroutine - 2. CoroutineScope & Context & Dispathcer 을 파헤쳐보자 Coroutine 이전 시간에는 코루틴의 동작원리와 동시성 과 병렬성 의 차이에 대해 알아보았습니다. https://huisam.tistory.com/entry/coroutine1 [Kotlin] Coroutine - 1. 코루틴에서 동시성이란? 코루틴이란? 같은 프 huisam.tistory.com 이번에는 Coroutine 에서 활용되는 데이터 스트림인 Flow 에 대해서 학습하고 어떻게 활용할 수 있을지에 대해 배워보겠습니다. ..
huisam
'Kotlin' 태그의 글 목록