WebAssembly GC ํตํฉ์ ๋ณต์ก์ฑ์ ์ดํด๋ณด๊ณ ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ฐธ์กฐ ์นด์ดํ ์ ์ค์ ์ ๋ก๋๋ค. ๊ธ๋ก๋ฒ ๊ฐ๋ฐ, ์ฑ๋ฅ, ์ํธ ์ด์ฉ์ฑ์ ๋ฏธ์น๋ ์ํฅ์ ์ดํดํฉ๋๋ค.
WebAssembly GC ํตํฉ: ๊ธ๋ก๋ฒ ์ํ๊ณ๋ฅผ ์ํ ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ฐธ์กฐ ์นด์ดํ ํ์
WebAssembly(Wasm)๋ C++ ๋ฐ Rust์ ๊ฐ์ ์ธ์ด๋ฅผ ์ํ ์์ ํ ์๋๋ฐ์ค ์คํ ํ๊ฒฝ์์ ํจ์ฌ ๋ ๊ด๋ฒ์ํ ์ํํธ์จ์ด๋ฅผ ์คํํ ์ ์๋ ๋ค๋ชฉ์ ํ๋ซํผ์ผ๋ก ๋น ๋ฅด๊ฒ ๋ฐ์ ํ์ต๋๋ค. ์ด ์งํ์ ์ค์ํ ๋ฐ์ ์ ๊ฐ๋น์ง ์ปฌ๋ ์ (GC)์ ํตํฉ์ ๋๋ค. ์ด ๊ธฐ๋ฅ์ Java, C#, Python, Go์ ๊ฐ์ด ์ ํต์ ์ผ๋ก ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์์กดํ๋ ์ธ์ด๊ฐ Wasm ์ํ๊ณ ๋ด์์ ํจ์จ์ ์ผ๋ก ์ปดํ์ผ ๋ฐ ์คํ๋ ์ ์๋ ์ ์ฌ๋ ฅ์ ์ด์ด์ค๋๋ค. ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ WebAssembly GC ํตํฉ์ ๋ฏธ๋ฌํ ์ฐจ์ด, ํนํ ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ฐธ์กฐ ์นด์ดํ ์ ์ค์ ์ ๋๊ณ ๊ธ๋ก๋ฒ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ํ ์์ฌ์ ์ ํ๊ตฌํฉ๋๋ค.
WebAssembly์์ GC์ ํ์์ฑ
์ญ์ฌ์ ์ผ๋ก WebAssembly๋ ์ ์์ค ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์์ต๋๋ค. C ๋ฐ C++์ ๊ฐ์ ์ธ์ด๊ฐ ํฌ์ธํฐ ๊ธฐ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ฝ๊ฒ ๋งคํํ ์ ์๋ ์ ํ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ์ ์ ๊ณตํ์ต๋๋ค. ์ด๋ ๋ฐ์ด๋ ์ฑ๋ฅ๊ณผ ์์ธก ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ๋์์ ์ ๊ณตํ์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋น์ง ์ปฌ๋ ํฐ ๋๋ ์ฐธ์กฐ ์นด์ดํ ์ ํตํด ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์์กดํ๋ ์ ์ฒด ์ธ์ด ํด๋์ค๋ฅผ ์ ์ธํ์ต๋๋ค.
์ด๋ฌํ ์ธ์ด๋ฅผ Wasm์ผ๋ก ๊ฐ์ ธ์ค๋ ค๋ ์ด๋ง์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ค์ํ์ต๋๋ค.
- ๋ ๋์ ์ธ์ด ์ง์: Java, Python, Go, C#๊ณผ ๊ฐ์ ์ธ์ด๋ฅผ Wasm์์ ์คํํ ์ ์๊ฒ ๋๋ฉด ํ๋ซํผ์ ๋๋ฌ ๋ฒ์์ ์ ์ฉ์ฑ์ด ํฌ๊ฒ ํ์ฅ๋ฉ๋๋ค. ๊ฐ๋ฐ์๋ ์น, ์๋ฒ ๋๋ ์ฃ์ง ์ปดํจํ ์๋๋ฆฌ์ค์ Wasm ํ๊ฒฝ ๋ด์์ ์ด๋ฌํ ์ธ๊ธฐ ์๋ ์ธ์ด์ ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค ๋ฐ ๋๊ตฌ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
- ๊ฐ๋ฐ ๊ฐ์ํ: ๋ง์ ๊ฐ๋ฐ์์๊ฒ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ๋ฒ๊ทธ, ๋ณด์ ์ทจ์ฝ์ ๋ฐ ๊ฐ๋ฐ ์ค๋ฒํค๋์ ์๋นํ ์์ธ์ ๋๋ค. ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ์ฌ ์์ง๋์ด๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋ ์ง์คํ๊ณ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ํด์ ์๋ ๋ ์ง์คํ ์ ์๋๋ก ํฉ๋๋ค.
- ์ํธ ์ด์ฉ์ฑ: Wasm์ด ์ฑ์ํจ์ ๋ฐ๋ผ ๋ค์ํ ์ธ์ด ๋ฐ ๋ฐํ์ ๊ฐ์ ์ํํ ์ํธ ์ด์ฉ์ฑ์ด ์ ์ ๋ ์ค์ํด์ง๊ณ ์์ต๋๋ค. GC ํตํฉ์ ๋ค์ํ ์ธ์ด๋ก ์์ฑ๋ Wasm ๋ชจ๋, ํนํ ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋ชจ๋ ๊ฐ์ ๋ณด๋ค ์ ๊ตํ ์ํธ ์์ฉ์ ์ํ ๊ธธ์ ์ด์ด์ค๋๋ค.
WebAssembly GC(WasmGC) ์๊ฐ
์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ํด๊ฒฐํ๊ธฐ ์ํด WebAssembly ์ปค๋ฎค๋ํฐ๋ ์ข ์ข WasmGC๋ผ๊ณ ๋ถ๋ฆฌ๋ GC ํตํฉ์ ์ ๊ทน์ ์ผ๋ก ๊ฐ๋ฐํ๊ณ ํ์คํํ๊ณ ์์ต๋๋ค. ์ด ๋ ธ๋ ฅ์ GC ์ง์ ์ธ์ด์ ๋ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํ์คํ๋ ๋ฐฉ๋ฒ์ Wasm ๋ฐํ์์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
WasmGC๋ WebAssembly ์ฌ์์ GC๋ณ ์๋ก์ด ๋ช ๋ น์ด ๋ฐ ์ ํ์ ๋์ ํฉ๋๋ค. ์ด๋ฌํ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ปดํ์ผ๋ฌ๊ฐ ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ ํ๊ณผ ์ํธ ์์ฉํ๋ Wasm ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋๋ก ํ์ฌ ๋ฐํ์์ด ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ์ํํ ์ ์๋๋ก ํฉ๋๋ค. ํต์ฌ ์์ด๋์ด๋ Wasm ๋ฐ์ดํธ์ฝ๋ ์์ฒด์์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ณต์ก์ฑ์ ์ถ์ํํ์ฌ ๋ค์ํ GC ์ ๋ต์ ๋ฐํ์์์ ๊ตฌํํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
WasmGC์ ํต์ฌ ๊ฐ๋
WasmGC๋ ์๋์ ์ดํดํ๋ ๋ฐ ์ค์ํ ์ฌ๋ฌ ํต์ฌ ๊ฐ๋ ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
- GC ์ ํ: WasmGC๋ ๊ด๋ฆฌํ ํ ๋ด์ ๊ฐ์ฒด ๋ฐ ์ฐธ์กฐ๋ฅผ ๋ํ๋ด๋ ์๋ก์ด ์ ํ์ ๋์ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฐฐ์ด, ๊ตฌ์กฐ์ฒด ๋ฐ ์ ์ฌ์ ์ผ๋ก ๋ค๋ฅธ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํ ์ ํ์ด ํฌํจ๋ฉ๋๋ค.
- GC ๋ช ๋ น์ด: ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ์ ์ํธ ์์ฉํ๋ ๊ฐ์ฒด ํ ๋น, ์ฐธ์กฐ ์์ฑ ๋ฐ ์ ํ ๊ฒ์ฌ์ ๊ฐ์ ์์ ์ ์ํ ์๋ก์ด ๋ช ๋ น์ด๊ฐ ์ถ๊ฐ๋ฉ๋๋ค.
- Rtt(์๋ณต ์ ํ ์ ๋ณด): ์ด ๋ฉ์ปค๋์ฆ์ GC ์์ ๋ฐ ๋์ ๋์คํจ์น์ ํ์์ ์ธ ๋ฐํ์์ ์ ํ ์ ๋ณด๋ฅผ ๋ณด์กดํ๊ณ ์ ๋ฌํ ์ ์๋๋ก ํฉ๋๋ค.
- ํ ๊ด๋ฆฌ: Wasm ๋ฐํ์์ ํ ๋น, ํด์ ๋ฐ ๊ฐ๋น์ง ์ปฌ๋ ์ ์๊ณ ๋ฆฌ์ฆ ์์ฒด ์คํ์ ํฌํจํ GC ํ์ ๊ด๋ฆฌํ ์ฑ ์์ด ์์ต๋๋ค.
WebAssembly์ ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ
๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ๋ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ์๋ ์ธ์ด์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋๋ค. WasmGC์ ๋งฅ๋ฝ์์ ์ด๋ ์ปดํ์ผ๋ Wasm ์ฝ๋ ์์ฒด๊ฐ ์๋๋ผ WebAssembly ๋ฐํ์์ด ๊ฐ์ฒด์์ ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น, ์ถ์ ๋ฐ ํ์ํ ์ฑ ์์ด ์์์ ์๋ฏธํฉ๋๋ค.
์ด๋ ์์ ๋ฐ์ดํธ ๋ฐฐ์ด์ฒ๋ผ ์๋ํ๋ ๊ธฐ์กด Wasm ์ ํ ๋ฉ๋ชจ๋ฆฌ์ ๋์กฐ๋ฉ๋๋ค. ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ ํ๊ฒฝ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์๋ ํ ๋น: GC ์ง์ ์ธ์ด๊ฐ ๊ฐ์ฒด(์: ํด๋์ค ์ธ์คํด์ค, ๋ฐ์ดํฐ ๊ตฌ์กฐ)๋ฅผ ์์ฑํ ๋ Wasm ๋ฐํ์์ ๊ด๋ฆฌํ ํ์์ ํด๋น ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํฉ๋๋ค.
- ์๋ช ์ถ์ : ๋ฐํ์์ ์ด๋ฌํ ๊ด๋ฆฌํ ๊ฐ์ฒด์ ์๋ช ์ ์ถ์ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๊ฐ์ฒด๊ฐ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์์ ๋ ์ด์ ๋๋ฌํ ์ ์์ ๋๋ฅผ ์ ์ ์์ต๋๋ค.
- ์๋ ํด์ (๊ฐ๋น์ง ์ปฌ๋ ์ ): ๊ฐ์ฒด๊ฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉด ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ํด๋น ๊ฐ์ฒด๊ฐ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ํ์ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐฉ์ง๋๊ณ ๊ฐ๋ฐ์ด ํฌ๊ฒ ๋จ์ํ๋ฉ๋๋ค.
๊ธ๋ก๋ฒ ๊ฐ๋ฐ์๋ฅผ ์ํ ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ์ ์ด์ ์ ์์ฒญ๋ฉ๋๋ค.
- ๋ฒ๊ทธ ํ๋ฉด ๊ฐ์: null ํฌ์ธํฐ ์ญ์ฐธ์กฐ, ์ฌ์ฉ ํ ํด์ , ์ด์ค ํด์ ์ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์ค๋ฅ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ์ด๋ฌํ ์ค๋ฅ๋ ํนํ ๋ค๋ฅธ ์๊ฐ๋์ ๋ฌธํ์ ๋งฅ๋ฝ์ ๊ฐ์ง ๋ถ์ฐ ํ์์ ๋๋ฒ๊น ํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต์ต๋๋ค.
- ํฅ์๋ ๋ณด์: ๋ฉ๋ชจ๋ฆฌ ์์์ ๋ฐฉ์งํจ์ผ๋ก์จ ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ๋ ๋ณด๋ค ์์ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ์ฌํ๋ฉฐ, ์ด๋ ๊ธ๋ก๋ฒ ์ํํธ์จ์ด ๋ฐฐํฌ์ ๋ํ ์ค์ํ ๊ด์ฌ์ฌ์ ๋๋ค.
- ๋ ๋น ๋ฅธ ๋ฐ๋ณต: ๊ฐ๋ฐ์๋ ๋ณต์กํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ณด๋ค๋ ๊ธฐ๋ฅ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง์ ์ง์คํ ์ ์์ด ๊ธ๋ก๋ฒ ๊ณ ๊ฐ์ ๋์์ผ๋ก ํ๋ ์ ํ์ ๊ฐ๋ฐ ์ฃผ๊ธฐ์ ์์ฅ ์ถ์ ์๊ฐ์ ๋จ์ถํ ์ ์์ต๋๋ค.
์ฐธ์กฐ ์นด์ดํ : ํต์ฌ GC ์ ๋ต
WasmGC๋ ์ ๋ค๋ฆญ์ผ๋ก ์ค๊ณ๋์๊ณ ๋ค์ํ ๊ฐ๋น์ง ์ปฌ๋ ์ ์๊ณ ๋ฆฌ์ฆ์ ์ง์ํ์ง๋ง, ์ฐธ์กฐ ์นด์ดํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ด๊ณ ๋๋ฆฌ ์ดํด๋๋ ์ ๋ต ์ค ํ๋์ ๋๋ค. Swift, Objective-C, Python(Python์ ์ํ ๊ฐ์ง๊ธฐ๋ ์ฌ์ฉํ์ง๋ง)์ ํฌํจํ ๋ง์ ์ธ์ด๊ฐ ์ฐธ์กฐ ์นด์ดํ ์ ํ์ฉํฉ๋๋ค.
์ฐธ์กฐ ์นด์ดํ ์์ ๊ฐ ๊ฐ์ฒด๋ ์์ ์ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ ์๋ฅผ ์ ์งํฉ๋๋ค.
- ์นด์ดํธ ์ฆ๊ฐ: ๊ฐ์ฒด์ ๋ํ ์ ์ฐธ์กฐ๊ฐ ๋ง๋ค์ด์ง ๋๋ง๋ค(์: ๋ณ์์ ํ ๋น, ์ธ์๋ก ์ ๋ฌ) ๊ฐ์ฒด์ ์ฐธ์กฐ ์๊ฐ ์ฆ๊ฐํฉ๋๋ค.
- ์นด์ดํธ ๊ฐ์: ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๊ฐ ์ ๊ฑฐ๋๊ฑฐ๋ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฉด ๊ฐ์ฒด์ ์ฐธ์กฐ ์๊ฐ ๊ฐ์ํฉ๋๋ค.
- ํด์ : ๊ฐ์ฒด์ ์ฐธ์กฐ ์๊ฐ 0์ด ๋๋ฉด ํ๋ก๊ทธ๋จ์ ์ด๋ ๋ถ๋ถ๋ ๋ ์ด์ ์ก์ธ์คํ ์ ์์์ ์๋ฏธํ๋ฉฐ ํด๋น ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฆ์ ํด์ ํ ์ ์์ต๋๋ค.
์ฐธ์กฐ ์นด์ดํ ์ ์ฅ์
- ์์ธก ๊ฐ๋ฅํ ํด์ : ๊ฐ์ฒด๊ฐ ๋๋ฌํ ์ ์๊ฒ ๋๋ ์ฆ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์๋๋ฏ๋ก ์ฃผ๊ธฐ์ ์ผ๋ก ์คํ๋ ์ ์๋ ์ถ์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ์ ๋นํด ๋ ์์ธก ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํจํด์ผ๋ก ์ด์ด์ง๋๋ค. ์ด๋ ์ค์๊ฐ ์์คํ ๋๋ ์๊ฒฉํ ์ง์ฐ ์๊ฐ ์๊ตฌ ์ฌํญ์ด ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ตํ ์ ์์ผ๋ฉฐ, ์ด๋ ๊ธ๋ก๋ฒ ์๋น์ค์ ์ค์ํ ๊ณ ๋ ค ์ฌํญ์ ๋๋ค.
- ๋จ์์ฑ: ์ฐธ์กฐ ์นด์ดํ ์ ํต์ฌ ๊ฐ๋ ์ ์ดํดํ๊ณ ๊ตฌํํ๊ธฐ๊ฐ ๋น๊ต์ ๊ฐ๋จํฉ๋๋ค.
- 'Stop-the-World' ์ผ์ ์ค์ง ์์: ์ปฌ๋ ์ ์ ์ํํ๊ธฐ ์ํด ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ์ ์ค์งํ ์ ์๋ ์ผ๋ถ ์ถ์ GC์ ๋ฌ๋ฆฌ, ์ฐธ์กฐ ์นด์ดํ ์ ํด์ ๋ ์ข ์ข ์ฆ๋ถ์ ์ด๋ฉฐ ์ ์ญ ์ผ์ ์ค์ง ์์ด ๋ค์ํ ์์ ์์ ๋ฐ์ํ ์ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ๋์ฑ ์ํํ๊ฒ ๋ง๋๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.
์ฐธ์กฐ ์นด์ดํ ์ ๊ณผ์
์ฅ์ ์๋ ๋ถ๊ตฌํ๊ณ ์ฐธ์กฐ ์นด์ดํ ์๋ ์๋นํ ๋จ์ ์ด ์์ต๋๋ค.
- ์ํ ์ฐธ์กฐ: ์ฃผ์ ๊ณผ์ ๋ ์ํ ์ฐธ์กฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋๋ค. ๊ฐ์ฒด A๊ฐ ๊ฐ์ฒด B๋ฅผ ์ฐธ์กฐํ๊ณ ๊ฐ์ฒด B๊ฐ ๊ฐ์ฒด A๋ฅผ ๋ค์ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ, A ๋๋ B๋ฅผ ๊ฐ๋ฆฌํค๋ ์ธ๋ถ ์ฐธ์กฐ๊ฐ ์๋๋ผ๋ ์ฐธ์กฐ ์๊ฐ 0์ ๋๋ฌํ์ง ์์ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ง์ ์ฐธ์กฐ ์นด์ดํ ์์คํ ์ ์ด๋ฌํ ์ํ ๊ตฌ์กฐ๊ฐ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ณํ๊ณ ํ์ํ๊ธฐ ์ํด ์ํ ๊ฐ์ง๊ธฐ์ ๊ฐ์ ๋ณด์กฐ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํฉ๋๋ค.
์ปดํ์ผ๋ฌ ๋ฐ WasmGC ํตํฉ
WasmGC์ ํจ๊ณผ๋ ์ปดํ์ผ๋ฌ๊ฐ GC ์ง์ ์ธ์ด์ ๋ํ Wasm ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ ํฌ๊ฒ ์ข์ฐ๋ฉ๋๋ค. ์ปดํ์ผ๋ฌ๋ ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
- GC๋ณ ๋ช ๋ น์ด ์์ฑ: ๊ด๋ฆฌํ ํ ๊ฐ์ฒด์์ ์๋ํ๋ ๊ฐ์ฒด ํ ๋น, ๋ฉ์๋ ํธ์ถ ๋ฐ ํ๋ ์ก์ธ์ค๋ฅผ ์ํ ์๋ก์ด WasmGC ๋ช ๋ น์ด๋ฅผ ํ์ฉํฉ๋๋ค.
- ์ฐธ์กฐ ๊ด๋ฆฌ: ๊ฐ์ฒด ๊ฐ์ ์ฐธ์กฐ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ์ ๋๊ณ ๋ฐํ์์ ์ฐธ์กฐ ์นด์ดํ (๋๋ ๋ค๋ฅธ GC ๋ฉ์ปค๋์ฆ)์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ณดํ๋๋๋ก ํฉ๋๋ค.
- RTT ์ฒ๋ฆฌ: ์ ํ ์ ๋ณด์ ๋ํด RTT๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์์ฑํ๊ณ ์ฌ์ฉํ์ฌ ๋์ ๊ธฐ๋ฅ ๋ฐ GC ์์ ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์์ ์ต์ ํ: GC ์ํธ ์์ฉ๊ณผ ๊ด๋ จ๋ ์ค๋ฒํค๋๋ฅผ ์ต์ํํ๋ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
์๋ฅผ ๋ค์ด, Go์ ๊ฐ์ ์ธ์ด์ ์ปดํ์ผ๋ฌ๋ Go์ ๋ฐํ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ WasmGC ๋ช ๋ น์ผ๋ก ๋ฒ์ญํด์ผ ํฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ ๊ตํ ์ถ์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ฅผ ํฌํจํฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก Swift์ ์๋ ์ฐธ์กฐ ์นด์ดํ (ARC)์ Wasm์ GC ๊ธฐ๋ณธ์ ๋งคํ๋์ด์ผ ํ๋ฉฐ, ์์์ retain/release ํธ์ถ ์์ฑ์ ํฌํจํ๊ฑฐ๋ Wasm ๋ฐํ์์ ๊ธฐ๋ฅ์ ์์กดํ ์ ์์ต๋๋ค.
๋์ ์ธ์ด์ ์:
- Java/Kotlin (GraalVM ๊ฒฝ์ ): GraalVM์ด Java ๋ฐ์ดํธ์ฝ๋๋ฅผ Wasm์ผ๋ก ์ปดํ์ผํ๋ ๋ฅ๋ ฅ์ ์ฃผ์ ์์ ๋๋ค. GraalVM์ WasmGC๋ฅผ ํ์ฉํ์ฌ Java ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ ์ ์์ผ๋ฏ๋ก Java ์ ํ๋ฆฌ์ผ์ด์ ์ด Wasm ํ๊ฒฝ์์ ํจ์จ์ ์ผ๋ก ์คํ๋ ์ ์์ต๋๋ค.
- C#: .NET Core ๋ฐ .NET 5+๋ WebAssembly ์ง์์์ ์๋นํ ๋ฐ์ ์ ์ด๋ฃจ์์ต๋๋ค. ์ด๊ธฐ ๋ ธ๋ ฅ์ ํด๋ผ์ด์ธํธ ์ธก ์ ํ๋ฆฌ์ผ์ด์ ์ฉ Blazor์ ์ค์ ์ ๋์์ง๋ง, WasmGC๋ฅผ ํตํ ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ ํตํฉ์ Wasm์์ ๋ ๋์ ๋ฒ์์ .NET ์ํฌ๋ก๋๋ฅผ ์ง์ํ๊ธฐ ์ํ ์์ฐ์ค๋ฌ์ด ๋ฐ์ ์ ๋๋ค.
- Python: Pyodide์ ๊ฐ์ ํ๋ก์ ํธ๋ ๋ธ๋ผ์ฐ์ ์์ Python์ ์คํํ๋ ๊ฒ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ํฅํ ๋ฐ๋ณต์์๋ ์ด์ ๊ธฐ์ ์ ๋นํด Python ๊ฐ์ฒด์ ๋ ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด WasmGC๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
- Go: Go ์ปดํ์ผ๋ฌ๋ ์์ ๊ณผ ํจ๊ป Wasm์ ๋์์ผ๋ก ํ ์ ์์ต๋๋ค. WasmGC์ ํตํฉํ๋ฉด Go์ ๋ฐํ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ Wasm GC ํ๋ ์์ํฌ ๋ด์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ํ ์ ์์ต๋๋ค.
- Swift: Swift์ ARC ์์คํ ์ WasmGC ํตํฉ์ ์ฃผ์ ํ๋ณด์ด๋ฉฐ, Swift ์ ํ๋ฆฌ์ผ์ด์ ์ด Wasm ํ๊ฒฝ์์ ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค.
๋ฐํ์ ๊ตฌํ ๋ฐ ์ฑ๋ฅ ๊ณ ๋ ค ์ฌํญ
WasmGC ์ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ฃผ๋ก Wasm ๋ฐํ์ ๋ฐ GC ๊ตฌํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ค๋ฅธ ๋ฐํ์(์: ๋ธ๋ผ์ฐ์ , Node.js ๋๋ ๋ ๋ฆฝํ Wasm ๋ฐํ์)์ ๋ค๋ฅธ GC ์๊ณ ๋ฆฌ์ฆ ๋ฐ ์ต์ ํ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ถ์ GC ๋ ์ฐธ์กฐ ์นด์ดํ : ๋ฐํ์์ ์ธ๋ ์ถ์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ, ๋ณ๋ ฌ ๋งํฌ-์ค์ ์ปฌ๋ ํฐ ๋๋ ๋ ์ ๊ตํ ๋์ ์ปฌ๋ ํฐ๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ์์ค ์ธ์ด๊ฐ ์ฐธ์กฐ ์นด์ดํ ์ ์์กดํ๋ ๊ฒฝ์ฐ ์ปดํ์ผ๋ฌ๋ Wasm GC ์์คํ ๋ด์ ์ฐธ์กฐ ์นด์ดํ ๋ฉ์ปค๋์ฆ๊ณผ ์ง์ ์ํธ ์์ฉํ๋ ์ฝ๋๋ฅผ ์์ฑํ๊ฑฐ๋ ์ฐธ์กฐ ์นด์ดํ ์ ํธํ๋๋ ์ถ์ GC ๋ชจ๋ธ๋ก ๋ฒ์ญํ ์ ์์ต๋๋ค.
- ์ค๋ฒํค๋: GC ์์ ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ด๊ณ์์ด ์ฝ๊ฐ์ ์ค๋ฒํค๋๋ฅผ ๋ฐ์์ํต๋๋ค. ์ด ์ค๋ฒํค๋์๋ ํ ๋น, ์ฐธ์กฐ ์ ๋ฐ์ดํธ ๋ฐ GC ์ฃผ๊ธฐ ์์ฒด์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ํฌํจ๋ฉ๋๋ค. ํจ์จ์ ์ธ ๊ตฌํ์ Wasm์ด ๋ค์ดํฐ๋ธ ์ฝ๋์ ๊ฒฝ์๋ ฅ์ ์ ์งํ๋๋ก ์ด๋ฌํ ์ค๋ฒํค๋๋ฅผ ์ต์ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋: ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ ์์คํ ์ ๊ฐ ๊ฐ์ฒด(์: ์ ํ ์ ๋ณด, ์ฐธ์กฐ ์)์ ํ์ํ ๋ฉํ๋ฐ์ดํฐ๋ก ์ธํด ์ข ์ข ์ฝ๊ฐ ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๊ฐ์ต๋๋ค.
- ์ํธ ์ด์ฉ์ฑ ์ค๋ฒํค๋: ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ต์ ๊ฐ์ง Wasm ๋ชจ๋ ๊ฐ ๋๋ Wasm๊ณผ ํธ์คํธ ํ๊ฒฝ(์: JavaScript) ๊ฐ์ ํธ์ถํ ๋ ๋ฐ์ดํฐ ๋ง์ฌ๋ง ๋ฐ ์ฐธ์กฐ ์ ๋ฌ์ ์ถ๊ฐ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ธ๋ก๋ฒ ์ฒญ์ค์๊ฒ๋ ์ด๋ฌํ ์ฑ๋ฅ ํน์ฑ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฌ๋ฌ ์ง์ญ์ ๋ฐฐํฌ๋ ์๋น์ค๋ ์ผ๊ด๋๊ณ ์์ธก ๊ฐ๋ฅํ ์ฑ๋ฅ์ด ํ์ํฉ๋๋ค. WasmGC๋ ํจ์จ์ฑ์ ๋ชฉํ๋ก ํ์ง๋ง, ๋ฒค์น๋งํน ๋ฐ ํ๋กํ์ผ๋ง์ ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์์ ์ ๋๋ค.
๊ธ๋ก๋ฒ ์ํฅ ๋ฐ WasmGC์ ๋ฏธ๋
WebAssembly์ GC๋ฅผ ํตํฉํ๋ ๊ฒ์ ๊ธ๋ก๋ฒ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ด๋ฒ์ํ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
- Wasm ๋ฏผ์ฃผํ: ์ธ๊ธฐ ์๋ ๊ณ ์์ค ์ธ์ด๋ฅผ Wasm์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ ์ฝ๊ฒ ํจ์ผ๋ก์จ WasmGC๋ ํ๋ซํผ์ ๋ํ ์ก์ธ์ค๋ฅผ ๋ฏผ์ฃผํํฉ๋๋ค. Python ๋๋ Java์ ๊ฐ์ ์ธ์ด์ ์ต์ํ ๊ฐ๋ฐ์๋ ์ด์ C++ ๋๋ Rust๋ฅผ ๋ง์คํฐํ์ง ์๊ณ ๋ Wasm ํ๋ก์ ํธ์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
- ํฌ๋ก์ค ํ๋ซํผ ์ผ๊ด์ฑ: Wasm์ ํ์คํ๋ GC ๋ฉ์ปค๋์ฆ์ ํฌ๋ก์ค ํ๋ซํผ ์ผ๊ด์ฑ์ ์ด์งํฉ๋๋ค. Wasm์ผ๋ก ์ปดํ์ผ๋ Java ์ ํ๋ฆฌ์ผ์ด์ ์ Windows์ ๋ธ๋ผ์ฐ์ , Linux์ ์๋ฒ ๋๋ ์๋ฒ ๋๋ ์ฅ์น์์ ์คํ๋๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ์์ธก ๊ฐ๋ฅํ๊ฒ ๋์ํด์ผ ํฉ๋๋ค.
- ์ฃ์ง ์ปดํจํ ๋ฐ IoT: Wasm์ด ์ฃ์ง ์ปดํจํ ๋ฐ ์ฌ๋ฌผ ์ธํฐ๋ท(IoT) ์ฅ์น์์ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์๋ ๊ฐ์ด๋ฐ, ๊ด๋ฆฌํ ์ธ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ์คํํ๋ ๊ธฐ๋ฅ์ด ์ค์ํด์ง๊ณ ์์ต๋๋ค. ๋ง์ IoT ์ ํ๋ฆฌ์ผ์ด์ ์ GC๊ฐ ์๋ ์ธ์ด๋ก ๊ตฌ์ถ๋๋ฉฐ, WasmGC๋ฅผ ํตํด ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ฝ๊ฒ ๋ฆฌ์์ค๊ฐ ์ ํ๋ ์ฅ์น์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- ์๋ฒ๋ฆฌ์ค ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค: Wasm์ ๋น ๋ฅธ ์์ ์๊ฐ๊ณผ ์์ ํํ๋ฆฐํธ๋ก ์ธํด ์๋ฒ๋ฆฌ์ค ํจ์ ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ํ ๋งค๋ ฅ์ ์ธ ํ๋ณด์ ๋๋ค. WasmGC๋ฅผ ํตํด ๋ค์ํ ์ธ์ด๋ก ์์ฑ๋ ๋ ๋์ ๋ฒ์์ ์๋น์ค๋ฅผ ์ด๋ฌํ ํ๊ฒฝ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- ์น ๊ฐ๋ฐ ์งํ: ํด๋ผ์ด์ธํธ ์ธก์์ WasmGC๋ JavaScript ์ด์ธ์ ์ธ์ด๋ก ์์ฑ๋ ๋ ๋ณต์กํ๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ถ์ํํ๋ ํ๋ ์์ํฌ์ ๋ํ ์์กด๋๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
์์ผ๋ก์ ๊ธธ
WasmGC ์ฌ์์ ์์ง ๊ฐ๋ฐ ์ค์ด๋ฉฐ ์ฑํ์ ์ ์ง์ ์ธ ๊ณผ์ ์ด ๋ ๊ฒ์ ๋๋ค. ์ง์์ ์ธ ๊ฐ๋ฐ ๋ฐ ์ด์ ์์ญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํ์คํ ๋ฐ ์ํธ ์ด์ฉ์ฑ: WasmGC๊ฐ ์ ์ ์๋์ด ์๊ณ ๋ค์ํ ๋ฐํ์์ด ์ผ๊ด๋๊ฒ ๊ตฌํํ๋๋ก ํ๋ ๊ฒ์ ๊ธ๋ก๋ฒ ์ฑํ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ํด์ฒด์ธ ์ง์: ๋ค์ํ ์ธ์ด์ ๋ํ ์ปดํ์ผ๋ฌ ๋ฐ ๋น๋ ๋๊ตฌ๋ WasmGC ์ง์์ ์ฑ์์์ผ์ผ ํฉ๋๋ค.
- ์ฑ๋ฅ ์ต์ ํ: GC์ ๊ด๋ จ๋ ์ค๋ฒํค๋๋ฅผ ์ค์ด๊ณ WasmGC ์ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํ ์ง์์ ์ธ ๋ ธ๋ ฅ์ด ์ด๋ฃจ์ด์ง ๊ฒ์ ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ต: ๋ค์ํ Wasm ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ๋ค์ํ GC ์๊ณ ๋ฆฌ์ฆ ๋ฐ ์ ํฉ์ฑ์ ๋ํ ํ์ฌ๊ฐ ๊ณ์๋ ๊ฒ์ ๋๋ค.
๊ธ๋ก๋ฒ ๊ฐ๋ฐ์๋ฅผ ์ํ ์ค์ง์ ์ธ ํต์ฐฐ๋ ฅ
๊ธ๋ก๋ฒ ๋งฅ๋ฝ์์ ์ผํ๋ ๊ฐ๋ฐ์๋ก์ WebAssembly GC ํตํฉ์ ๋ํ ๋ช ๊ฐ์ง ์ค์ง์ ์ธ ๊ณ ๋ ค ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์์ ์ ์ ํฉํ ์ธ์ด ์ ํ: ์ ํํ ์ธ์ด์ ๊ฐ์ ๊ณผ ์ฝ์ , ๊ทธ๋ฆฌ๊ณ GC ๊ธฐ๋ฐ์ธ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ชจ๋ธ์ด WasmGC๋ก ์ด๋ป๊ฒ ๋ณํ๋๋์ง ์ดํดํฉ๋๋ค. ์ฑ๋ฅ์ด ์ค์ํ ๊ตฌ์ฑ ์์์ ๊ฒฝ์ฐ ๋ ์ง์ ์ ์ธ ์ ์ด ๋๋ ์ต์ ํ๋ GC๋ฅผ ๊ฐ์ถ ์ธ์ด๊ฐ ์ฌ์ ํ ์ ํธ๋ ์ ์์ต๋๋ค.
- GC ๋์ ์ดํด: ์๋ ๊ด๋ฆฌ์๋ ๋ถ๊ตฌํ๊ณ ์ธ์ด์ GC๊ฐ ์๋ํ๋ ๋ฐฉ์์ ์๊ณ ์์ด์ผ ํฉ๋๋ค. ์ฐธ์กฐ ์นด์ดํ ์ธ ๊ฒฝ์ฐ ์ํ ์ฐธ์กฐ๋ฅผ ์ผ๋์ ๋์ญ์์ค. ์ถ์ GC์ธ ๊ฒฝ์ฐ ์ ์ฌ์ ์ธ ์ผ์ ์ค์ง ์๊ฐ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํจํด์ ์ดํดํฉ๋๋ค.
- ๋ค์ํ ํ๊ฒฝ์์ ํ ์คํธ: Wasm ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ๋์ ํ๊ฒฝ(๋ธ๋ผ์ฐ์ , ์๋ฒ ์ธก ๋ฐํ์)์์ ๋ฐฐํฌํ๊ณ ํ ์คํธํ์ฌ ์ฑ๋ฅ ๋ฐ ๋์์ ์ธก์ ํฉ๋๋ค. ํ ์ปจํ ์คํธ์์ ํจ์จ์ ์ธ ๊ฒ์ ๋ค๋ฅธ ์ปจํ ์คํธ์์ ๋ค๋ฅด๊ฒ ์๋ํ ์ ์์ต๋๋ค.
- ๊ธฐ์กด ๋๊ตฌ ํ์ฉ: Java ๋๋ C#๊ณผ ๊ฐ์ ์ธ์ด์ ๊ฒฝ์ฐ ์ด๋ฏธ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ๋ ฅํ ๋๊ตฌ ๋ฐ ์ํ๊ณ๋ฅผ ํ์ฉํฉ๋๋ค. GraalVM ๋ฐ .NET์ Wasm ์ง์๊ณผ ๊ฐ์ ํ๋ก์ ํธ๋ ์ค์ํ ์ง์์์ ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง: ํนํ ์ฅ๊ธฐ ์คํ ์๋น์ค ๋๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฒ๋ฆฌํ๋ ์๋น์ค์ ๊ฒฝ์ฐ Wasm ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ชจ๋ํฐ๋งํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด GC ํจ์จ์ฑ๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์ต์ ์ ๋ณด ์ ์ง: WebAssembly ์ฌ์ ๋ฐ GC ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๊ณ ์์ต๋๋ค. W3C WebAssembly ์ปค๋ฎค๋ํฐ ๊ทธ๋ฃน ๋ฐ ๊ด๋ จ ์ธ์ด ์ปค๋ฎค๋ํฐ์ ์ต์ ๊ฐ๋ฐ, ์๋ก์ด ๋ช ๋ น์ด ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ํ์ ํฉ๋๋ค.
๊ฒฐ๋ก
WebAssembly์ ๊ฐ๋น์ง ์ปฌ๋ ์ ํตํฉ, ํนํ ๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ฐธ์กฐ ์นด์ดํ ๊ธฐ๋ฅ์ ํตํด ์๋นํ ์ด์ ํ๋ฅผ ํ์ํฉ๋๋ค. WebAssembly๋ก ๋ฌ์ฑํ ์ ์๋ ๊ฒ์ ์งํ์ ๋ํ ๊ธ๋ก๋ฒ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์์ ๋ ์ฝ๊ฒ ์ก์ธ์คํ๊ณ ๊ฐ๋ ฅํ๊ฒ ๋ง๋ค์์ต๋๋ค. ์ธ๊ธฐ ์๋ GC ๊ธฐ๋ฐ ์ธ์ด๋ฅผ ๋ค์ํ ํ๋ซํผ์์ ํจ์จ์ ์ด๊ณ ์์ ํ๊ฒ ์คํํ ์ ์๋๋ก ํจ์ผ๋ก์จ WasmGC๋ ํ์ ์ ๊ฐ์ํํ๊ณ WebAssembly์ ๋ฒ์๋ฅผ ์๋ก์ด ์์ญ์ผ๋ก ํ์ฅํ ์ค๋น๊ฐ ๋์ด ์์ต๋๋ค.
๊ด๋ฆฌํ ๋ฉ๋ชจ๋ฆฌ, ์ฐธ์กฐ ์นด์ดํ ๋ฐ ๊ธฐ๋ณธ Wasm ๋ฐํ์ ๊ฐ์ ์ํธ ์์ฉ์ ์ดํดํ๋ ๊ฒ์ด ์ด ๊ธฐ์ ์ ์ ์ฒด ์ ์ฌ๋ ฅ์ ํ์ฉํ๋ ์ด์ ์ ๋๋ค. ์ํ๊ณ๊ฐ ์ฑ์ํจ์ ๋ฐ๋ผ WasmGC๊ฐ ์ฐจ์ธ๋ ๊ณ ์ฑ๋ฅ, ์์ ๋ฐ ์ด์ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ ์ ๋ ์ค์ํ ์ญํ ์ ํ ๊ฒ์ผ๋ก ๊ธฐ๋ํ ์ ์์ต๋๋ค.