WebAssembly WASI Preview 3μ λ°μ , νΉν κ°νλ μμ€ν νΈμΆ μΈν°νμ΄μ€μ μ μΈκ³μ μΌλ‘ μ΄μμ±, 보μ, ν¨μ¨μ μΈ μννΈμ¨μ΄ κ°λ°μ λ―ΈμΉλ μ¬μ€ν μν₯μ νꡬν©λλ€.
WebAssembly WASI Preview 3: ν΄λΌμ°λ λ€μ΄ν°λΈ λ° κ·Έ λλ¨Έλ₯Ό μν μμ€ν νΈμΆ μΈν°νμ΄μ€μ νλͺ
WebAssembly (Wasm)λ λΈλΌμ°μ μ€μ¬ κΈ°μ μμ μλ²μΈ‘ μ ν리μΌμ΄μ , ν΄λΌμ°λ λ€μ΄ν°λΈ μλΉμ€, μ£μ§ μ»΄ν¨ν , μ¬μ§μ΄ λ°μ€ν¬ν± νκ²½μ μν κ°λ ₯ν λ°νμμΌλ‘ λΉ λ₯΄κ² μ§ννμ΅λλ€. μ΄λ¬ν νμ₯ κ³Όμ μ ν΅μ¬μλ Wasm λͺ¨λμ΄ κΈ°λ³Έ μ΄μ 체μ μ μνΈ μμ©νλ λ°©μμ μ μνλ λ°μ νλ νμ€μΈ WebAssembly System Interface (WASI)κ° μμ΅λλ€. μ΅κ·Ό WASI Preview 3μ λ°μ μ μ μΈκ³μ μΌλ‘ μ΄μ κ°λ₯νκ³ μμ ν μ»΄ν¨ν μ μν ν¨μ¬ λ ν° μ μ¬λ ₯μ λ°νν κ²μ μ½μνλ λμ± κ°λ ₯νκ³ μμΈ‘ κ°λ₯νλ©° κΈ°λ₯μ΄ νλΆν μμ€ν νΈμΆ μΈν°νμ΄μ€λ₯Ό λμ νλ©° μ€μν λμ½μ λνλ λλ€.
WASIμ νμ: Wasmκ³Ό μμ€ν κ°μ 격차 ν΄μ
μ²μμλ μΉ λΈλΌμ°μ μ©μΌλ‘ μ€κ³λμμ§λ§, WebAssemblyμ μλλ°μ€νλ λ³Έμ§μ μΈ λ³΄μ λ° μ΄μμ±μ λΉλΈλΌμ°μ νκ²½μ λ§€λ ₯μ μΈ νλ³΄κ° λμμ΅λλ€. κ·Έλ¬λ λΈλΌμ°μ μΈλΆμμ μ§μ μΌλ‘ μ μ©νλ €λ©΄ Wasm λͺ¨λμ νμΌ I/O, λ€νΈμν¬ μ‘μΈμ€, νκ²½ λ³μ κ²μκ³Ό κ°μ μμ€ν μμ€ μμ μ μννλ νμ€νλ λ°©λ²μ νμλ‘ νμ΅λλ€. μ΄κ²μ΄ λ°λ‘ WASIκ° κ°μ νλ μ§μ μ λλ€. WASIλ κΈ°λ³Έ μ΄μ 체μ λ νλμ¨μ΄ μν€ν μ²μ κ΄κ³μμ΄ Wasm λͺ¨λμ΄ νΈμ€νΈ μμ€ν κ³Ό μμ νκ³ ν΅μ λ λ°©μμΌλ‘ μνΈ μμ©ν μ μλλ‘ μΌκ΄λ κΈ°λ₯ κΈ°λ° APIλ₯Ό μ 곡νλ κ²μ λͺ©νλ‘ ν©λλ€.
μ WASIμΈκ°? μ£Όμ λκΈ° λ° μ€κ³ μμΉ
- μ΄μμ±: WebAssemblyμ ν΅μ¬ μ½μμ "μ΄λμλ μ€ν"μ λλ€. WASIλ μ΄λ₯Ό μμ€ν μνΈ μμ©μΌλ‘ νμ₯νμ¬ νΉμ WASI λμμΌλ‘ μ»΄νμΌλ Wasm λͺ¨λμ΄ μμ μμ΄ λͺ¨λ WASI νΈν λ°νμμμ μ€νλ μ μλλ‘ ν©λλ€. μ΄λ λ€μν νκ²½μμμ μννΈμ¨μ΄ λ°°ν¬ λ° λ°°μΉμ μμ΄ νκΈ°μ μΈ λ³νμ λλ€.
- 보μ: WASIμ κΈ°λ₯ κΈ°λ° λ³΄μ λͺ¨λΈμ κ°μ₯ μ€μν©λλ€. WASI μΈν°νμ΄μ€λ κ΄λ²μν κΆνμ λΆμ¬νλ λμ νΉμ νκ³ μΈλΆνλ κΈ°λ₯(μ: νΉμ λλ ν 리μμ μ½κ±°λ νΉμ λ€νΈμν¬ μμΌμ μ¬λ κΈ°λ₯)μ λΆμ¬ν©λλ€. μ΄λ κΈ°μ‘΄ μ€ν λͺ¨λΈμ λΉν΄ 곡격 νλ©΄μ ν¬κ² μ€μ λλ€.
- μνΈ μ΄μ©μ±: WASIλ λ€μν νλ‘κ·Έλλ° μΈμ΄μ λ°νμμ΄ μνΈ μμ©ν μ μλ κ³΅ν΅ κΈ°λ°μ μ 곡ν©λλ€. WasmμΌλ‘ μ»΄νμΌλ C++ μ ν리μΌμ΄μ μ WASI μΈν°νμ΄μ€λ₯Ό ν΅ν΄ Rust λͺ¨λ λλ Go λͺ¨λκ³Ό μννκ² μνΈ μμ©νμ¬ λμ± ν΅ν©λ κ°λ° μνκ³λ₯Ό μ‘°μ±ν©λλ€.
- ν¨μ¨μ±: WebAssemblyλ λΉ λ₯΄κ³ ν¨μ¨μ μΌλ‘ μ€κ³λμμ΅λλ€. WASIλ μμ€ν νΈμΆμ νμ€νν¨μΌλ‘μ¨, νΉν Wasmtime λλ Wasmerμ κ°μ μ΅μ νλ Wasm λ°νμ λ΄μμ μ€νλ λ, κΈ°μ‘΄ νκ²½μ νλ‘μΈμ€ κ° ν΅μ λλ μμ€ν νΈμΆκ³Ό κ΄λ ¨λ μ€λ²ν€λλ₯Ό μ΅μννλ κ²μ λͺ©νλ‘ ν©λλ€.
Preview 3λ‘μ μ§ν: νκ³ ν΄κ²° λ° κΈ°λ₯ νμ₯
WASI Preview 3λ‘μ μ¬μ μ λ°λ³΅μ μ΄μμΌλ©°, μ΄μ μ¬μ, νΉν WASI Preview 1μμ ꡬμΆλ κΈ°λ° μμ μμμ΅λλ€. Preview 1μ κΈ°λ³Έ κ°λ κ³Ό ν΅μ¬ API μΈνΈλ₯Ό λμ νμ§λ§, νΉν μλ²μΈ‘ λ° ν΄λΌμ°λ λ€μ΄ν°λΈ μλ리μ€μμ λ 볡μ‘ν μ¬μ© μ¬λ‘μ λν μ±νμ λ°©ν΄νλ νΉμ μ ν μ¬νμ΄ μμμ΅λλ€. Preview 3λ κΈ°μ‘΄ APIλ₯Ό κ°μ νκ³ μλ‘μ΄ APIλ₯Ό λμ νμ¬ μμ μ±, λͺ νμ± λ° κ΄λ²μν μ μ© κ°λ₯μ±μ μ€μ μ λμ΄ μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νλ κ²μ λͺ©νλ‘ ν©λλ€.
WASI Preview 3μ μ£Όμ κ°μ μ¬ν
WASI Preview 3λ λ¨μΌν κ±°λν λ³κ²½ μ¬νμ΄ μλλΌ, μμ€ν νΈμΆ μΈν°νμ΄μ€λ₯Ό μ΄μ²΄μ μΌλ‘ ν₯μμν€λ μνΈ μ°κ²°λ μ μ λ° κ°μ μ¬νμ μ§ν©μ λλ€. μ νν ꡬ쑰μ λͺ λͺ κ·μΉμ μμ§ νκ³ ν΄μ§κ³ μμ§λ§, ν΅μ¬ ν λ§λ Wasm λͺ¨λμ΄ νΈμ€νΈ μμ€ν κ³Ό μνΈ μμ©νλ λμ± ν¬κ΄μ μ΄κ³ κ΄μ©μ μΈ λ°©μμ μ 곡νλ λ° μ€μ μ λ‘λλ€. λ€μμ κ°μ₯ μ€μν κ°μ μμ μ€ μΌλΆμ λλ€.
1. λ€νΈμν¬ μ‘μΈμ€ λ° HTTP μ§μ
μλ²μΈ‘ κ°λ°μ μν μ΄κΈ° WASI λ²μ μ κ°μ₯ μ€μν μ ν μ¬ν μ€ νλλ κ²¬κ³ ν λ€νΈμνΉ κΈ°λ₯μ λΆμ‘±μ΄μμ΅λλ€. Preview 3λ νΉν HTTP μλ² λ° ν΄λΌμ΄μΈνΈ μ μ κ°λ°μ ν΅ν΄ μ΄ λΆμΌμμ μλΉν λ°μ μ μ΄λ£¨μμ΅λλ€. μ΄λ Wasm λͺ¨λμ΄ λ€μ΄μ€λ HTTP μμ²μ μ²λ¦¬νκ³ λκ°λ HTTP νΈμΆμ μννλ νμ€νλ λ°©λ²μ μ 곡νλ κ²μ λͺ©νλ‘ ν©λλ€.
- HTTP μλ² API: μ΄ μ μμ Wasm λ°νμμ΄ λ€μ΄μ€λ HTTP μμ²μ Wasm λͺ¨λμ λ ΈμΆνκΈ° μν μΈν°νμ΄μ€λ₯Ό μ μν©λλ€. μ΄λ WebAssembly λ΄μμ μΉ μλ², API κ²μ΄νΈμ¨μ΄ λ° λ§μ΄ν¬λ‘μλΉμ€λ₯Ό ꡬμΆνλ λ° μ€μν©λλ€. κ°λ°μλ νΉμ κ²½λ‘μ λν νΈλ€λ¬λ₯Ό μμ±νκ³ , μμ² ν€λ λ° λ³Έλ¬Έμ μ²λ¦¬νλ©°, HTTP μλ΅μ λ€μ λ³΄λΌ μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ ν΄λΌμ°λ 곡κΈμ, μ£μ§ μ₯μΉ λλ λ‘컬 κ°λ° μλ²μ κ°μ΄ WASI νΈν λ°νμμμ μ€νλ μ μλ μ§μ ν μ΄μμ± μλ μΉ μ ν리μΌμ΄μ μ λ§λ€ μ μμ΅λλ€.
- HTTP ν΄λΌμ΄μΈνΈ API: μλ² APIλ₯Ό 보μνλ ν΄λΌμ΄μΈνΈ APIλ Wasm λͺ¨λμ΄ μμλ°μ΄λ HTTP μμ²μ μμν μ μλλ‘ ν©λλ€. μ΄λ μΈλΆ μλΉμ€μ ν΅ν©νκ³ , APIμμ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ©°, μλ‘ ν΅μ νλ λ§μ΄ν¬λ‘μλΉμ€λ₯Ό ꡬμΆνλ λ° νμμ μ λλ€. μ΄ APIλ ν¨μ¨μ μ΄κ³ μμ νλλ‘ μ€κ³λμμΌλ©°, μμ² λ§€κ°λ³μ λ° μλ΅ μ²λ¦¬μ λν μΈλΆνλ μ μ΄λ₯Ό νμ©ν©λλ€.
- λ€νΈμνΉ κΈ°λ₯ (μΌλ°): HTTP μΈμλ μμΌ νλ‘κ·Έλλ°(TCP/UDP)κ³Ό κ°μ νμ μμ€ λ€νΈμνΉ ν리미ν°λΈλ₯Ό νμ€ννκΈ° μν λ Έλ ₯μ΄ κ³μλκ³ μμ΅λλ€. μ΄λ μ΄κΈ° Preview 3 릴리μ€μ μ£Όμ μ΄μ μ΄ μλ μ μμ§λ§, λ 볡μ‘ν λ€νΈμν¬ μ ν리μΌμ΄μ μ ꡬμΆνκ³ κΈ°μ‘΄ λ€νΈμν¬ νλ‘ν μ½κ³Όμ κ΄λ²μν νΈνμ±μ 보μ₯νλ λ° μ€μν©λλ€.
μμ: Rustμ WebAssemblyλ₯Ό μ¬μ©νμ¬ μλ²λ¦¬μ€ API μλν¬μΈνΈλ₯Ό ꡬμΆνλ€κ³ μμν΄ λ³΄μμμ€. WASI Preview 3μ HTTP μλ² κΈ°λ₯μ ν΅ν΄ Rust Wasm λͺ¨λμ λ€μ΄μ€λ μμ²μ μμ νκ³ , JSON νμ΄λ‘λλ₯Ό νμ±νλ©°, λ°μ΄ν°λ² μ΄μ€μ μνΈ μμ©(λ€λ₯Έ WASI μΈν°νμ΄μ€ λλ νΈμ€νΈ μ 곡 ν¨μλ₯Ό ν΅ν΄)νκ³ , JSON μλ΅μ λ°νν μ μμ΅λλ€. μ΄ λͺ¨λ κ²μ΄ μμ ν Wasm μλλ°μ€ λ΄μμ μ΄λ£¨μ΄μ§λλ€. μ΄ μ ν리μΌμ΄μ μ μΌκ΄λ WASI μΈν°νμ΄μ€μ μ΄μ μ νμ©νμ¬ μμ μμ΄ λ€μν ν΄λΌμ°λ νλ«νΌμ λ°°ν¬λ μ μμ΅λλ€.
2. νμΌ μμ€ν μ‘μΈμ€ κ°μ μ¬ν
WASI Preview 1μ wasi-filesystem κ΅¬μ± μμλ₯Ό ν΅ν΄ κΈ°λ³Έ νμΌ μμ€ν
μ‘μΈμ€λ₯Ό ν¬ν¨νμ§λ§, Preview 3λ νλ νμΌ μμ€ν
μμ
κ³Ό λ μ λΆν©νκ³ λ³΄λ€ μΈλΆνλ μ μ΄λ₯Ό μ 곡νκΈ° μν΄ μ΄λ¬ν κΈ°λ₯μ κ°μ νκ³ νμ₯νλ κ²μ λͺ©νλ‘ ν©λλ€.
- λλ ν 리 μ€νΈλ¦Ό: λλ ν 리 λ΄μ©μ λ°λ³΅νλ κ°μ λ λ©μ»€λμ¦μΌλ‘, Wasm λͺ¨λμ΄ νμΌ λ° νμ λλ ν 리λ₯Ό ν¨μ¨μ μΌλ‘ λμ΄ν μ μλλ‘ ν©λλ€.
- νμΌ λ©νλ°μ΄ν°: κΆν, νμμ€ν¬ν, ν¬κΈ°μ κ°μ νμΌ λ©νλ°μ΄ν°μ μ‘μΈμ€νλ νμ€νλ λ°©λ².
- λΉλκΈ° I/O: μ¬μ ν νλ°ν κ°λ° μμμ΄μ§λ§, Wasm λ°νμ μ°¨λ¨μ λ°©μ§νκ³ μ λ°μ μΈ μ±λ₯, νΉν I/O λ°μ΄λ μ ν리μΌμ΄μ μμ μ±λ₯μ ν₯μμν€κΈ° μν΄ λΉλκΈ° νμΌ I/O μμ μ§μμ λν κ°μ‘°κ° 컀μ§κ³ μμ΅λλ€.
μμ: Goλ‘ μμ±λμ΄ WasmμΌλ‘ μ»΄νμΌλ λ°μ΄ν° μ²λ¦¬ μ ν리μΌμ΄μ μ νΉμ λλ ν 리μμ μ¬λ¬ κ΅¬μ± νμΌμ μ½μ΄μΌ ν μ μμ΅λλ€. WASI Preview 3μ ν₯μλ νμΌ μμ€ν APIλ₯Ό ν΅ν΄ ν΄λΉ μ ν리μΌμ΄μ μ νμΌμ μμ νκ³ ν¨μ¨μ μΌλ‘ λμ΄νκ³ , λ΄μ©μ μ½κ³ , μ²λ¦¬ν μ μμΌλ©°, μ΄ λͺ¨λ κ³Όμ μμ Wasm λ°νμμ΄ μ‘μΈμ€ κΆνμ λΆμ¬ν νΉμ λλ ν 리λ₯Ό μ€μν©λλ€.
3. ν΄λ‘ λ° νμ΄λ¨Έ
μ νν μκ° μΈ‘μ λ° μμ μμ½ κΈ°λ₯μ λ§μ μ ν리μΌμ΄μ μ νμμ μ λλ€. Preview 3λ μμ€ν ν΄λ‘ μ‘μΈμ€ λ° νμ΄λ¨Έ μ€μ μΈν°νμ΄μ€λ₯Ό λͺ νν νκ³ νμ€νν©λλ€.
- λ¨μ‘° ν΄λ‘: νμ μ¦κ°νλλ‘ λ³΄μ₯λλ ν΄λ‘μ λν μ‘μΈμ€λ₯Ό μ 곡νλ©°, μκ° κ°κ²©μ μΈ‘μ νκ³ μ±λ₯ μ νλ₯Ό κ°μ§νλ λ° μ ν©ν©λλ€.
- μ€μ μκ° (Wall-Clock Time): νμ¬ λ μ§ λ° μκ°μ μ‘μΈμ€ν μ μμΌλ©°, λ‘κΉ , μ€μΌμ€λ§ λ° μ¬μ©μ λλ©΄ κΈ°λ₯μ μ μ©ν©λλ€.
- νμ΄λ¨Έ: Wasm λͺ¨λμ΄ μ§μ λ μ§μ° ν λΉλκΈ° μ΄λ²€νΈ λλ μ½λ°±μ μμ½ν μ μλλ‘ νμ¬, λ°μν μ ν리μΌμ΄μ μ ꡬμΆνκ³ νμμμμ ꡬννλ λ° μ€μν©λλ€.
μμ: Wasmμ λ°±κ·ΈλΌμ΄λ μ컀 νλ‘μΈμ€λ νμ΄λ¨Έ μΈν°νμ΄μ€λ₯Ό μ¬μ©νμ¬ μ£ΌκΈ°μ μΌλ‘ μ λ°μ΄νΈλ₯Ό νμΈνκ±°λ μμ½λ μ μ§ κ΄λ¦¬ μμ μ μνν μ μμ΅λλ€. λν λͺ¨λ λ΄μ μ€μ μμ κΈ°κ°μ μΈ‘μ νκΈ° μν΄ λ¨μ‘° ν΄λ‘μ μ¬μ©ν μλ μμ΅λλ€.
4. νκ²½ λ³μ λ° μΈμ
νκ²½ λ³μ λ° λͺ λ Ήμ€ μΈμμ μ‘μΈμ€νλ κ²μ μ ν리μΌμ΄μ ꡬμ±μ μν μΌλ°μ μΈ μꡬ μ¬νμ λλ€. Preview 3λ μ΄λ¬ν μΈν°νμ΄μ€λ₯Ό κ°ννμ¬ Wasm λͺ¨λμ΄ λ°νμμ λμ μΌλ‘ ꡬμ±λλλ‘ λ μ½κ² λ§λλλ€.
- νκ²½ λ³μ: νΈμ€νΈ λ°νμμ΄ Wasm λͺ¨λμ λͺ μμ μΌλ‘ μ λ¬ν νκ²½ λ³μλ₯Ό μ½λ μμ ν λ°©λ²μ μ 곡ν©λλ€.
- λͺ λ Ήμ€ μΈμ: Wasm λͺ¨λμ΄ νΈμ€νΈμ μν΄ νΈμΆλ λ μ λ¬λλ μΈμμ μ‘μΈμ€ν μ μλλ‘ ν©λλ€.
μμ: λ°μ΄ν°λ² μ΄μ€ μ°κ²° λ¬Έμμ΄μ΄ νμν Wasm κΈ°λ° μ νΈλ¦¬ν°λ 컨ν μ΄λ μ€μΌμ€νΈλ μ΄ν°κ° μ€μ ν νκ²½ λ³μλ μ¬μ©μκ° μ 곡ν λͺ λ Ήμ€ μΈμμμ μ΄ λ¬Έμμ΄μ μ½μ μ μμΌλ―λ‘ μ¬μ»΄νμΌ μμ΄ Wasm λͺ¨λμ κ³ λλ‘ κ΅¬μ±ν μ μμ΅λλ€.
5. νμ€νλ μ€λ₯ μ²λ¦¬ λ° κΈ°λ₯
νΉμ κΈ°λ₯ API μΈμλ Preview 3λ μ€λ₯ μ²λ¦¬ λ° κΈ°λ₯ κΈ°λ° λ³΄μ λͺ¨λΈμ ν¬ν¨νμ¬ WASIμ μ λ°μ μΈ μ€κ³ μμΉμ κ°μ νλ λ° μ€μ μ λ‘λλ€.
- λ λͺ νν μ€λ₯ λ³΄κ³ : WASI μμ€ν νΈμΆμμ λμ± νμ€νλκ³ μ μ΅ν μ€λ₯ μ½λμ λ©μμ§λ₯Ό μ 곡νκΈ° μν λ Έλ ₯μ΄ μ§ν μ€μ΄λ©°, μ΄λ Wasm λͺ¨λ λ΄ λλ²κΉ λ° μ€λ₯ μ²λ¦¬λ₯Ό λμ± κ°λ¨νκ² λ§λλλ€.
- μ κ΅ν κΈ°λ₯ κ΄λ¦¬: κΈ°λ₯ κΈ°λ° λͺ¨λΈμ 볡μ‘ν μ ν리μΌμ΄μ μ μΆ©λΆν κ°λ ₯νλ©΄μλ λ°νμμμ ꡬννκ³ κ΄λ¦¬νκΈ° μ½λλ‘ λ°λ³΅μ μΌλ‘ κ°μ λκ³ μμ΅λλ€. μ¬κΈ°μλ Wasm λͺ¨λ κ°μ κΈ°λ₯μ μμ νκ² μ λ¬νλ λ°©λ²μ νμνλ κ²μ΄ ν¬ν¨λ©λλ€.
WASI Preview 3κ° λ€μν μ»΄ν¨ν ν¨λ¬λ€μμ λ―ΈμΉλ μν₯
WASI Preview 3μ κ°μ μ¬νμ λ€μν μ»΄ν¨ν μμμ κ±Έμ³ κ΄λ²μν μν₯μ λ―ΈμΉ©λλ€.
ν΄λΌμ°λ λ€μ΄ν°λΈ λ° μλ²λ¦¬μ€ μ»΄ν¨ν
μ΄κ²μ WASI Preview 3κ° κ°μ₯ μ¦κ°μ μ΄κ³ μ¬μ€ν μν₯μ λ―ΈμΉ λΆμΌλΌκ³ ν μ μμ΅λλ€. κ°λ ₯ν HTTP μ§μκ³Ό ν₯μλ νμΌ I/Oλ₯Ό μ 곡ν¨μΌλ‘μ¨ WASI μ§μ Wasm λͺ¨λμ λ§μ΄ν¬λ‘μλΉμ€, API λ° μλ²λ¦¬μ€ ν¨μ ꡬμΆμ μν μΌλ± μλ―Όμ΄ λκ³ μμ΅λλ€.
- μ½λ μ€ννΈ κ°μ: Wasm λ°νμμ κΈ°μ‘΄ 컨ν μ΄λ λλ VMμ λΉν΄ μ½λ μ€ννΈ μκ°μ΄ ν¨μ¬ λΉ λ₯΄λ©°, μ΄λ μλ²λ¦¬μ€ μ ν리μΌμ΄μ μ μ€μν μ΄μ μ λλ€.
- ν₯μλ 보μ: Wasm λ° WASIμ λ³Έμ§μ μΈ μλλ°μ± λ° κΈ°λ₯ κΈ°λ° λ³΄μμ λ€μ€ ν λνΈ ν΄λΌμ°λ νκ²½μ λ§€μ° λ§€λ ₯μ μ΄λ©°, ν μν¬λ‘λκ° λ€λ₯Έ μν¬λ‘λμ μν₯μ λ―ΈμΉ μνμ μ€μ λλ€.
- μΈμ΄ λ€μμ±: κ°λ°μλ μ νΈνλ μΈμ΄(Rust, Go, C++, AssemblyScript λ±)λ₯Ό νμ©νμ¬ WasmμΌλ‘ μ»΄νμΌλλ ν΄λΌμ°λ λ€μ΄ν°λΈ μλΉμ€λ₯Ό ꡬμΆν¨μΌλ‘μ¨ κ°λ°μ μ νμ νμ λνκ³ μμ°μ±μ λμΌ μ μμ΅λλ€.
- ν΄λΌμ°λ 곡κΈμ κ° μ΄μμ±: WASIλ‘ κ΅¬μΆλ Wasm λ§μ΄ν¬λ‘μλΉμ€λ WASI νΈν λ°νμμ μ 곡νλ λͺ¨λ ν΄λΌμ°λ 곡κΈμμμ μ΄λ‘ μ μΌλ‘ μ€νλ μ μμΌλ―λ‘, 곡κΈμ 체 μ’ μμ±μ μ€μ λλ€.
μ£μ§ μ»΄ν¨ν
μ£μ§ μ₯μΉλ μ’ μ’ μ νλ 리μμ€μ κ³ μ ν λ€νΈμνΉ μ μ½μ κ°μ§λλ€. WASIμ κ²½λ νΉμ±κ³Ό μμΈ‘ κ°λ₯ν μ±λ₯μ μ£μ§ λ°°ν¬μ μ΄μμ μ λλ€.
- 리μμ€ ν¨μ¨μ±: Wasm λͺ¨λμ κΈ°μ‘΄ 컨ν μ΄λλ³΄λ€ μ μ 리μμ€λ₯Ό μλΉνλ―λ‘, 리μμ€ μ μ½μ΄ μλ μ£μ§ μ₯μΉμ μ ν©ν©λλ€.
- 보μ μ격 μ λ°μ΄νΈ: Wasm λͺ¨λμ μ격μΌλ‘ μμ νκ² λ°°ν¬νκ³ μ λ°μ΄νΈνλ κΈ°λ₯μ μ£μ§ μ₯μΉ μ§ν©μ κ΄λ¦¬νλ λ° μ€μν μ΄μ μ λλ€.
- μ£μ§μ ν΄λΌμ°λ μ λ°μ κ±ΈμΉ μΌκ΄λ λ‘μ§: κ°λ°μλ WasmμΌλ‘ λ‘μ§μ ν λ² μμ±νκ³ ν΄λΌμ°λμμ μ£μ§κΉμ§ μΌκ΄λκ² λ°°ν¬ν μ μμ΄ κ°λ° λ° μ μ§ κ΄λ¦¬κ° κ°μνλ©λλ€.
λ°μ€ν¬ν± μ ν리μΌμ΄μ λ° νλ¬κ·ΈμΈ μμ€ν
λΈλΌμ°μ κ° μ¬μ ν ν΅μ¬ λμμ΄μ§λ§, WASIλ μΉμ λμ΄ Wasmμ λν λ¬Έμ μ½λλ€. λ°μ€ν¬ν± μ ν리μΌμ΄μ μ νλ¬κ·ΈμΈ μν€ν μ²λ μ λ’°ν μ μλ μ½λλ₯Ό μμ νκ² μ€ννκΈ° μν΄ Wasmμ νμ©ν μ μμ΅λλ€.
- 보μ νλ¬κ·ΈμΈ μν€ν μ²: νΈμ§κΈ° λλ IDEμ κ°μ μ ν리μΌμ΄μ μ Wasm λͺ¨λμ νλ¬κ·ΈμΈμΌλ‘ μ¬μ©νμ¬ νμ¬ νμ₯μ μν μμ νκ³ μλλ°μ€νλ νκ²½μ μ 곡ν μ μμ΅λλ€.
- ν¬λ‘μ€ νλ«νΌ μ ν리μΌμ΄μ : WASIλ₯Ό μ¬μ©νλ Wasm μ ν리μΌμ΄μ μ ν¬λ‘μ€ νλ«νΌ λ°μ€ν¬ν± μ ν리μΌμ΄μ μ ꡬμΆνλ λ³΄λ€ νμ€νλ λ°©λ²μ μ 곡ν μ μμ§λ§, νλ«νΌλ³ UI/UXλ μ¬μ ν κΈ°λ³Έ μ½λλ₯Ό νμλ‘ ν μ μμ΅λλ€.
μλ² λλ μμ€ν
λ μ§λ³΄λ μλ² λλ μμ€ν μ κ²½μ°, WASIμ νλμ¨μ΄ λ° μμ€ν 리μμ€μμ ν΅μ λ μνΈ μμ©μ νΉν WASI λ°νμ ꡬνμ κ°μΆ μ€μκ° μ΄μ 체μ (RTOS)μ κ²°ν©λ λ μ μ΅ν μ μμ΅λλ€.
κ³Όμ λ° μμΌλ‘ λμκ° κΈΈ
μμ²λ λ°μ μλ λΆκ΅¬νκ³ WASI μνκ³λ μ¬μ ν μ±μ λ¨κ³μ μμ΅λλ€. μ§μμ μΈ κ°λ°μ΄ νμν λͺ κ°μ§ κ³Όμ μ μμμ΄ μ‘΄μ¬ν©λλ€.
- νμ€ν μλ: WASI Preview 3κ° μ€μν λ¨κ³μ΄κΈ°λ νμ§λ§, WASI νμ€ μ체λ μ¬μ ν μ§ννκ³ μμ΅λλ€. μ΅μ μ μμ λ°λΌκ°κ³ λ€μν λ°νμ κ°μ νΈνμ±μ 보μ₯νλ κ²μ κ°λ°μμκ² μ΄λ €μμ΄ λ μ μμ΅λλ€.
- λ°νμ ꡬν: Wasmtime, Wasmer λ±κ³Ό κ°μ λ°νμ κ°μ WASI ꡬνμ νμ§κ³Ό κΈ°λ₯ μμ±λλ λ€λ₯Ό μ μμ΅λλ€. κ°λ°μλ μμ‘΄νλ WASI μΈν°νμ΄μ€λ₯Ό κ°μ₯ μ μ§μνλ λ°νμμ μ νν΄μΌ ν©λλ€.
- λꡬ λ° λλ²κΉ : λꡬλ λΉ λ₯΄κ² κ°μ λκ³ μμ§λ§, λλ²κΉ λ° νλ‘νμΌλ§μ ν¬ν¨ν WASIλ₯Ό μ¬μ©ν Wasm κ°λ° κ²½νμ μ¬μ ν μλΉν λ°μ μ΄ μ΄λ£¨μ΄μ§κ³ μλ μμμ λλ€.
- κΈ°μ‘΄ μμ€ν κ³Όμ μνΈ μ΄μ©μ±: Wasm λͺ¨λμ κΈ°μ‘΄ λΉWasm μ½λλ² μ΄μ€ λ° λ κ±°μ μμ€ν κ³Ό μννκ² ν΅ν©νλ €λ©΄ μ μ μλ μΈν°νμ΄μ€μ μ μ€ν μν€ν μ² κ³νμ΄ νμν©λλ€.
- μμ€ν 리μμ€ λ° κΈ°λ₯: Wasm λͺ¨λμ΄ μ μ©ν μμ€ν μμ μ μνν΄μΌ νλ νμμ±κ³Ό WASIμ 보μ λͺ¨λΈμ κ· νμ λ§μΆλ κ²μ κ³μλλ κ³Όμ μ λλ€. κΈ°λ₯μ μ νν μΈνΈμ κ΄λ¦¬ λ°©λ²μ μ μνλ μμ μ κ³μν΄μ κ°μ λ κ²μ λλ€.
WASIμ λ―Έλ: λ²μ© μ»΄ν¨ν μ ν₯νμ¬
WASI Preview 3λ μ€μν μ΄μ νμ΄μ§λ§, WebAssemblyλ₯Ό μ§μ μΌλ‘ λ²μ©μ μΈ λ°νμμΌλ‘ λ§λλ λ ν° λΉμ μ μΌλΆμ λλ€. WASIμ ν₯ν λ°λ³΅μλ λ€μμ΄ ν¬ν¨λ κ²μΌλ‘ μμλ©λλ€.
- λ μ κ΅ν λ€νΈμνΉ: λ κ³ κΈ λ€νΈμνΉ νλ‘ν μ½ λ° κ΅¬μ± μ§μ.
- κ·Έλν½ λ° UI: ν΅μ¬ μ΄μ μ μλμ§λ§, Wasmμ΄ κ·Έλν½ λΌμ΄λΈλ¬λ¦¬ λ° UI νλ μμν¬μ μΈν°νμ΄μ€νλ λ°©λ²μ λν νμμ΄ μ§ν μ€μ΄λ©°, μ μ¬μ μΌλ‘ λ°μ€ν¬ν± λλ μλ² λλ μ¬μ© μ¬λ‘μ μ μ©λ μ μμ΅λλ€.
- νλ‘μΈμ€ κ΄λ¦¬: Wasm νκ²½ λ΄μμ μμ νλ‘μΈμ€ λλ μ€λ λλ₯Ό μμ±νκ³ κ΄λ¦¬νλ νμ€νλ λ°©λ².
- νλμ¨μ΄ μνΈ μμ©: νΉν IoT λ° μλ² λλ μμ€ν μ κ΄λ ¨νμ¬ νΉμ νλμ¨μ΄ κΈ°λ₯κ³Ό μνΈ μμ©νλ λ μ§μ μ μ΄λ©΄μλ μμ ν λ°©λ².
κ²°λ‘ : WASI Preview 3μ ν¨κ» λ―Έλλ₯Ό λ§μ΄νλ€
WebAssembly System Interface (WASI) Preview 3λ WebAssemblyλ₯Ό λΈλΌμ°μ λ₯Ό ν¨μ¬ λμ΄μ κ΄λ²μν μ»΄ν¨ν μμ μ μν κ°λ ₯νκ³ μμ νλ©° μ΄μμ± μλ μ루μ μΌλ‘ λ§λλ λ° μμ΄ μ€μν μ§νλ₯Ό μλ―Έν©λλ€. νΉν λ€νΈμνΉ, νμΌ μμ€ν μ‘μΈμ€ λ° ν΄λ‘ κ΄λ¦¬μ λ°μ μ ν¬ν¨νλ κ°νλ μμ€ν νΈμΆ μΈν°νμ΄μ€λ μ μΈκ³μ μΌλ‘ ν΄λΌμ°λ λ€μ΄ν°λΈ, μλ²λ¦¬μ€ λ° μ£μ§ μ»΄ν¨ν νκ²½μμ Wasm μ±νμ κ°μνν μ€λΉκ° λμ΄ μμ΅λλ€.
μ μΈκ³ κ°λ°μμ μ‘°μ§μκ² WASI Preview 3λ₯Ό μ΄ν΄νκ³ μ±ννλ κ²μ λμ± νλ ₯μ μ΄κ³ μμ νλ©° μνΈ μ΄μ© κ°λ₯ν μ ν리μΌμ΄μ μ ꡬμΆνλ κΈΈμ μ 곡ν©λλ€. "ν λ² μμ±νκ³ μ΄λμλ μ€ν"μ΄λΌλ μ½μμ μμ€ν μμ€ νλ‘κ·Έλλ°μ μν μ€μ§μ μΈ νμ€μ΄ λκ³ μμΌλ©°, λ€μν κΈ°μ νκ²½ μ λ°μ κ±Έμ³ νμ κ³Ό ν¨μ¨μ±μ μ΄μ§νκ³ μμ΅λλ€. WASI νμ€κ³Ό κ·Έ ꡬνμ΄ κ³μν΄μ μ±μν΄μ§μ λ°λΌ WebAssemblyλ λ―Έλ μννΈμ¨μ΄ κ°λ°μμ λμ± ν΅μ¬μ μΈ μν μ ν κ²μΌλ‘ κΈ°λλ©λλ€.
WASI Preview 3 μ±νμ μν μ£Όμ μ°Έκ³ μ¬ν:
- Wasm λ°νμ νμ: Wasmtime λ° Wasmerμ κ°μ μ£Όμ WASI νΈν λ°νμμ μ΅μν΄μ§μμμ€.
- μΈμ΄ λꡬ μ²΄μΈ νμ©: μ νΈνλ νλ‘κ·Έλλ° μΈμ΄κ° WASI μ§μκ³Ό ν¨κ» WasmμΌλ‘ μ»΄νμΌλλ λ°©μμ μ‘°μ¬νμμμ€.
- κΈ°λ₯ κΈ°λ° λ³΄μ μ΄ν΄: WASIμ 보μ λͺ¨λΈμ μΌλμ λκ³ Wasm μ ν리μΌμ΄μ μ μ€κ³νμμμ€.
- μλ²λ¦¬μ€/λ§μ΄ν¬λ‘μλΉμ€λ‘ μμ: μ΄κ²μ΄ Preview 3μ κ°μ μ¬νμΌλ‘λΆν° κ°μ₯ μ¦κ°μ μΈ μ΄μ μ μ»λ μ¬μ© μ¬λ‘μ λλ€.
- μ΅μ μ 보 μ μ§: WASI μ¬μμ κ³μν΄μ λ³ννκ³ μμΌλ―λ‘, μ΅μ κ°λ° λ° μ μμ λν μ 보λ₯Ό κ³μ νμΈνμμμ€.
λ²μ© λ°νμμΌλ‘μμ WebAssembly μλκ° λλνμΌλ©°, WASI Preview 3λ κ·Έ λ°©ν₯μΌλ‘μ κΈ°λ λΉμ μΈ μ§μ μ λλ€.