Kotlin DSL 완벽 가이드 - 읽기 쉽고 유연한 코드 작성하기
✨ 개요
DSL(Domain Specific Language)은 특정 도메인 문제를 간결하게 해결할 수 있도록 만든 “작은 언어”입니다. Kotlin은 람다, 확장 함수, 인라인 함수 덕분에 DSL 작성에 특히 유리하며, Gradle, Anko, Jetpack Compose 등에서 많이 사용됩니다.
1. 🧩 Kotlin DSL의 장점
- 선언적이고 가독성 높은 코드
- 특정 영역(도메인)에 특화된 API 구성 가능
- 유지보수가 쉽고, 의도를 잘 표현
2. ⚙️ DSL 작성 핵심 기술
- 람다 with receiver (수신객체 지정 람다)
- 확장 함수
- 인라인 함수
fun html(block: HtmlBuilder.() -> Unit): HtmlBuilder {
val builder = HtmlBuilder()
builder.block()
return builder
}
3. 📝 DSL 예제
html {
head {
title("My Page")
}
body {
h1 { +"Welcome!" }
p { +"Kotlin DSL is powerful." }
}
}
위처럼 마치 HTML 태그를 작성하는 것 같은 DSL을 구현 가능하며, 이를 통해 선언적 UI, 설정 파일, 빌드 스크립트 등에 활용할 수 있습니다.
4. 🧾 결론
Kotlin DSL은 가독성, 선언적 구성, 도메인 특화라는 세 가지 강점을 바탕으로 현대 Kotlin 생태계에서 점점 더 중요해지고 있습니다. 람다와 확장함수, 인라인 함수를 결합해 자신만의 DSL을 만들어 보세요.