본문 바로가기
프로그래머로의 여정

Kotlin Script 파일

by nunaaa 2025. 10. 18.

.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의 등장으로 그 중요성과实用性이 매우 커졌습니다.

'프로그래머로의 여정' 카테고리의 다른 글

소스 코드 빌드(Build)란  (0) 2025.10.19
Android 프레임워크 컴포즈(Compose)  (1) 2025.10.18
props in React  (0) 2025.09.05
props.children  (0) 2025.09.05
[코드분석] 코드에서 key의 의미  (0) 2025.09.04