프로그래머로의 여정

Kotlin Script 파일

nunaaa 2025. 10. 18. 04:40

.kts 파일은 Kotlin Script 파일의 확장자입니다. 일반적인 Kotlin 파일(.kt)과 구별되는 주요 특징과 용도를 설명해 드리겠습니다.

핵심 개념

일반 Kotlin(.kt)이 정형화된 애플리케이션을 개발하는 데 사용된다면, Kotlin Script(.kts)는 스크립팅, 자동화, 빠른 프로토타이핑에 특화된 것입니다.


일반 Kotlin (.kt) vs Kotlin Script (.kts)

특징 일반 Kotlin (.kt) Kotlin Script (.kts)
구조 main 함수, 클래스 등 정형화된 구조 필요 최상위 수준의 실행 코드만으로도 가능
컴파일 먼저 컴파일(.class) 후 실행 스크립트 엔진이 즉시 실행 (또는 내부적으로 컴파일)
목적 프로덕션 애플리케이션, 라이브러리 빌드 스크립트(Gradle KTS), 구성 파일, 유틸리티 스크립트
실행 kotlinc로 컴파일 후 java로 실행 kotlinc 또는 kotlin 명령어로 직접 실행

Kotlin Script (.kts)의 주요 특징

  1. 간결한 문법
    • main 함수 없이 바로 코드를 작성할 수 있습니다.
      // hello.kts
      println("Hello, Kotlin Script!")
      val name = "World"
      println("Hello, $name!")
  2. 파일 I/O 및 외부 프로세스 실행 용이
    • 스크립팅에 유용한 기능들을 더 적은 코드로 사용 가능합니다.
      // fileops.kts
      val lines = java.io.File("data.txt").readLines()
      lines.forEach { println(it) }
      
    // 외부 프로세스 실행 (예: ls 명령어)
    "ls -al".runCommand()
  3. 의존성 선언 가능
    • 스크립트 내부에서 직접 외부 라이브러리를 가져와 사용할 수 있습니다.
      @file:DependsOn("com.google.code.gson:gson:2.8.9")
      
    import com.google.gson.Gson
  4. val gson = Gson()
    // ... Gson 라이브러리 사용

실행 방법

  1. Kotlin Compiler(kotlinc) 사용
  2. kotlinc -script my_script.kts
  3. Kotlin Runner(kotlin) 사용
  4. # .kts 파일을 직접 실행 kotlin my_script.kts

가장 대표적인 사용 예시: Gradle Kotlin DSL (.gradle.kts)

Kotlin Script의 가장 성공적인 적용 사례는 Gradle 빌드 시스템입니다. 기존 Groovy로 작성되던 Gradle 빌드 스크립트(build.gradle)를 Kotlin으로 대체한 것이 build.gradle.kts 파일입니다.

Groovy (build.gradle):

plugins {
    id 'java'
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

Kotlin DSL (build.gradle.kts):

plugins {
    java
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
}

이를 통해 타입 안전성, 더 나은 IDE 지원(자동 완성, 탐색, 리팩토링), 디버깅 용이성 등의 이점을 얻을 수 있습니다.

다른 사용 예시

  • 빠른 데이터 처리 스크립트: CSV/JSON 파일을 읽어 간단히 가공하고 결과 출력.
  • 배치 작업 자동화: 정기적으로 수행해야 하는 파일 정리, 백업, 리포트 생성 등.
  • 구성 스크립트: 환경에 따라 동적으로 설정 값을 생성.

결론

.ktsKotlin의 강력한 언어 기능을 스크립팅이라는 가벼운 목적으로 활용할 수 있게 해주는 파일 형식입니다. 복잡한 애플리케이션 개발보다는 간단한 유틸리티, 빌드/배포 자동화, 프로토타이핑 등에서 Python이나 Bash 스크립트를 대체하거나 보완하는 역할을 합니다. 특히 Gradle Kotlin DSL의 등장으로 그 중요성과实用性이 매우 커졌습니다.