리팩토링의 경계 — 무엇까지가 리팩토링인가
동작을 바꾸면 리팩토링이 아니다. 인접한 작업들과 갈라놓고, 좋은 리팩토링의 판단 기준을 정리한다
동작을 바꾸면 리팩토링이 아니다. 인접한 작업들과 갈라놓고, 좋은 리팩토링의 판단 기준을 정리한다
코루틴이 스레드와 어떻게 다른지, suspend 함수와 CoroutineScope·Job·Dispatcher가 하는 역할을 표와 예시로 정리한다.
suspend 함수가 컴파일 시점에 상태 머신으로 변환되는 과정을 바이트코드로 직접 확인하고, 콜백 기반 API 위에서 스레드를 블로킹하지 않고 중단·재개되는 동작을 재현한다.
리스트 원소 포함 여부를 반복 확인할 때 Set으로 미리 바꾸는 것과 그냥 List로 쓰는 것을 벤치마크로 비교하고, 차이의 근거를 stdlib 소스에서 찾는다
Kotlin 프로퍼티에 애노테이션을 붙일 때 field·get·set·param 중 어디로 갈지 정하는 use-site target을 표로 정리한다
use-site target이 왜 필요한지 실제 바이트코드를 javap로 확인한다