읽고 분석합니다. • 프로세서는 코드나 그 밖의 출력물을 생성합니다. • Kotlin Compiler 는 생성된 코드와 함께 소스 프로그램을 컴파일합니다. • 본격적인 컴파일러 플러그인과 달리, 프로세서는 코드를 수정할 수 없습니다. 언어 의미를 변경하는 컴파일러 플러그인은 때때로 매우 혼란을 초래할 수 있는데, KSP는 소스 프로그램을 읽기 전용으로 다룸으로써 이러한 문제를 피합니다.
싶은 부분 val count = it.tag as? Int ?: 0 it.tag = count + 1 Log.v(“TAG”, “count: ${it.tag}”) // 기존 로직 시작 Toast.makeText(this, “Hello World Droid knights!”, Toast.LENGTH_SHORT).show() } } 자동으로 코드 삽입 희망
러닝커브가 매우 높다. • 디버깅이 어렵다. • Rename, Package 이동 등으로 Descriptor 가 변경되었을 때 대응이 쉽지 않다. • 버전에 따라 동작이 달라질 수 있다. (AGP, Kotlin, Gradle, ASM 등) • 빌드 속도가 느려질 수 있다.
러닝커브가 매우 높다. • 디버깅이 어렵다. • Rename, Package 이동 등으로 Descriptor 가 변경되었을 때 대응이 쉽지 않다. • 버전에 따라 동작이 달라질 수 있다. (AGP, Kotlin, Gradle, ASM 등) • 빌드 속도가 느려질 수 있다.