[JS] OffscreenCanvas

[JS] OffscreenCanvas

OffscreenCanvas Canvas API๋Š” ๋ณดํ†ต ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰ํ•œ๋‹ค. ์บ”๋ฒ„์Šค ์• ๋‹ˆ๋ฉ”์ด์…˜๊ณผ ๋ Œ๋”๋ง๊ณผ ๊ด€๋ จ๋œ ๊ณ„์‚ฐ์€ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์˜ ๋ถ€ํ•˜๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๋„ ํ•œ๋‹ค. ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ™”๋ฉด ๋ฐ–์—์„œ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋Š” ์บ”๋ฒ„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  DOM๊ณผ Canvas API๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ canvas ์š”์†Œ๊ฐ€ DOM์— ์™„์ „ํžˆ ์˜์กดํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค. 1. HTML์—์„œ ์š”์†Œ ์ƒ์„ฑ  2. ์›น ์›Œ์ปค ์ƒ์„ฑ ๋ฐ OffscreenCanvas ์ „๋‹ฌ(main.js) postMessage๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ transfer ์˜ต์…˜์„ ๋ณด๋‚ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” OffscreenCanvas ๊ฐ์ฒด๋ฅผ ์›น ์›Œ์ปค๋กœ ์†Œ์œ ๊ถŒ์„ ์ด์ „ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค. JavaScript์—์„œ ๊ฐ์ฒด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณต์‚ฌ๋กœ ์ „๋‹ฌ๋œ๋‹ค. ํ•˜์ง€๋งŒ OffscreenCanvas๋Š” ๋ณต์‚ฌํ•  ์ˆ˜ ์—†๊ณ , ๋Œ€์‹  ์ „์†ก..

  • textsms
[JS] Web Worker

[JS] Web Worker

Web Worker- ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์™€ ๋ณ„๋„๋กœ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์ž‘์—…์ด๋‹ค. ex) ๋ชจ๋‹ˆํ„ฐ๋ง ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ โžก๏ธ 1์ดˆ๋งˆ๋‹ค ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์•ฑ์€ ๋А๋ ค์ง€๊ณ  UI๋Š” ์ง€์—ฐ๋œ๋‹ค.๐Ÿ˜ผMain Thread- ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” UI ์Šค๋ ˆ๋“œ- Web Worker๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ†ต์‹ ์„ ์ฃผ๋„๐ŸญWorker Thread- ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ƒ์„ฑํ•œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ- ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์—์„œ ์ž‘์—…ํ•˜๋ฉฐ, ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์™€ ๋ฉ”์‹œ์ง€ ๊ตํ™˜์œผ๋กœ ํ†ต์‹  1. Web Worker ์ƒ์„ฑ- ์„ค์ •๋œ ์‹œ๊ฐ„(1์ดˆ)๋งˆ๋‹ค refresh token์„ Main Thread๋กœ ๋ณด๋‚ด๋Š” Web Worker์ด๋‹ค.- selft๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” Worker ๊ฐ์ฒด ์Šค์Šค๋กœ์—๊ฒŒ ๋“ค์–ด์˜ค๋Š”..

  • textsms
[JS] JavaScript Engine

[JS] JavaScript Engine

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

  • textsms
[JS] ECMAScript

[JS] ECMAScript

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‚˜์˜จ ์ดํ›„ ์ธ๊ธฐ๋ฅผ ๋Œ์ž, IE ๋ง๊ณ ๋„ ๋‹ค์–‘ํ•œ ๋ธŒ๋ผ์šฐ์ €๋“ค์ด ๊ฐœ๋ณ„์ ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ๋งŒ๋“ ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋กœ, ๊ฐ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž๋“ค์€ ๋งŽ์€ ๊ณ ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐœ๋ฐœํ•œ ๋„ท์Šค์ผ€์ดํ”„ ์‚ฌ๋Š” ECMA International(๊ตญ์ œ ํ‘œ์ค€ํ™” ๊ธฐ๊ตฌ)์— ํ‘œ์ค€ํ™”๋ฅผ ์š”์ฒญํ–ˆ๊ณ , 1997๋…„ 7์›”์— ECMAScript๊ฐ€ ์™„์„ฑ๋œ๋‹ค.   ECMAScript ECM-262 ๊ธฐ์ˆ  ๊ทœ๊ฒฉ์— ๋”ฐ๋ผ ํ‘œ์ค€ํ™”๋œ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋‹ค.์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ์•ก์…˜ ์Šคํฌ๋ฆฝํŠธ, J ์Šคํฌ๋ฆฝํŠธ ๋“ฑ์ด ์žˆ๋‹ค.* ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด: ์ปดํŒŒ์ผ์ด๋‚˜ ๋งํฌ ๋‹จ๊ณ„ ์—†์ด ์ธํ„ฐํ”„๋ฆฌํ„ฐ์— ์˜ํ•ด ๋ฐ”๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์–ธ์–ด * ์ปดํŒŒ์ผ(์†Œ์Šค์ฝ”๋“œ๋ฅผ 0,1๋กœ ์ด๋ฃจ์–ด์ง„ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญ)* ๋งํฌ(์†Œ์ŠคํŒŒ์ผ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•˜๋‚˜๋กœ ๋ณ‘ํ•ฉ) * ์ธํ„ฐํ”„๋ฆฌํ„ฐ: ์†Œ์Šค..

  • textsms