본문 바로가기

Language/Kotlin2

[Kotlin] KAPT와 KSP 들어가기 전 KAPT와 KSP를 이해하려면, 결국 자바 어노테이션 프로세서부터 봐야 한다. 코틀린에서 KAPT와 KSP를 논하기 전에 반드시 짚고 넘어가야 할 전제가 하나 있다. KAPT와 KSP는 “코틀린의 기능”이 아니라, 자바 어노테이션 프로세싱이라는 오래된 JVM 생태계의 설계를 어떻게 수용하거나, 혹은 거부할 것인가에 대한 선택지다. 자바의 어노테이션 프로세서는 컴파일러 확장 포인트로서 설계되었다. 소스 코드에 선언된 어노테이션을 읽고, 그 정보를 기반으로 새로운 소스 코드를 생성하는 메커니즘이다. 대표적으로 Lombok, MapStruct, Dagger, QueryDSL 같은 라이브러리들이 이 메커니즘 위에서 동작한다. 중요한 점은 이 시스템이 자바 컴파일러(javac)의 타.. 2026. 2. 13.
[Kotlin] Kotlin DSL DSL이란DSL(Domain-Specific Language) 은 특정 도메인의 문제를 다루기 위해 설계된 전용 언어입니다. 일반적인 프로그래밍 언어인 GPL(General Purpose Language) 이 다양한 문제를 폭넓게 해결하도록 만들어진 범용 언어라면, DSL은 반대로 특정 영역에만 집중해 표현력을 극대화한 언어라고 볼 수 있습니다. 대표적인 DSL에는 SQL, HTML, CSS, 정규표현식(Regex) 등이 있습니다. 이들은 각각 데이터 질의/조작, 문서 구조 정의, 스타일링, 문자열 패턴 매칭처럼 명확한 목적을 갖는 도메인에서 매우 강력한 표현력을 보여줍니다. 예를 들어 SQL(Structured Query Language)은 데이터 필터링과 정렬을 직관적으로 표현할 수 있는 대표적인 D.. 2025. 12. 3.