2023๋…„ 10์›” 26์ผยท1๋ถ„ ์ฝ๊ธฐ

Shopify ์˜คํ”ˆ ์†Œ์Šค Ruvy: Ruby ์ฝ”๋“œ๋ฅผ WebAssembly๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ

์ „์ž์ƒ๊ฑฐ๋ž˜ ๊ฑฐ๋Œ€ Shopify๋Š” ์ตœ๊ทผ ์ž์‚ฌ ํ”„๋กœ์ ํŠธ์ธ Ruvy๋ฅผ ์˜คํ”ˆ์†Œ์Šคํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์—๊ฒŒ Ruby ์ฝ”๋“œ๋ฅผ WebAssembly(Wasm) ๋ชจ๋“ˆ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ ์ฒด์ธ์„ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

Shopify ์˜คํ”ˆ ์†Œ์Šค Ruvy: Ruby ์ฝ”๋“œ๋ฅผ WebAssembly๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ

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

Ruvy๋Š” 10์›” 18์ผ์— ์ฒซ ๊ณต๊ฐœ๋˜์—ˆ์œผ๋ฉฐ GitHub ํ†ตํ•ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Shopify๋Š” Ruby๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฐ€์ƒ ๋จธ์‹ (VM)์˜ ์‚ฌ์ „ ํ™œ์„ฑํ™”๋ฅผ ํ†ตํ•ด ํ–ฅ์ƒ๋œ ์„ฑ๋Šฅ์„ ํ™œ์šฉํ•˜๋ ค๋Š” ๊ตฌ์ฒด์ ์ธ ๋ชฉํ‘œ๋กœ Ruvy ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Ruby ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด Ruby VM์— ํ†ตํ•ฉ๋œ Ruby ํŒŒ์ผ์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

Ruvy์˜ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋Š” ๋Ÿฐํƒ€์ž„ ์‹œ WASI(WebAssembly System Interface) ์ธ์ˆ˜๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Shopify์˜ ๋ณด๊ณ ์„œ์— ๋”ฐ๋ฅด๋ฉด Ruvy๊ฐ€ ๋งŒ๋“  Wasm ๋ชจ๋“ˆ์€ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์•ฝ 70% ๋‹จ์ถ•ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. Wasm ๋ชจ๋“ˆ์ด ๋นŒ๋“œ๋˜๋Š” ๋™์•ˆ Ruby VM์˜ ์‚ฌ์ „ ํ™œ์„ฑํ™”๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ๋‹ฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Ruvy๋Š” CRuby์— ์†ํ•˜๋Š” ๋…ํŠนํ•œ Wasm ํฌํŠธ ๋ชจ์Œ์ธ Ruby.wasm์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ์ƒํƒœ์—์„œ Ruvy์—๋Š” ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋นŒ๋“œ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๊ณ  ์ดํ›„์— Ruvy์˜ ์‚ฌ์šฉ ์ „ ์ปดํŒŒ์ผ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ํ•„์ˆ˜ ์‚ฌ์ „ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋Š” ์ž์„ธํ•œ ๋‹จ๊ณ„๋Š” ํ”„๋กœ์ ํŠธ์™€ ๊ด€๋ จ๋œ ReadMe ์„ธ๊ทธ๋จผํŠธ์— ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

Ruvy๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ Wasm ํŒŒ์ผ์€ ํŒŒ์ผ ๊ฒฝ๋กœ๊ฐ€ WASI ์ธ์ˆ˜๋กœ ํฌํ•จ๋  ํ•„์š”์„ฑ์„ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‹œ์ž‘ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ณด์ถฉ WASI ์ธ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์กฐ์ •ํ•  ์ˆ˜ ์—†๋Š” ํŠน์ • ์—ฃ์ง€ ์ปดํ“จํŒ… ์„œ๋น„์Šค์™€ ๊ฐ™์€ ์ปดํ“จํŒ… ํ™˜๊ฒฝ์— ํ˜ธํ™˜์„ฑ์„ ๋ถ€์—ฌํ•˜๋ฏ€๋กœ ์ถ”๊ฐ€์ ์ธ ์ด์ ์ž…๋‹ˆ๋‹ค. Shopify๋Š” ์ตœ๊ทผ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์—์„œ ์ด ์ถ”๊ฐ€ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

๋†€๋ž๊ฒŒ๋„ AppMaster ์™€ ๊ฐ™์€ ํ”Œ๋žซํผ์€ no-code ์•ฑ ์ œ์ž‘ ์˜์—ญ์—์„œ ํฐ ์ง„์ „์„ ์ด๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์˜ ๋ชจ๋ธ์€ ์ž๋™ ์ฝ”๋“œ ์ƒ์„ฑ์˜ ํšจ์œจ์„ฑ๊ณผ ํ•„์š”ํ•  ๋•Œ ์ˆ˜๋™ ์ฝ”๋”ฉ์˜ ์œ ์—ฐ์„ฑ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ์ƒ์„ฑ์— ๋Œ€ํ•œ ๋Œ€์•ˆ์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Easy to start
Create something amazing

Experiment with AppMaster with free plan.
When you will be ready you can choose the proper subscription.

Get Started
Shopify ์˜คํ”ˆ ์†Œ์Šค Ruvy: Ruby ์ฝ”๋“œ๋ฅผ WebAssembly๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ | AppMaster