Mozilla, Fastly, Intel ๋ฐ Red Hat์€ WebAssembly๋ฅผ ๋ณดํŽธ์ ์ธ ์‚ฌ์šฉ์„ ์œ„ํ•œ ํ”Œ๋žซํผ์œผ๋กœ ํ™๋ณดํ•ฉ๋‹ˆ๋‹ค.

Mozilla, Fastly, Intel ๋ฐ Red Hat ์—ฐํ•ฉ WebAssembly๋ฅผ ๋ชจ๋“  ์ธํ”„๋ผ, ์šด์˜ ์ฒด์ œ ๋˜๋Š” ์žฅ์น˜์—์„œ ๋ณด์•ˆ ์ฝ”๋“œ ์‹คํ–‰์„ ์œ„ํ•œ ๋ฒ”์šฉ ํ”Œ๋žซํผ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ธฐ์ˆ  ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ๋…ธ๋ ฅ์ž…๋‹ˆ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €๋ฟ๋งŒ ์•„๋‹ˆ๋ผ WebAssembly๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋Ÿฐํƒ€์ž„๊ณผ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ณต๋™ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ํ˜•์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ดํŠธ์ฝ”๋“œ ์–ผ๋ผ์ด์–ธ์Šค.

๋ธŒ๋ผ์šฐ์ € ์™ธ๋ถ€์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” WebAssembly ํ˜•์‹์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์ด์‹ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๋ฉด API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ทธ๋žฌ๋‹ˆ (WebAssembly ์‹œ์Šคํ…œ ์ธํ„ฐํŽ˜์ด์Šค) - ์šด์˜ ์ฒด์ œ(ํŒŒ์ผ, ์†Œ์ผ“ ๋“ฑ ์ž‘์—…์„ ์œ„ํ•œ POSIX API)์™€์˜ ์ง์ ‘์ ์ธ ์ƒํ˜ธ ์ž‘์šฉ์„ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. WASI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ๋ชจ๋ธ์˜ ํŠน์ง•์€ ๋ฉ”์ธ ์‹œ์Šคํ…œ๊ณผ์˜ ๊ฒฉ๋ฆฌ๋ฅผ ์œ„ํ•ด ์ƒŒ๋“œ๋ฐ•์Šค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๊ณ  ๊ฐ ๋ฆฌ์†Œ์Šค(ํŒŒ์ผ, ๋””๋ ‰ํ„ฐ๋ฆฌ, ์†Œ์ผ“, ์‹œ์Šคํ…œ ํ˜ธ์ถœ)์— ๋Œ€ํ•œ ์ž‘์—…์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ๊ด€๋ฆฌ ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋“ฑ) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ์ ์ ˆํ•œ ๊ถŒํ•œ์ด ๋ถ€์—ฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์„ ์–ธ๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋งŒ ์ œ๊ณต๋จ).

์ค‘ ํ•˜๋‚˜ ๋ชฉํ‘œ ์ƒ์„ฑ๋œ ๋™๋งน์€ ์˜์กด์„ฑ์ด ๋งŽ์€ ์ตœ์‹  ๋ชจ๋“ˆ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋ชจ๋“  ์ข…์†์„ฑ์ด ์ทจ์•ฝ์ ์ด๋‚˜ ๊ณต๊ฒฉ์˜ ์ž ์žฌ์ ์ธ ์†Œ์Šค๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…์†์„ฑ์„ ์ œ์–ดํ•˜๋ฉด ์ด์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์‹ ๋ขฐ๋Š” ์ž๋™์œผ๋กœ ๋ชจ๋“  ์ข…์†์„ฑ์— ๋Œ€ํ•œ ์‹ ๋ขฐ๋ฅผ ์˜๋ฏธํ•˜์ง€๋งŒ ์ข…์†์„ฑ์€ ํ™œ๋™์„ ์ œ์–ดํ•  ์ˆ˜ ์—†๋Š” ํƒ€์‚ฌ ํŒ€์— ์˜ํ•ด ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. Bytecode Alliance ํšŒ์›์€ ๋ณธ์งˆ์ ์œผ๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” WebAssembly ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•ˆ์ „ํ•œ ์‹คํ–‰์„ ์œ„ํ•œ ์ „์ฒด์ ์ธ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ๊ฐ ์ข…์†์„ฑ ๋ชจ๋“ˆ์ด ๋ณ„๋„๋กœ ๊ฒฉ๋ฆฌ๋œ WebAssembly ๋ชจ๋“ˆ๋กœ ๋ถ„๋ฆฌ๋˜๊ณ  ๊ทธ ๊ถŒํ•œ์ด ์ด ๋ชจ๋“ˆ๊ณผ ๊ด€๋ จํ•ด์„œ๋งŒ ์„ค์ •๋˜๋Š” ๋‚˜๋…ธํ”„๋กœ์„ธ์Šค ๊ฐœ๋…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋„คํŠธ์›Œํฌ ์†Œ์ผ“์ด๋‚˜ ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์žˆ์Œ) ํ”„๋กœ์„ธ์Šค ๋ถ„๋ฆฌ์™€ ๋‹ฌ๋ฆฌ WebAssembly ํ•ธ๋“ค๋Ÿฌ๋Š” ๊ฐ€๋ณ๊ณ  ์ถ”๊ฐ€ ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ฑฐ์˜ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ธ๋“ค๋Ÿฌ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์€ ์ผ๋ฐ˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋Š๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถ„๋ฆฌ๋Š” ๊ฐœ๋ณ„ ๋ชจ๋“ˆ ์ˆ˜์ค€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ณตํ†ต ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š” ๋ชจ๋“ˆ ๊ทธ๋ฃน ์ˆ˜์ค€์—์„œ๋„ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์ฒญ๋œ ๊ถŒํ•œ์€ ์ข…์†์„ฑ ์ž์ฒด ์ˆ˜์ค€์—์„œ ๊ฒฐ์ •๋  ์ˆ˜๋„ ์žˆ๊ณ  ์ƒ์œ„ ๋ชจ๋“ˆ์— ์˜ํ•ด ์ฒด์ธ์„ ๋”ฐ๋ผ ์ข…์†์„ฑ์œผ๋กœ ์œ„์ž„๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(WASI์˜ ๋ฆฌ์†Œ์Šค๋Š” ํŠน์ˆ˜ํ•œ ์œ ํ˜•์˜ ํŒŒ์ผ ์„ค๋ช…์ž(๋Šฅ๋ ฅ)์™€ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค). ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋ชจ๋“ˆ์— ์œ„์ž„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“ˆ์˜ ๊ฐœ๋ฐœ ์ธํ”„๋ผ๊ฐ€ ์†์ƒ๋˜๊ฑฐ๋‚˜ ์ทจ์•ฝ์ ์ด ์‹๋ณ„๋˜๋ฉด ๊ณต๊ฒฉ ์ค‘์— ์•ก์„ธ์Šค๋Š” ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค์—๋งŒ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ ์ž‘์„ฑ์ž์˜ ๋ฆฌ์†Œ์Šค ์„ ์–ธ์€ ํ…์ŠคํŠธ ์ฒ˜๋ฆฌ ๋ชจ๋“ˆ์ด ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์—ด ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ์˜์‹ฌ์Šค๋Ÿฌ์šด ํ™œ๋™์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์— ์„ค์ •๋œ ๊ถŒํ•œ์„ ํ™•์ธํ•˜๊ณ  ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ ๋กœ์ปฌ ๋ชจ๋“ˆ ์„œ๋ช…์ด ์—…๋ฐ์ดํŠธ๋  ๋•Œ๊นŒ์ง€ ์ข…์†์„ฑ ๋กœ๋“œ๊ฐ€ ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.

Bytecode Alliance ์‚ฐํ•˜์˜ ๊ณต๋™ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ๋ฒˆ์—ญ๋œ WebAssembly์™€ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ ํ”„๋กœ์ ํŠธ๋“ค, ์ด์ „์— ์–ผ๋ผ์ด์–ธ์Šค ์ฐฝ๋ฆฝ ํšŒ์‚ฌ๊ฐ€ ๋ณ„๋„๋กœ ๊ฐœ๋ฐœํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • wasmtime โ€” WASI ํ™•์žฅ์ด ํฌํ•จ๋œ WebAssembly ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ผ๋ฐ˜ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋Ÿฐํƒ€์ž„์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํŠน์ˆ˜ ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ WebAssembly ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ์‹คํ–‰ ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(wasmtime์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค). Wasmtime์€ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋งž๊ฒŒ ๋Ÿฐํƒ€์ž„์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•œ ๋ชจ๋“ˆ์‹ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฆฌ์†Œ์Šค๊ฐ€ ์ œํ•œ๋œ ์žฅ์น˜์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•œ ๋ฒ„์ „์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฃจ์…‹ โ€” WebAssembly ํ˜•์‹์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ๋Ÿฐํƒ€์ž„. ๋…ํŠนํ•œ ํŠน์ง• Lucet์€ JIT ๋Œ€์‹  ๋ณธ๊ฒฉ์ ์ธ ์˜ˆ์ƒ ์ปดํŒŒ์ผ(AOT, ์‚ฌ์ „ ์ปดํŒŒ์ผ)์„ ์ง์ ‘ ์‹คํ–‰์— ์ ํ•ฉํ•œ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” Fastly์— ์˜ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ์ตœ์†Œํ•œ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•˜๊ณ  ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•˜๋„๋ก ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Fastly๋Š” ๊ฐ ์š”์ฒญ์— ๋Œ€ํ•ด ์‹œ์ž‘๋˜๋Š” ํ•ธ๋“ค๋Ÿฌ์— ๋Œ€ํ•ด WebAssembly๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์šฐ๋“œ ์—์ง€ ์ปดํ“จํŒ… ์—”์ง„์—์„œ Lucet์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค). ๊ณต๋™ ํ”„๋กœ์ ํŠธ์˜ ์ผํ™˜์œผ๋กœ Lucet ์ปดํŒŒ์ผ๋Ÿฌ๋Š” Wasmtime์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€ํ™˜๋  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.
  • WAM (WebAssembly Micro Runtime)์€ ์›๋ž˜ Intel์ด ์‚ฌ๋ฌผ ์ธํ„ฐ๋„ท ์žฅ์น˜์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœํ•œ WebAssembly๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ๋Ÿฐํƒ€์ž„์ž…๋‹ˆ๋‹ค. WAMR์€ ์ตœ์†Œํ•œ์˜ ๋ฆฌ์†Œ์Šค ์†Œ๋น„์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ RAM ์šฉ๋Ÿ‰์ด ์ ์€ ์žฅ์น˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์—๋Š” WebAssembly ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์™€ ๊ฐ€์ƒ ๋จธ์‹ , API(Libc์˜ ํ•˜์œ„ ์ง‘ํ•ฉ) ๋ฐ ๋™์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋„๊ตฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํฌ๋ ˆ์ธ ๋ฆฌํ”„ํŠธ โ€” ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์™€ ๋…๋ฆฝ์ ์ธ ์ค‘๊ฐ„ ํ‘œํ˜„์„ ํŠน์ • ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ์— ์ตœ์ ํ™”๋œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ๊ธฐ์ž…๋‹ˆ๋‹ค. Cranelift๋Š” ๋งค์šฐ ๋น ๋ฅธ ๊ฒฐ๊ณผ ์ƒ์„ฑ์„ ์œ„ํ•ด ํ•จ์ˆ˜ ์ปดํŒŒ์ผ์˜ ๋ณ‘๋ ฌํ™”๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ JIT ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(Cranelift ๊ธฐ๋ฐ˜ JIT๋Š” Wasmtime ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‚ฌ์šฉ๋จ).
  • WASI ๊ณตํ†ต โ€” ์šด์˜ ์ฒด์ œ์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ WASI(WebAssembly System Interface) API์˜ ๋ณ„๋„ ๊ตฌํ˜„
  • ํ™”๋ฌผ-์™€์‹œ โ€” ๋ธŒ๋ผ์šฐ์ € ์™ธ๋ถ€์—์„œ WebAssembly๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด WASI ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Rust ์ฝ”๋“œ๋ฅผ WebAssembly ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์„ ๊ตฌํ˜„ํ•˜๋Š” Cargo ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์šฉ ๋ชจ๋“ˆ;
  • ์™€ํŠธ ะธ wasmparser โ€” ํ…์ŠคํŠธ(WAT, WAST) ๋ฐ WebAssembly ๋ฐ”์ดํŠธ์ฝ”๋“œ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ‘œํ˜„์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์„œ์ž…๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด WebAssembly๋Š” Asm.js์™€ ๋งค์šฐ ๋น„์Šทํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์–ฝ๋งค์ด์ง€ ์•Š๊ณ  ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ปดํŒŒ์ผ๋œ ์ €์ˆ˜์ค€ ์ค‘๊ฐ„ ์ฝ”๋“œ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹์ด๋ผ๋Š” ์ ์ด๋‹ค. WebAssembly๋Š” ๋ช…์‹œ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. WebAssembly์šฉ JIT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ์— ๊ฐ€๊นŒ์šด ์„ฑ๋Šฅ ์ˆ˜์ค€์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. WebAssembly์˜ ์ฃผ์š” ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜๋Š” ์ด์‹์„ฑ, ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋™์ž‘ ๋ฐ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ๋™์ผํ•œ ์ฝ”๋“œ ์‹คํ–‰์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€