#Kotlin

리팩토링의 경계 — 무엇까지가 리팩토링인가

동작을 바꾸면 리팩토링이 아니다. 인접한 작업들과 갈라놓고, 좋은 리팩토링의 판단 기준을 정리한다

·리팩토링·기본개념, 리팩토링, Kotlin

코틀린 코루틴 기본 개념 정리

코루틴이 스레드와 어떻게 다른지, suspend 함수와 CoroutineScope·Job·Dispatcher가 하는 역할을 표와 예시로 정리한다.

·Kotlin·기본개념, Kotlin, 코루틴

코틀린 suspend 함수는 스레드 없이 어떻게 중단하고 재개하는가

suspend 함수가 컴파일 시점에 상태 머신으로 변환되는 과정을 바이트코드로 직접 확인하고, 콜백 기반 API 위에서 스레드를 블로킹하지 않고 중단·재개되는 동작을 재현한다.

·Kotlin·파고들기, Kotlin, 코루틴, 바이트코드

Kotlin List.contains를 Set으로 바꾸면 빨라지는 이유

리스트 원소 포함 여부를 반복 확인할 때 Set으로 미리 바꾸는 것과 그냥 List로 쓰는 것을 벤치마크로 비교하고, 차이의 근거를 stdlib 소스에서 찾는다

·Kotlin·파고들기, Kotlin, 컬렉션, 성능

Kotlin 애노테이션 use-site target

Kotlin 프로퍼티에 애노테이션을 붙일 때 field·get·set·param 중 어디로 갈지 정하는 use-site target을 표로 정리한다

·Kotlin·기본개념, Kotlin, 애노테이션

Kotlin 프로퍼티가 여러 JVM 요소로 컴파일되는 이유

use-site target이 왜 필요한지 실제 바이트코드를 javap로 확인한다

·Kotlin·파고들기, Kotlin, 애노테이션, 바이트코드