[Android] Kotlin DSL이란?

이황근·2024년 2월 10일

Android

목록 보기
1/9

오랜만에 안드로이드 스튜디오를 실행해서 프로젝트 생성을 해보니까 처음 보는 내용이 생겼다. DSL이 뭐지?
그래서 아래 보이는 3가지 옵션이 각각 무엇을 의미하는지 살펴 보려고 한다.

Kotlin DSL이 무엇인지 살펴보기 전에 DSL에 대해서 먼저 알아보자

DSL 이란?
Domain Specific Language의 약자로 도메인 특정 언어를 의미합니다.
연산과 작업을 조금 더 효율적으로 할 수 있도록 특정 도메인에서 '약속'을 한 언어라고 이해하면 편할 것 같습니다.

DSL과 정반대 의미를 가지는 용어는 GPL(General Purpose Language)로 범용 목적 언어입니다. GPS에서는 C, C++, Python 등 모든 문제를 해결할 수 있는 언어를 의미합니다.

DSL의 대표적인 예시로는 SQL이 있습니다. SQL은 모든 문제를 풀기 위해 만들어진 언어가 아니고 데이터베이스라는 특정 도메인에서 연산을 빠르게 하기 위해서 만들어진 언어입니다.

DSL의 대표적인 특징으로는 '선언적'방식의 문법을 가지고 있다는 것입니다. SQL로 예시를 들어보겠습니다. 아래와 같은 명령을 내리게 되면 저희는 알 수 없지만 알아서 내부 로직을 이용해서 결과를 도출해냅니다.

SELECT * FROM table 

이제 DSL에 대한 개념을 알아봤으니 Groovy DSL과 Kotlin DSL의 차이를 확인해보겠습니다.

Groovy DSL를 사용하여 build.gradle 을 작성하면

dependencies {
    def nav_version = "2.5.3"

    api "androidx.navigation:navigation-fragment-ktx:$nav_version"
}

Kotlin DSL를 사용하여 build.gradle을 작성하면

dependencies {
    val nav_version = "2.5.3"

    api("androidx.navigation:navigation-fragment-ktx:$nav_version")
}

약간의 차이를 확인할 수 있습니다.
여러 블로그에서는 Groovy를 Kotling으로 마이그레이션 하는 방법을 설명해두었는데 나는 이미 Kotlin DSL로 프로젝트를 생성을 했다. 사실 뭐가 차이인지 모르겠는데 좀 더 알아보고 자세하게 들을 작성하겠다.

참고 사이트
https://taes-k.github.io/2021/09/22/kotlin-dsl/

profile
낭만 개발자

0개의 댓글