์ˆจ๊ฒจ์ง„ ์‹œ์Šคํ…œ ๋ฐ ๋ธŒ๋ผ์šฐ์ € ์‹๋ณ„์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ  ๋„์ž…

์ด์ „์— ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•์„ ๊ฐœ๋ฐœํ•œ ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ง„ Graz University of Technology(์˜ค์ŠคํŠธ๋ฆฌ์•„)์˜ ์—ฐ๊ตฌ์› ๊ทธ๋ฃน MDS, ๋„ท์ŠคํŽ™ํ„ฐ ะธ ๋ง์น˜, ํญ๋กœ ๋ธŒ๋ผ์šฐ์ €์˜ ์ •ํ™•ํ•œ ๋ฒ„์ „, ์‚ฌ์šฉ๋œ ์šด์˜ ์ฒด์ œ, CPU ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์ˆจ๊ฒจ์ง„ ์‹๋ณ„์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์• ๋“œ์˜จ ์‚ฌ์šฉ์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ํƒ€์‚ฌ ๋ถ„์„ ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ •๋ณด.

์ด๋Ÿฌํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋ ค๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ฐ๊ตฌ์›์ด ์ค€๋น„ํ•œ JavaScript ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด ๋ฐฉ๋ฒ•์€ ๊ฐ„์ ‘์ ์ธ ์‚ฌ์šฉ์ž ์‹๋ณ„์„ ์œ„ํ•œ ์ถ”๊ฐ€ ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ OS, ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์ต์Šคํ”Œ๋กœ์ž‡์˜ ๋Œ€์ƒ ์‚ฌ์šฉ์„ ์œ„ํ•œ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ Tor ๋ธŒ๋ผ์šฐ์ €์™€ ๊ฐ™์ด ์ˆจ๊ฒจ์ง„ ์‹๋ณ„ ์ฐจ๋‹จ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ ๊ตฌํ˜„์ด ํฌํ•จ๋œ ์†Œ์Šค ์ฝ”๋“œ ํ”„๋กœํ† ํƒ€์ž… ์ฝ”๋“œ ์ถœํŒ ๋œ MIT ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ.

JIT, CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ JavaScript์—์„œ ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์˜ ์†์„ฑ ์ƒํƒœ ํŒจํ„ด ํŠน์„ฑ ํ• ๋‹น ๋ฐ ์ž‘์—… ์‹คํ–‰ ์‹œ๊ฐ„ ํŠน์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์†์„ฑ ์ •์˜๋Š” JavaScript์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฐœ์ฒด ๋ชฉ๋ก์„ ์ƒ์„ฑํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ฐํ˜€์ง„ ๋ฐ”์™€ ๊ฐ™์ด ๊ฐœ์ฒด ์ˆ˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์—”์ง„ ๋ฐ ํ•ด๋‹น ๋ฒ„์ „๊ณผ ์ง์ ‘์ ์ธ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•จ์ˆ˜ getProperties(o) {
varresult = [];
๋™์•ˆ (o !== null) {
๊ฒฐ๊ณผ = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
๋ฐ˜ํ™˜ ๊ฒฐ๊ณผ;
}

์˜ˆ๋ฅผ ๋“ค์–ด Firefox์˜ ๊ฒฝ์šฐ 2247 ์†์„ฑ์— ๋Œ€ํ•œ ์ง€์›์ด ๋ฌธ์„œ์— ์„ ์–ธ๋˜์–ด ์žˆ์ง€๋งŒ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ์†์„ฑ์„ ๊ณ ๋ คํ•œ ํŠน์ • ์†์„ฑ์˜ ์‹ค์ œ ์ˆ˜๋Š” 15709(Tor ๋ธŒ๋ผ์šฐ์ €์—์„œ - 15639)์ด๋ฉฐ Chrome์˜ ๊ฒฝ์šฐ 2698 ์†์„ฑ์ด ์„ ์–ธ๋˜์ง€๋งŒ 13570์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค(Android์šฉ Chrome - 13119). ์†์„ฑ์˜ ์ˆ˜์™€ ๊ฐ’์€ ๋ธŒ๋ผ์šฐ์ € ๋ฒ„์ „๊ณผ ์šด์˜ ์ฒด์ œ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

ํŠน์ • ์†์„ฑ์˜ ๊ฐ’๊ณผ ์กด์žฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OS ์œ ํ˜•์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Kubuntu์—์„œ window.innerWidth ์†์„ฑ์€ 1000์œผ๋กœ ์„ค์ •๋˜๊ณ  Windows 10์—์„œ๋Š” 1001๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. Windows์—์„œ๋Š” window.navigator.activeVRDisplays ์†์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Linux์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ํŠน์ • ํ˜ธ์ถœ์ด Android์šฉ์œผ๋กœ ์ œ๊ณต๋˜์ง€๋งŒ window.SharedWorker๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์ƒํƒœ๊ฐ€ ๋“œ๋ผ์ด๋ฒ„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” WebGL ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ถ„์„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ WEBGL_debug_renderer_infoextension์„ ํ˜ธ์ถœํ•˜๋ฉด ์šด์˜ ์ฒด์ œ๋งˆ๋‹ค ๋‹ค๋ฅธ OpenGL ๋ Œ๋”๋ง ์—”์ง„์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CPU๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด JIT์˜ ๋™์ž‘์„ ๊ณ ๋ คํ•˜์—ฌ ๋ช…๋ น์–ด ์„ธํŠธ์˜ ์•„ํ‚คํ…์ฒ˜์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ๋‹ค์–‘ํ•œ ์ผ๋ฐ˜ ์ฝ”๋“œ ๋ธ”๋ก์˜ ์‹คํ–‰ ์‹œ๊ฐ„ ์ฐจ์ด ํ‰๊ฐ€๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค(CPU ๋ ˆ์ง€์Šคํ„ฐ ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•จ). ํฌํ•จ๋˜๋ฉฐ ์–ด๋–ค ๊ฒฝ์šฐ JIT๊ฐ€ ์ตœ์ ํ™” ๋ฐ ํ™•์žฅ ๋ช…๋ น์„ ํฌํ•จํ•˜๋Š” ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ). ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์‹œ์Šคํ…œ ๋ฐ ์šด์˜ ์ฒด์ œ์˜ ์œ ํ˜•์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์‹œ๊ฐ„์˜ ์ฐจ์ด๋„ ์ธก์ •ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์˜ ํฌ๊ธฐ๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์ค‘์— ๊ฒฐ์ •๋œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์‚ฌ์ „ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์˜ ์ผ๋ฐ˜์ ์ธ ์ฐธ์กฐ ๊ฐ’๊ณผ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ค‘์— ๊ฐœ๋ฐœ๋œ ๊ธฐ์ˆ ์€ ์‚ฌ์šฉ๋œ ๋ธŒ๋ผ์šฐ์ € ๋ฒ„์ „, CPU ์ œ์กฐ์—…์ฒด, ์‚ฌ์šฉ๋œ ์šด์˜ ์ฒด์ œ, ์‹ค์ œ ํ•˜๋“œ์›จ์–ด์—์„œ ์‹คํ–‰๋˜๋Š”์ง€ ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜์—ฌ 40๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ์ •ํ™•ํ•˜๊ฒŒ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์™€๋Š” ๋ณ„๋„๋กœ ์ˆจ๊ฒจ์ง„ ์‹๋ณ„ ๋ฐฉ๋ฒ•์ด๋‚˜ ๊ฐœ์ธ ๋ธŒ๋ผ์šฐ์ง• ํ™œ๋™์„ ์ฐจ๋‹จํ•˜๋„๋ก ์„ค๊ณ„๋œ ์• ๋“œ์˜จ์„ ํฌํ•จํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์• ๋“œ์˜จ ๋ฐ ๊ฐœ๋ณ„ ์• ๋“œ์˜จ ์„ค์ •์„ ์ •์˜ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์–ธ๊ธ‰๋ฉ๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ๋ฐฉ๋ฒ•์˜ ๋งฅ๋ฝ์—์„œ ์ด๋Ÿฌํ•œ ์ถ”๊ฐ€๋Š” ์‹๋ณ„์„ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์†Œ์Šค๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์‚ฌํ•ญ์€ ์ถ”๊ฐ€ ์‚ฌํ•ญ์— ์˜ํ•ด ๋„์ž…๋œ ์›๋ž˜ ํ™˜๊ฒฝ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์™œ๊ณก ํ‰๊ฐ€๋ฅผ ํ†ตํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‹๋ณ„ ๋ฐฉ๋ฒ• ์ค‘์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ„์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ™”๋ฉด ํ•ด์ƒ๋„, ์ง€์›๋˜๋Š” MIME ์œ ํ˜• ๋ชฉ๋ก, ํ—ค๋”๋ณ„ ์˜ต์…˜(HTTP / 2 ะธ HTTPS), ํ™•๋ฆฝ๋œ ๋ถ„์„ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐ ๊ธ€๊ผด, ๋น„๋””์˜ค ์นด๋“œ์™€ ๊ด€๋ จ๋œ ํŠน์ • ์›น API์˜ ๊ฐ€์šฉ์„ฑ ํŠน์ง• WebGL์„ ์‚ฌ์šฉํ•œ ๋ Œ๋”๋ง ๋ฐ ์บ”๋ฒ„์Šค, ์‹œ์žฅ ์กฐ์ž‘ CSS๋กœ ์ž‘์—… ๊ธฐ๋Šฅ ๋ถ„์„ ์ฅ ะธ ๊ฑด๋ฐ˜.

์ถœ์ฒ˜ : opennet.ru

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