Language/Kotlin 4

[Kotlin] 코루틴 - CoroutineScope 이해하기!

HTML 삽입 미리보기할 수 없는 소스 모든 Coroutine은 AbstractCoroutine을 상속한다. public abstract class AbstractCoroutine( parentContext: CoroutineContext, initParentJob: Boolean, active: Boolean ) : JobSupport(active), Job, Continuation, CoroutineScope { ... } 아래는 Coroutine의 특징이다. Coroutine은 Job, Continuation, CoroutinScope를 구현한다. CoroutineScope: Coroutine builder로 자식 Coroutine을 생성하고 관리 다음으로 CoroutineScope에 대해 알아보자..

Language/Kotlin 2024.04.20

[Kotlin] 코루틴 - CoroutineContext 이해하기!

HTML 삽입 미리보기할 수 없는 소스 코루틴 코루틴(Coroutine)은 Co(함께, 서로) + routine(규칙적 작업의 집합) 2개가 합쳐진 단어로 함께 동작하며 규칙이 있는 작업의 집합을 의미한다. 왜 Koroutine이 아니라 Coroutine인지 의아할 수 있는데 코루틴은 코틀린만의 것이 아니다. Python, C#, Go, Javascript 등 다양한 언어에서 지원하는 개념이다. JS의 async, await도 동일한 개념이고 코루틴은 프로그래밍 초창기부터 존재하던 개념이다. Kotlin Coroutines 코틀린에서는 코루틴을 위한 공식 라이브러리(kotlinx.coroutines)를 지원한다. 아래는 Kotlin Coroutines의 특징이다. 동시성을 위한 기능을 제공 Async N..

Language/Kotlin 2024.04.14

[Kotlin] 코루틴 - suspend 키워드 이해해보기!

HTML 삽입 미리보기할 수 없는 소스 코루틴 코루틴(Coroutine)은 Co(함께, 서로) + routine(규칙적 작업의 집합) 2개가 합쳐진 단어로 함께 동작하며 규칙이 있는 작업의 집합을 의미한다. 왜 Koroutine이 아니라 Coroutine인지 의아할 수 있는데 코루틴은 코틀린만의 것이 아니다. Python, C#, Go, Javascript 등 다양한 언어에서 지원하는 개념이다. JS의 async, await도 코루틴의 일부이며, 코루틴은 프로그래밍 초창기부터 존재하던 개념이다. vs Thread 코루틴은 경량 쓰레드라고 부른다. 아래는 여러 개의 쓰레드로 여러 개의 작업을 실행하는 방식이다. 코루틴은 작업 하나하나에 Thread를 할당하는 것이 아니라 Object를 할당한다. 쓰레드가 ..

Language/Kotlin 2024.04.02

Ktlint에서 라인 생성 Rule을 Disabled하기!

새로 합류한 팀에서 ktlint를 적용하다가 생긴 문제와 해결 방법에 대해 공유한다. 현재 팀에서 IntelliJ의 Ktlint 플러그인을 사용하고 있고 Actions on Save 기능을 사용해서 코드를 저장할 때마다 코드 스타일을 반영한다. 그런데 나한테만 기존 코드의 변경사항이 너무 많았다. 자꾸 라인이 아래와 같이 추가되고 있었다. 라인 추가되는 이슈 아래는 기존의 코드이다. fun getUserTypeCode(user: User): Any = when (user.type) { Type.MEMBER -> if (true) { 1 } else { 2 } Type.ADMIN -> if (true) { 2 } else { 1 } } 다른 팀원들 모두 이슈가 없는데, 내가 저장하면 아래와 같이 코드가 변..

Language/Kotlin 2024.03.02