Skip to content

Kotlin/JavaScript

Kotlin/JavaScript (Kotlin/JS)를 사용하면 Kotlin 코드, Kotlin 표준 라이브러리 및 모든 호환되는 종속성을 JavaScript로 트랜스파일할 수 있습니다. 이를 통해 Kotlin 애플리케이션은 JavaScript를 지원하는 모든 환경에서 실행될 수 있습니다.

Kotlin Multiplatform Gradle 플러그인(kotlin.multiplatform)을 통해 Kotlin/JS를 사용하면 JavaScript를 대상으로 하는 Kotlin 프로젝트를 한곳에서 설정하고 관리할 수 있습니다.

Kotlin Multiplatform Gradle 플러그인은 애플리케이션 번들링 제어 및 npm에서 JavaScript 종속성을 직접 추가하는 것과 같은 기능에 대한 접근을 제공합니다. 사용 가능한 구성 옵션에 대한 개요는 Kotlin/JS 프로젝트 설정을 참조하세요.

Kotlin/JS의 현재 구현은 ES5ES2015 표준을 대상으로 합니다.

Kotlin/JS 사용 사례

다음은 Kotlin/JS를 사용하는 몇 가지 일반적인 방법입니다.

  • 프런트엔드와 JVM 백엔드 간에 공통 로직 공유

    백엔드가 Kotlin 또는 다른 JVM 호환 언어로 작성된 경우, 웹 애플리케이션과 백엔드 간에 공통 코드를 공유할 수 있습니다. 여기에는 데이터 전송 객체(DTO), 유효성 검사 및 인증 규칙, REST API 엔드포인트 추상화 등이 포함됩니다.

  • Android, iOS 및 웹 클라이언트 간에 공통 로직 공유

    웹 인터페이스와 Android 및 iOS용 모바일 애플리케이션 간에 비즈니스 로직을 공유하면서 네이티브 사용자 인터페이스를 유지할 수 있습니다. 이는 REST API 추상화, 사용자 인증, 폼 유효성 검사 및 도메인 모델과 같은 공통 기능의 중복을 방지합니다.

  • Kotlin/JS를 사용하여 프런트엔드 웹 애플리케이션 구축

    기존 도구 및 라이브러리와 통합하면서 Kotlin을 사용하여 전통적인 웹 프런트엔드를 개발하세요.

    • Android 개발에 익숙하다면, Kobweb 또는 Kilua와 같은 Compose 기반 프레임워크를 사용하여 웹 애플리케이션을 구축할 수 있습니다.

    • JetBrains에서 제공하는 일반 JavaScript 라이브러리를 위한 Kotlin 래퍼를 사용하여 Kotlin/JS로 완전히 타입 안전한 React 애플리케이션을 구축하세요. Kotlin 래퍼(kotlin-wrappers)는 React 및 기타 JavaScript 프레임워크를 위한 추상화 및 통합을 제공합니다.

      이러한 래퍼는 React Redux, React Router, styled-components와 같은 보완 라이브러리도 지원합니다. 또한 JavaScript 생태계와의 상호 운용성을 통해 서드파티 React 컴포넌트 및 컴포넌트 라이브러리를 사용할 수도 있습니다.

    • Kotlin 생태계와 통합되어 간결하고 표현력이 풍부한 코드를 지원하는 Kotlin/JS 프레임워크를 사용하세요.

  • 이전 브라우저를 지원하는 멀티플랫폼 애플리케이션 구축

    Compose Multiplatform을 사용하면 Kotlin으로 애플리케이션을 구축하고 웹 프로젝트에서 모바일 및 데스크톱 사용자 인터페이스를 재사용할 수 있습니다. Kotlin/Wasm이 이 목적의 주요 대상이지만, Kotlin/JS도 대상으로 하여 이전 브라우저로 지원을 확장할 수 있습니다.

  • Kotlin/JS를 사용하여 서버 측 및 서버리스 애플리케이션 구축

    Kotlin/JS의 Node.js 대상은 JavaScript 런타임에서 서버 측 또는 서버리스 환경용 애플리케이션을 생성할 수 있도록 합니다. 이는 빠른 시작과 낮은 메모리 사용량을 제공합니다. kotlinx-nodejs 라이브러리는 Kotlin에서 Node.js API에 대한 타입 안전 접근을 제공합니다.

사용 사례에 따라 Kotlin/JS 프로젝트는 Kotlin 생태계의 호환 라이브러리 및 JavaScript와 TypeScript 생태계의 서드파티 라이브러리를 사용할 수 있습니다.

Kotlin 코드에서 서드파티 라이브러리를 사용하려면, 직접 타입 안전 래퍼를 생성하거나 커뮤니티에서 유지보수하는 래퍼를 사용할 수 있습니다. 또한 Kotlin/JS 동적 타입을 사용할 수 있습니다. 이는 타입 안전성을 저하시키는 대신 엄격한 타입 지정 및 라이브러리 래퍼를 생략할 수 있도록 합니다.

Kotlin/JS는 가장 일반적인 모듈 시스템인 ESM, CommonJS, UMDAMD와도 호환됩니다. 이를 통해 모듈을 생성 및 소비하고 구조화된 방식으로 JavaScript 생태계와 통합할 수 있습니다.

사용 사례 공유

Kotlin/JS 사용 사례의 목록은 총망라하는 것은 아닙니다. 다양한 접근 방식을 자유롭게 실험하고 프로젝트에 가장 적합한 방법을 찾아보세요.

공식 Kotlin Slack#javascript 채널에서 Kotlin/JS 커뮤니티와 사용 사례, 경험 및 질문을 공유하세요.

Kotlin/JS 시작하기

Kotlin/JS 작업을 시작하기 위한 기본 사항 및 초기 단계를 살펴보세요.

  • Kotlin이 처음이라면, 기본 문법을 검토하고 Kotlin 둘러보기를 탐색하는 것부터 시작하세요.
  • 영감을 얻기 위해 Kotlin/JS 샘플 프로젝트 목록을 확인하세요. 이 샘플들은 프로젝트를 시작하는 데 도움이 될 수 있는 유용한 코드 스니펫과 패턴을 포함하고 있습니다.
  • Kotlin/JS가 처음이라면, 고급 주제를 탐색하기 전에 설정 가이드부터 시작하세요.

Kotlin/JS를 직접 사용해 보시겠습니까?

Kotlin/JS 시작하기

Kotlin/JS 샘플 프로젝트

다음 표는 다양한 Kotlin/JS 사용 사례, 아키텍처 및 코드 공유 전략을 보여주는 샘플 프로젝트 목록입니다.

프로젝트설명
Spring과 Angular 간의 공통 코드를 가진 Petclinic엔터프라이즈 애플리케이션에서 데이터 전송 객체, 유효성 검사 및 인증 규칙, REST API 엔드포인트 추상화를 공유하여 코드 중복을 방지하는 방법을 보여줍니다. 코드는 Spring Boot 백엔드와 Angular 프런트엔드 간에 공유됩니다.
풀스택 컨퍼런스 CMSKtor, Jetpack ComposeVue.js 애플리케이션 간의 가장 간단한 방식부터 올인 코드 공유 방식에 이르는 다양한 코드 공유 접근 방식을 보여줍니다.
Compose-HTML 기반 Kobweb 프레임워크의 Todo 앱Android 개발자에게 익숙한 접근 방식을 재사용하여 할 일 목록 애플리케이션을 생성하는 방법을 보여줍니다. 이는 Kobweb 프레임워크를 기반으로 하는 클라이언트 UI 애플리케이션을 구축합니다.
Android, iOS 및 웹 간의 간단한 로직 공유Android(Jetpack Compose), iOS(SwiftUI) 및 웹(React)의 플랫폼 네이티브 UI 애플리케이션에서 사용되는 Kotlin으로 공통 로직을 가진 프로젝트를 구축하기 위한 템플릿을 포함합니다.
풀스택 공동 작업 할 일 목록JS 및 JVM 대상을 사용하는 Kotlin Multiplatform으로 공동 작업을 위한 할 일 목록 애플리케이션을 생성하는 방법을 보여줍니다. 백엔드에는 Ktor를 사용하고, 프런트엔드에는 React와 함께 Kotlin/JS를 사용합니다.

Kotlin/JS 프레임워크

Kotlin/JS 프레임워크는 바로 사용할 수 있는 컴포넌트, 라우팅, 상태 관리 및 최신 웹 애플리케이션 구축을 위한 기타 도구를 제공하여 웹 개발을 간소화합니다.

다양한 저자가 작성한 Kotlin/JS용 사용 가능한 프레임워크를 확인하세요.

Kotlin/JS 커뮤니티에 참여하세요

공식 Kotlin Slack#javascript 채널에 참여하여 커뮤니티 및 Kotlin/JS 팀과 채팅할 수 있습니다.

다음 단계