프로그래밍 언어로서 코틀린은 다양한 라이브러리들이 코루틴을 활요할 수 있도록 표준라이브러리를 통한 최소한의 기본적인 수준(low-level)의 API만을 제공합니다. 비슷한 기능을 가진 다른 프로그래밍 언어와는 다르게 async와 await는 코틀린에에서 뿐만 아니라 표준 라이브러리에서도 예약어(keyword)가 아닙니다. 더군다나 코틀린에서의 suspend function의 개념은 비동기 작업에 있어서 Promis나 Future보다 더 안전하고 에러로부터 자유로운 추상화를 제공합니다. kotlinx.coroutines은 JebBrains(Kotlin을 개발한 회사)에 의해 개발된 훌륭한(rich) 코루틴 라이브러리입니다. 이는 이 문서에서 다루는 코루틴에서 사용할 수 있는 여러개의 높은 수준(high-..
오늘부터 시간이 날 때마다 코루틴 공식 문서 읽기를 번역해서 올려보려고 합니다. Kotlin Coroutine 관련 스터디를 하고 있는데 이와 별개로 공식문서를 작은 Snippet 단위로 번역해보고 차근차근 읽어가보는게 도움이 될 것 같아서입니다. 링크는 번역 전에는 공식문서로 연결되고, 번역을 완료하면 포스팅된 글로 연결하겠습니다. 번역 우선순위는 자체적으로 판단해서 실무적으로 필요한 부분(실제 Kotlin Coroutine을 많이 사용하고 있기 때문에)부터 해볼 생각입니다. 저는 영어에 능통하지도 않고 번역과는 더더군다나 무관한 사람이기 때문에 잘못된 내용이 있을 수 있음을 참고해서 함께 읽어주시면 감사하겠습니다. 비동기나 논블로킹 프로그램은 개발환경에서 중요한 부분입니다. 서버나 데스크탑, 혹은 모..
Kotlin을 개발하다 보면 listOf()와 emptyList()를 자주 사용하게 되는데, 두 함수의 내부가 궁금해졌다. 결론부터 적어보자면, 표현식이 다를 뿐 listOf()와 emptyList()는 Immutable List를 만들어내는 함수들이다. 아래는 이에 대해 알아본 내용이니 시간 있다면 한 번 보는 것도 나쁘지는 않다. 일단 emptyList와 listOf는 모두kotlin.collections 패키지 안에 포함되어있다. Kotlin에서 제공하는 Collection 지원들인데, 그렇다면 어떤 것이 다를까? 일단 emptyList의 코드는 아래와 같다. /** * Returns an empty read-only list. The returned list is serializable (JVM)..