Kotlin/Wasm 및 WASI 시작하기
이 튜토리얼에서는 다양한 WebAssembly 가상 머신(virtual machines)에서 WebAssembly System Interface (WASI)를 사용하여 간단한 Kotlin/Wasm 애플리케이션을 실행하는 방법을 보여줍니다.
Node.js, Deno 및 WasmEdge 가상 머신에서 실행되는 애플리케이션 예제를 확인할 수 있습니다. 결과물은 표준 WASI API를 사용하는 간단한 애플리케이션입니다.
현재 Kotlin/Wasm은 Preview 1으로도 알려진 WASI 0.1을 지원합니다. WASI 0.2에 대한 지원은 향후 릴리스에서 계획되어 있습니다. WASI 0.2 지원에 대한 업데이트는 이 YouTrack 이슈를 팔로우하세요.
wasmWasi 타겟은 기본적으로 새로운 예외 처리 제안(exception handling proposal)을 사용하여 현대적인 WebAssembly 런타임과의 호환성을 보장합니다.
Kotlin/Wasm 툴체인은 Node.js 태스크(
wasmWasiNode*)를 기본적으로 제공합니다. Deno 또는 WasmEdge를 활용하는 프로젝트의 다른 태스크 변체들은 커스텀 태스크로 포함되어 있습니다.
시작하기 전에
최신 버전의 IntelliJ IDEA를 다운로드하고 설치하세요.
IntelliJ IDEA에서 File | New | Project from Version Control을 선택하여 Kotlin/Wasm WASI 템플릿 리포지토리를 복제(clone)합니다.
명령줄에서 복제할 수도 있습니다:
bashgit clone [email protected]:Kotlin/kotlin-wasm-wasi-template.git
애플리케이션 실행
View | Tool Windows | Gradle을 선택하여 Gradle 도구 창을 엽니다.
Gradle 도구 창에서 프로젝트가 로드되면 kotlin-wasm-wasi-example 아래에서 Gradle 태스크를 찾을 수 있습니다.
태스크가 성공적으로 로드되려면 Gradle JVM으로 최소 Java 11 이상이 필요합니다.
kotlin-wasm-wasi-example | Tasks | kotlin node에서 다음 Gradle 태스크 중 하나를 선택하여 실행합니다:
Node.js에서 애플리케이션을 실행하려면 wasmWasiNodeRun.
Deno에서 애플리케이션을 실행하려면 wasmWasiDenoRun.
WasmEdge에서 애플리케이션을 실행하려면 wasmWasiWasmEdgeRun.
Windows 플랫폼에서 Deno를 사용하는 경우
deno.exe가 설치되어 있는지 확인하세요. 자세한 내용은 Deno 설치 문서를 참조하세요.

또는 kotlin-wasm-wasi-template 루트 디렉터리의 터미널에서 다음 명령 중 하나를 실행합니다:
Node.js에서 애플리케이션 실행:
bash./gradlew wasmWasiNodeRunDeno에서 애플리케이션 실행:
bash./gradlew wasmWasiDenoRunWasmEdge에서 애플리케이션 실행:
bash./gradlew wasmWasiWasmEdgeRun
애플리케이션이 성공적으로 빌드되면 터미널에 메시지가 표시됩니다:

애플리케이션 테스트
다양한 가상 머신에서 Kotlin/Wasm 애플리케이션이 올바르게 작동하는지 테스트할 수도 있습니다.
Gradle 도구 창의 kotlin-wasm-wasi-example | Tasks | verification에서 다음 Gradle 태스크 중 하나를 실행합니다:
- Node.js에서 애플리케이션을 테스트하려면 wasmWasiNodeTest.
- Deno에서 애플리케이션을 테스트하려면 wasmWasiDenoTest.
- WasmEdge에서 애플리케이션을 테스트하려면 wasmWasiWasmEdgeTest.

또는 kotlin-wasm-wasi-template 루트 디렉터리의 터미널에서 다음 명령 중 하나를 실행합니다:
Node.js에서 애플리케이션 테스트:
bash./gradlew wasmWasiNodeTestDeno에서 애플리케이션 테스트:
bash./gradlew wasmWasiDenoTestWasmEdge에서 애플리케이션 테스트:
bash./gradlew wasmWasiWasmEdgeTest
터미널에 테스트 결과가 표시됩니다:

다음 단계는?
Kotlin Slack에서 Kotlin/Wasm 커뮤니티에 참여하세요:
더 많은 Kotlin/Wasm 예제를 시도해 보세요:
