Pinterest ํ”„๋กœ๊ทธ๋ž˜์‹œ๋ธŒ ์›น ์•ฑ ์„ฑ๋Šฅ ์ผ€์ด์Šค ์Šคํ„ฐ๋””

Pinterest ํ”„๋กœ๊ทธ๋ž˜์‹œ๋ธŒ ์›น ์•ฑ ์„ฑ๋Šฅ ์ผ€์ด์Šค ์Šคํ„ฐ๋””

Pinterest๊ฐ€ ๋ชจ๋ฐ”์ผ ํ•˜๋“œ์›จ์–ด์—์„œ๋„ ๋น ๋ฅด๊ฒŒ ๋กœ๋“œ๋  ์ˆ˜ ์žˆ๋„๋ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐ€๋ณ๊ฒŒ ํ•˜๊ณ , ๋„คํŠธ์›Œํฌ ํƒ„๋ ฅ์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ์„œ๋น„์Šค ์›Œ์ปค(Service Worker)๋ฅผ ๋„์ž…ํ•œ ๊ฒƒ์— ๋Œ€ํ•ด ๋‹ค๋ฃฌ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜์‹œ๋ธŒ ์›น์•ฑ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ๋ฆฌ์—‘ํŠธ, ํ”„๋ฆฌ์—‘ํŠธ ์ผ€์ด์Šค ์Šคํ„ฐ๋”” : Treebo

ํ”„๋กœ๊ทธ๋ž˜์‹œ๋ธŒ ์›น์•ฑ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ๋ฆฌ์—‘ํŠธ, ํ”„๋ฆฌ์—‘ํŠธ ์ผ€์ด์Šค ์Šคํ„ฐ๋”” : Treebo

ํ”„๋ก ํŠธ์—”๋“œ ๋ฆฌ์—‘ํŠธ ์„ฑ๋Šฅ ์ผ€์ด์Šค ์Šคํ„ฐ๋””. Treebo๋Š” ์žฅ๊ณ ๋กœ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋˜ ๊ธฐ์กด ๋ชจ๋ฐ”์ผ ์‚ฌ์ดํŠธ์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋ฉฐ ์–ป์€ ๊ฒฝํ—˜์„ ์ผ€์ด์Šค ์Šคํ„ฐ๋””๋กœ ๊ณต์œ ํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜์‹œ๋ธŒ ์›น ์•ฑ์˜ ์„ฑ๋Šฅ ๊ฐ์‚ฌ ํฌ์ธํŠธ๋กœ First Meaningful Paint, First Interactive, Consistenly Interactive ๋“ฑ์„ ๊ธฐ์ค€์œผ๋กœ, ์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง, ์ฝ”๋“œ ๋ถ„ํ• , HTML ์ŠคํŠธ๋ฆฌ๋ฐ, ์Šคํƒ€์ผ ์ธ๋ผ์ด๋‹ ๋“ฑ์˜ ์ ์šฉ์ด ์–ด๋–ป๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ์•Œ์•„๋ณธ๋‹ค.

JavaScript์—์„œ Rust, ๊ทธ๋ฆฌ๊ณ  Rust์—์„œ JavaScript: wasm-bindgen ์Šคํ† ๋ฆฌ

์šฐ๋ฆฌ๋Š” ์ตœ๊ทผ WebAssemblyย ์ปดํŒŒ์ผ์ด ์–ผ๋งˆ๋‚˜ ๋น ๋ฅธ์ง€,ย ์–ผ๋งˆ๋‚˜ ๋น ๋ฅธ JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€, ๊ฑฐ๊ธฐ์—ย ์–ผ๋งˆ๋‚˜ ๋” ์ž‘์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋Š”์ง€ย ํ™•์ธํ–ˆ๋‹ค. ๋”์šฑ์ด ์šฐ๋ฆฌ๋Š”ย Rust์™€ JavaScript ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋” ๋‚˜์€ ํ˜‘์—…์„ ์œ„ํ•œ ๊ณ„ํš์„ ์„ธ์› ๊ณ , ์ด๊ฒƒ์—๋Š” ๋‹ค๋ฅธ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค์„ ์œ„ํ•œ ๊ฒƒ๋„ ํฌํ•จ๋˜์–ด์žˆ๋‹ค.ย ์ด์ „ ๊ธ€์—์„œ๋„ ์Šฌ์ฉ ๋งํ–ˆ์ง€๋งŒ, ๋‚˜๋Š”ย wasm-bidgen์— ๋Œ€ํ•ด์„œ ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค.