์ด์ œ Python์˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•ด ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Python ๋ชจ๋“ˆ์„ C ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋Ÿฌํ•˜๋Š” MyPyC์˜ ์ฃผ์š” ๊ฐœ๋ฐœ์ž ์ค‘ ํ•œ ๋ช…์ธ Ethan Smith๋Š” ๋ธŒ๋ผ์šฐ์ € ๋‚ด์—์„œ ์ž‘๋™ํ•˜๋„๋ก ๊ธฐ๋ณธ CPython ๋ธŒ๋žœ์น˜๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋Š” CPython ์ฝ”๋“œ๋ฒ ์ด์Šค(Python์˜ ๊ธฐ๋ณธ ๊ตฌํ˜„)์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค๊ณ  ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ํŒจ์น˜์— ์˜์ง€ํ•˜์ง€ ์•Š๊ณ . Emscripten ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ”์šฉ ํ•˜์œ„ ์ˆ˜์ค€ ์ค‘๊ฐ„ ์ฝ”๋“œ WebAssembly๋กœ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์ด์ œ Python์˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•ด ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ž‘์—…์€ Python ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ฐฝ์‹œ์ž์ธ Guido van Rossum์˜ ์Šน์ธ์„ ๋ฐ›์•˜์œผ๋ฉฐ, ๊ทธ๋Š” Python ์ง€์›์„ ์™„์ „ํžˆ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๋Š” ๋Œ€ํ™”ํ˜• ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” github.dev ์›น ์„œ๋น„์Šค์— ํ†ตํ•ฉํ•  ๊ฒƒ์„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. Microsoft์˜ Jonathan Carter๋Š” ํ˜„์žฌ github.dev์—์„œ Python ์–ธ์–ด ์ง€์›์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ด์ง€๋งŒ github.dev์˜ ๊ธฐ์กด ํ”„๋กœํ† ํƒ€์ž… Jupyter ์ปดํ“จํŒ… ํ”„๋ ˆ์ž„์›Œํฌ๋Š” Pyodide ํ”„๋กœ์ ํŠธ(WebAssembly์˜ Python 3.9 ๋Ÿฐํƒ€์ž„ ๋นŒ๋“œ)๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ํ† ๋ก ์—์„œ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋ฌถ์ด์ง€ ์•Š๊ณ  Python์˜ WebAssembly ํ‘œํ˜„์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด WASI(WebAssembly System Interface) ์ง€์›์œผ๋กœ Python์„ ์กฐ๋ฆฝํ•˜๋Š” ์ฃผ์ œ๋„ ์ œ๊ธฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. WASI๋Š” pthread API ๊ตฌํ˜„์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ  Python์€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์„ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์œผ๋ฉด ๋นŒ๋“œํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ๋งŽ์€ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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