JavaScript ํ”„๋ŸฐํŠธ ์—”๋“œ ๋กœ์ง์„ ์„œ๋ฒ„ ์ธก์œผ๋กœ ์ „์†กํ•˜๋Š” Pusa ์›น ํ”„๋ ˆ์ž„์›Œํฌ

Pusa ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋Š” JavaScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋ŸฐํŠธ ์—”๋“œ ๋กœ์ง์„ ๋ฐฑ์—”๋“œ๋กœ ์ „์†กํ•˜๋Š” ๊ฐœ๋…์„ ๊ตฌํ˜„ํ•˜์—ฌ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ธŒ๋ผ์šฐ์ € ๋ฐ DOM ์š”์†Œ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ. ๋ธŒ๋ผ์šฐ์ € ์ธก์—์„œ ์‹คํ–‰๋˜๋Š” JavaScript ์ฝ”๋“œ๋Š” ๋ฐฑ์—”๋“œ ์ธก์— ์žˆ๋Š” ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฒ”์šฉ ๋ ˆ์ด์–ด๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ JavaScript๋กœ ๊ฐœ๋ฐœํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Pusa ์ฐธ์กฐ ๊ตฌํ˜„์€ PHP๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ GPLv3์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. PHP ์™ธ์—๋„ JavaScript/Node.js, Java, Python, Go ๋ฐ Ruby๋ฅผ ํฌํ•จํ•œ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๊ธฐ์ˆ ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Pusa๋Š” ์ตœ์†Œํ•œ์˜ ๋ช…๋ น ์„ธํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตํ™˜ ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ธฐ๋ณธ DOM ์ฝ˜ํ…์ธ ์™€ Pusa-Front์˜ JavaScript ์ฝ”์–ด๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. Pusa-Front๋Š” Ajax ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์ด๋ฒคํŠธ(์˜ˆ: ํด๋ฆญ, ๋ธ”๋Ÿฌ, ํฌ์ปค์Šค ๋ฐ ํ‚ค ๋ˆ„๋ฅด๊ธฐ)์™€ ์š”์ฒญ ๋งค๊ฐœ๋ณ€์ˆ˜(์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ์š”์†Œ, ํ•ด๋‹น ์†์„ฑ, URL ๋“ฑ)๋ฅผ Pusa-Back ์„œ๋ฒ„ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Pusa-Back์€ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ํŽ˜์ด๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ ์ผ๋ จ์˜ ๋ช…๋ น์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ ์‘๋‹ต์„ ๋ฐ›์€ Pusa-Front๋Š” ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ DOM์˜ ๋‚ด์šฉ๊ณผ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ŸฐํŠธ์—”๋“œ์˜ ์ƒํƒœ๋Š” ์ƒ์„ฑ๋˜์ง€๋งŒ ๋ฐฑ์—”๋“œ์— ์˜ํ•ด ์ œ์–ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Pusa ๊ฐœ๋ฐœ์€ ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐœ๋ฐœ์ž์— ์˜ํ•ด ์ œ์–ด๋˜์ง€ ์•Š๋Š” ๋น„๋””์˜ค ์นด๋“œ๋‚˜ ์บ”๋ฒ„์Šค์šฉ ์ฝ”๋“œ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Canvas ๋ฐ onmousemove๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋Œ€ํ™”ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๋ ค๋ฉด ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ถ”๊ฐ€ JavaScript ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์˜ ๋‹จ์  ์ค‘์—๋Š” ํ”„๋ŸฐํŠธ์—”๋“œ์—์„œ ๋ฐฑ์—”๋“œ๋กœ ์ผ๋ถ€ ๋ถ€ํ•˜๊ฐ€ ์ด์ „๋˜๊ณ  ์„œ๋ฒ„์™€์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ๋นˆ๋„๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ์  ์ค‘์—๋Š” JavaScript ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์˜ ์ฐธ์—ฌ ํ•„์š”์„ฑ ์ œ๊ฑฐ, ์•ˆ์ •์ ์ด๊ณ  ์ปดํŒฉํŠธํ•œ ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ(11kb), ํ”„๋ŸฐํŠธ์—”๋“œ์—์„œ ๊ธฐ๋ณธ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๋ถˆ๊ฐ€๋Šฅ, REST ์ง๋ ฌํ™” ๋ฐ gRPC์™€ ๊ฐ™์€ ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ, ํ”„๋ŸฐํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ ๊ฐ„์˜ ์š”์ฒญ ๋ผ์šฐํŒ… ์กฐ์ • ๋ฌธ์ œ.

์ถœ์ฒ˜ : opennet.ru

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