Skip to main content

์˜คํ”ˆ์†Œ์Šค ์„ฑ๋Šฅ ์ตœ์ ํ™”, ๋Œ€์ฒด ๋ญ๊ฐ€ ๋ฌธ์ œ์˜€์„๊นŒ?

์Šค๋ฒจํŠธ์ „๋„์‚ฌ2025๋…„ 2์›” 17์ผAbout 2 minNode.jsArticle(s)blogyozm.wishket.comnodenodejsnode-js

์˜คํ”ˆ์†Œ์Šค ์„ฑ๋Šฅ ์ตœ์ ํ™”, ๋Œ€์ฒด ๋ญ๊ฐ€ ๋ฌธ์ œ์˜€์„๊นŒ? ๊ด€๋ จ

Node.js > Article(s)

Article(s)

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

์˜คํ”ˆ์†Œ์Šค ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋ฉฐ ๋ฐฐ์šด ๊ฒƒ๋“ค

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

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


โ€œ์™œ ์ด๋ ‡๊ฒŒ ๋А๋ ค์ง„ ๊ฑฐ์ง€?โ€ ์„ฑ๋Šฅ ๋ฌธ์ œ์™€์˜ ์ฒซ ๋งŒ๋‚จ

์ €๋Š” ์ตœ๊ทผ โ€˜Easyrdโ€™๋ผ๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋Š” ์ œ๊ฐ€ ๋งŒ๋“  โ€˜Flitterโ€™๋ผ๋Š” ๋ Œ๋”๋ง ์—”์ง„ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š”๋ฐ์š”. Flitter๋Š” SVG๋‚˜ Canvas๋ฅผ ์„ ์–ธ์ ์œผ๋กœ ๋‹ค๋ฃจ๋ฉด์„œ, Flutter์™€ ๋น„์Šทํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๊ตฌํ˜„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

์ฒ˜์Œ์—” ๊ทธ๋Ÿญ์ €๋Ÿญ ์ž˜ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ, ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ๋…ธ๋“œ๋ฅผ ๋“œ๋ž˜๊ทธํ•˜๊ฑฐ๋‚˜ ์ดˆ์ ์„ ์˜ฎ๊ธธ ๋•Œ๋งˆ๋‹ค ํ™”๋ฉด์ด ๋ฒ„๋ฒ…์ด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ํฌ๊ฒŒ ์ €ํ•˜๋˜๋Š” ์ƒํ™ฉ๊นŒ์ง€ ๋งž๋‹ฅ๋œจ๋ฆฌ๊ฒŒ ๋˜์—ˆ์ฃ .

๋…ธ๋“œ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ํ•œ ํ”„๋ ˆ์ž„(16ms)์„ ํ›Œ์ฉ ๋„˜๊ธฐ๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ์Œ“์˜€์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์›€์ง์ด๊ฑฐ๋‚˜ ํ™•๋Œ€ยท์ถ•์†Œ๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด, ์ด๋ฒคํŠธ๊ฐ€ ๋ชฐ๋ ค๋“ค์–ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฒฌ๋””์ง€ ๋ชปํ–ˆ์ฃ . ๊ฒฐ๊ตญ ๋…ธ๋“œ๊ฐ€ ํˆญํˆญ ๋Š๊ธฐ๊ฑฐ๋‚˜ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ณณ์œผ๋กœ ํŠ€์–ด๊ฐ€๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๊ณ , ์ด๋Š” ์„œ๋น„์Šค์˜ ํ•ต์‹ฌ ๊ฐ€์น˜๋ฅผ ํ›ผ์†ํ•˜๋Š” ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ Flitter๋ฅผ ์„ค๊ณ„ํ•  ๋• ๋‹จ์ˆœํžˆ SVG ์š”์†Œ๋“ค์„ ์„ ์–ธ์ ์œผ๋กœ ๊ทธ๋ ค์ฃผ๋ฉด ๋  ๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ โ€œ์™œ ์ฒซ ๋กœ๋”ฉ์ด ์ด๋ ‡๊ฒŒ ๋А๋ฆฌ์ง€?โ€๋ผ๋Š” ์˜๋ฌธ์ด ๋“ค๋ฉด์„œ ๋ฌธ์ œ์˜ ์‹ค์ฒด๊ฐ€ ๋“œ๋Ÿฌ๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์ง€์—ฐ์ด ์•„๋‹Œ, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ SVG๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ณผ์ • ์ž์ฒด๊ฐ€ ๋ณ‘๋ชฉ์ด์—ˆ๋˜ ๊ฑฐ์ฃ . ์ž์„ธํžˆ ๋“ค์—ฌ๋‹ค๋ณด๋‹ˆ SVG ์ž์‹ ์š”์†Œ๋งˆ๋‹ค ๊ฐœ๋ณ„์ ์œผ๋กœ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋‹ฌ๋ฉด์„œ, DOM ์ ‘๊ทผ์ด ๊ณผ๋„ํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

flitter๋กœ ๋งŒ๋“  ๋‹ค์ด์–ด๊ทธ๋žจ ์„œ๋น„์Šค โ€˜Easyrdโ€™
flitter๋กœ ๋งŒ๋“  ๋‹ค์ด์–ด๊ทธ๋žจ ์„œ๋น„์Šค โ€˜Easyrdโ€™

์‹œํ–‰์ฐฉ์˜ค์˜ ์—ฐ์†

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


SVG ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ์—์„œ ๋ถˆํ•„์š”ํ•œ DOM ์ ‘๊ทผ ์ค„์ด๊ธฐ

์ดˆ๊ธฐ ๋ฌธ์ œ: ๊ฐ ์š”์†Œ์— ์ง์ ‘ ํ•ธ๋“ค๋Ÿฌ ๋ถ€์ฐฉ์˜ ํ•œ๊ณ„

ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ์— Flitter๊ฐ€ SVG๋งŒ ์ง€์›ํ•˜๋˜ ์‹œ์ ˆ, ๊ฐ€์žฅ ๋จผ์ € ๋งˆ์ฃผํ•œ ๋ฌธ์ œ๋Š” ๋ชจ๋“  SVG ์š”์†Œ์— ์ง์ ‘ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ถ€์ฐฉํ•˜๋Š” ๋ฐฉ์‹์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ GestureDetector๋ผ๋Š” ์œ„์ ฏ์— ํด๋ฆญ, ๋“œ๋ž˜๊ทธ ๋“ฑ์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋‹ฌ๋ฉด, ๋‚ด๋ถ€์ ์œผ๋กœ ์‹ค์ œ SVG ์š”์†Œ์— ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ๊ตฌ์กฐ์˜€์ฃ . ์ด๋ ‡๊ฒŒ ์ž์‹ ์š”์†Œ๊ฐ€ ํ•˜๋‚˜์”ฉ ๋Š˜์–ด๋‚  ๋•Œ๋งˆ๋‹ค DOM ์ ‘๊ทผ์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ–ˆ๊ณ , ๊ฒฐ๊ตญ ์ˆ˜๋งŽ์€ ์š”์†Œ์— ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด์„œ ํ™”๋ฉด ์ดˆ๊ธฐ ๋กœ๋”ฉ๋ถ€ํ„ฐ ์ธํ„ฐ๋ž™์…˜๊นŒ์ง€ ๋ฒ„๋ฒ…๋Œ์ด ๋‘๋“œ๋Ÿฌ์กŒ์Šต๋‹ˆ๋‹ค.

๋…ธ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ๋•Œ๋Š” ํฌ๊ฒŒ ๋ˆˆ์— ๋„์ง€ ์•Š์•˜์ง€๋งŒ, ์ ์ฐจ ๋‹ค์ด์–ด๊ทธ๋žจ ๋…ธ๋“œ๋‚˜ UI ์œ„์ ฏ์ด ๋ณต์žกํ•ด์ง€๋ฉด์„œ ํŠธ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ๊นŠ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ๋งˆ๋‹ค SVG ์š”์†Œ๋งˆ๋‹ค ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ถ™์ด๋Š” ์ž‘์—… ์ž์ฒด๊ฐ€ ๋ณ‘๋ชฉ ์ง€์ ์ด ๋˜์—ˆ๊ณ ์š”. DOM ์ ‘๊ทผ์ด ๋ˆ„์ ๋˜์–ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•œ ํ™”๋ฉด์„ ์™„์ „ํžˆ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์ด ๋ˆˆ์— ๋„๊ฒŒ ๊ธธ์–ด์กŒ๊ณ , ์‚ฌ์šฉ์ž๋Š” โ€œํ™”๋ฉด์ด ์ƒ๊ฐ๋ณด๋‹ค ๋Šฆ๊ฒŒ ๋œฌ๋‹คโ€๋ผ๊ณ  ๋А๋ผ๊ฒŒ ๋˜์—ˆ์ฃ .

์ด๋ฒคํŠธ ์œ„์ž„ ํŒจํ„ด์˜ ๋„์ž…

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…๋œ ๊ฒƒ์ด ์ด๋ฒคํŠธ ์œ„์ž„(Event Delegation) ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ตœ์ƒ์œ„ SVG ์š”์†Œ ํ•˜๋‚˜์—๋งŒ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•˜๊ณ , ์‹ค์ œ๋กœ๋Š” ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง์„ ํ†ตํ•ด ๋‚ด๋ถ€ ์ด๋ฒคํŠธ๋ฅผ ์บ์น˜ํ•˜๋„๋ก ์„ค๊ณ„ํ•œ ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

์ž์‹ ์œ„์ ฏ์— ์—ฐ๊ฒฐ๋œ ํ•ธ๋“ค๋Ÿฌ๋Š” ์‹ค์ œ๋กœ๋Š” โ€˜์œ„์ ฏํŠธ๋ฆฌโ€™ ๋‚ด๋ถ€์—์„œ๋งŒ ๊ด€๋ฆฌ๋˜๋ฉฐ, ์ตœ์ƒ์œ„ SVG์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์ ์ ˆํ•œ ์ฝœ๋ฐฑ ๋ชฉ๋ก์œผ๋กœ ๋ถ„๋ฐฐ๋˜๋Š” ๊ตฌ์กฐ๊ฐ€ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฃจํŠธ ์š”์†Œ ํ•˜๋‚˜์—๋งŒ ์ด๋ฒคํŠธ๋ฅผ ์ง‘์ค‘์‹œํ‚ค๋ฉด DOM ์ ‘๊ทผ์ด ํš๊ธฐ์ ์œผ๋กœ ์ค„์–ด๋“ค์–ด, ๋…ธ๋“œ๊ฐ€ ์•„๋ฌด๋ฆฌ ๋งŽ์•„์ ธ๋„ ์ž์‹๋งˆ๋‹ค ์ง์ ‘ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋‹ค๋Š” ๋ฐฉ์‹์— ๋น„ํ•ด ํ›จ์”ฌ ๊ฐ€๋ฒผ์šด ์ธํ„ฐ๋ž™์…˜ ์‘๋‹ต ์†๋„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ ์œ„์ž„์€ ์‚ฌ์‹ค ๋ฆฌ์•กํŠธ ๋“ฑ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ๋„ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ ์—ญ์‹œ โ€˜๊ฐ€์ƒ DOMโ€™์— ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์‹ค์ œ DOM์—๋Š” ๋ฃจํŠธ ํ•˜๋‚˜์—๋งŒ ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•จ์œผ๋กœ์จ ์ค‘๋ณต ์ž‘์—…์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. Flitter ์—ญ์‹œ ์ด๋ฅผ ๋ฒค์น˜๋งˆํ‚นํ•˜์—ฌ โ€œ๋ถ€๋ชจ SVG์—๋งŒ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ถ€์ฐฉํ•˜๋Š” ์ •์ฑ…โ€์„ ์ฑ„ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ๋Œ€๊ทœ๋ชจ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ๋„ ์ผ๊ด€๋œ ์ธํ„ฐ๋ž™์…˜ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ์š”์†Œ ๊ฐœ์ˆ˜์— ๋น„๋ก€ํ•ด ๋Š˜์–ด๋‚ฌ๋˜ DOM ์ ‘๊ทผ์ด ํ˜„์ €ํžˆ ์ค„์–ด๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.


ํ”„๋ ˆ์ž„๋‹น ํ•œ ๋ฒˆ์˜ requestAnimationFrame์œผ๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ

requestAnimationFrame ๋น„์šฉ ๋ฌธ์ œ

๋ Œ๋”๋ง ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•˜๋ฉด์„œ ์˜์™ธ์˜ ์‚ฌ์‹ค์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. requestAnimationFrame ํ•จ์ˆ˜ ์ž์ฒด๊ฐ€ ๊ฝค ํฐ ๋น„์šฉ์„ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค๋Š” ๊ฑฐ์ฃ . ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€์—์„œ ์ฝœ๋ฐฑ์„ ํŠน์ • ํ์— ๋“ฑ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์—์„œ, 30~60ฮผs ์ •๋„์˜ ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค๋Š” ์ ์„ ํฌ๋กฌ DevTools๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

โ€œ๊ฒจ์šฐ ๋งˆ์ดํฌ๋กœ์ดˆ ๋‹จ์œ„์ธ๋ฐ ๋ญ๊ฐ€ ๋ฌธ์ œ์•ผ?โ€๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด ์ž‘์€ ๋น„์šฉ์ด ํ”„๋ ˆ์ž„๋งˆ๋‹ค ์ˆ˜์‹ญ ๋ฒˆ์”ฉ ๋ฐœ์ƒํ•˜๋ฉด ์ด์•ผ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํ”„๋ ˆ์ž„ ๋ถ„์„ ๊ฒฐ๊ณผ, ๋‹จ์ˆœํ•œ ๋“œ๋ž˜๊ทธ ๋™์ž‘์—์„œ๋„ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ฐœ๋ณ„์ ์œผ๋กœ requestAnimationFrame์„ ํ˜ธ์ถœํ•˜๋ฉด์„œ ๋ถˆํ•„์š”ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์Œ“์—ฌ๊ฐ€๊ณ  ์žˆ์—ˆ์ฃ .

Phase๋กœ ๋‚˜๋ˆ„์–ด ์ฝœ๋ฐฑ์„ ๊ด€๋ฆฌํ•˜๋‹ค

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Flutter์˜ ํ”„๋ ˆ์ž„ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์—์„œ ์˜๊ฐ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ํ•œ ํ”„๋ ˆ์ž„ ๋‚ด์—์„œ ๋ชจ๋“  ์—…๋ฐ์ดํŠธ ์š”์ฒญ์„ phase๋ณ„๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ , requestAnimationFrame์€ ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์„ ๋„์ž…ํ•œ ๊ฑฐ์ฃ . ์‹ค์ œ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋ฅผ ํ•œ๋ฒˆ ์‚ดํŽด๋ณผ๊นŒ์š”?

์œ„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด, โ€˜hasScheduledFrameโ€™ ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด ํ”„๋ ˆ์ž„๋‹น ๋‹จ ํ•œ ๋ฒˆ๋งŒ requestAnimationFrame์ด ํ˜ธ์ถœ๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ถˆํ•„์š”ํ•œ requestAnimationFrame ํ˜ธ์ถœ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์—ˆ์ฃ .

์‹ค์ œ๋กœ ์ฒด๊ฐ๋˜๋Š” ์ฐจ์ด

์ด๋ ‡๊ฒŒ ๋ณ€๊ฒฝ ํ›„ ์„ฑ๋Šฅ ์ธก์ •ํ•˜๋‹ˆ ๋†€๋ผ์šด ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋“œ๋ž˜๊ทธ ๋™์ž‘์—์„œ requestAnimationFrame ํ˜ธ์ถœ ํšŸ์ˆ˜๊ฐ€ ํ”„๋ ˆ์ž„๋‹น ํ‰๊ท  100ํšŒ์—์„œ 1ํšŒ๋กœ ์ค„์–ด๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. CPU ํ”„๋กœํŒŒ์ผ๋ง ๊ฒฐ๊ณผ์—์„œ๋„ ์ฝœ๋ฐฑ ๋“ฑ๋ก๊ณผ ๊ด€๋ จ๋œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํ™•์—ฐํžˆ ๊ฐ์†Œํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์ฃ .

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


โ€œ์ด๊ฒŒ ์ •๋ง ๋นจ๋ผ์ง„ ๊ฑฐ ๋งž๋‚˜์š”?โ€ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์ˆ˜์น˜๋กœ ์ฆ๋ช…ํ•˜๊ธฐ

๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์ž์ฃผ ๋งˆ์ฃผ์น˜๋Š” ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

โ€œ์—ฌ๊ธฐ ์ตœ์ ํ™”ํ–ˆ๋Š”๋ฐ ํ™•์‹คํžˆ ๋นจ๋ผ์ง„ ๊ฒƒ ๊ฐ™์•„์š”.โ€

โ€œ์Œ... ์ €๋Š” ๋ณ„๋กœ ์ฐจ์ด๋ฅผ ๋ชป ๋А๋ผ๊ฒ ๋Š”๋ฐ์š”?โ€

์ด๋Ÿฐ ๋ชจํ˜ธํ•œ ์ƒํ™ฉ์„ ๋ฒ—์–ด๋‚˜๊ธฐ ์œ„ํ•ด, Playwright์™€ ํฌ๋กฌ ๋ฐ๋ธŒํˆด ํ”„๋กœํ† ์ฝœ(Chrome DevTools Protocol)์„ ๊ฒฐํ•ฉํ•œ ์ž๋™ํ™”๋œ ์„ฑ๋Šฅ ์ธก์ • ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์ฝ”๋“œ์˜ ํŠน์ • ๋ถ€๋ถ„์ด ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ์‹คํ–‰๋˜๋Š”์ง€, ์‹ค์ œ๋กœ ์–ผ๋งˆ๋‚˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š”์ง€๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ž๋™ํ™”๋œ ์„ฑ๋Šฅ ์ธก์ •, ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ–ˆ๋‚˜์š”?

Playwright๋Š” ์—ฌ๋Ÿฌ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ž๋™์œผ๋กœ ๊ตฌ๋™ํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ์–ด, ํ…Œ์ŠคํŠธ์™€ ์ธก์ • ํ™˜๊ฒฝ์„ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์œ ์ง€ํ•˜๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค. ํฌ๋กฌ ๋ฐ๋ธŒํˆด ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์–ป์€ ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€ ์„ฑ๋Šฅ ์ง€ํ‘œ์™€ ์‹คํ–‰ ์ค‘์ธ ์Šคํฌ๋ฆฝํŠธ ์ •๋ณด๋ฅผ ๋ถ„์„ํ•˜๋ฉด, ์–ด๋А ๋ถ€๋ถ„์ด CPU๋‚˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์†Œ๋ชจํ•˜๋Š”์ง€ ์„ธ๋ฐ€ํ•˜๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์ฃ .

์ž๋™ํ™” ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋™์ผํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์—ฌ๋Ÿฌ ์ฐจ๋ก€ ๋ฐ˜๋ณต ์ธก์ •ํ•˜๋ฉด, ๋‹จ์ˆœํžˆ ํ•œ๋‘ ๋ฒˆ์˜ ์ฒด๊ฐ ํ…Œ์ŠคํŠธ๋กœ๋Š” ๋†“์น˜๊ธฐ ์‰ฌ์šด ๋ฏธ์„ธํ•œ ๋ณ€ํ™”๋„ ์ •ํ™•ํžˆ ํฌ์ฐฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ‘๋ชฉ ์ง€์ ์„ ์ˆ˜์ •ํ•œ ๋’ค์—๋Š” ๊ทธ ์ „ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ˆ„์  ๊ด€๋ฆฌํ•จ์œผ๋กœ์จ, โ€œ์ •๋ง ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋˜์—ˆ๋Š”๊ฐ€?โ€๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ฐฉ์‹์€ ํŠนํžˆ ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋”์šฑ ์ค‘์š”ํ•ด์ง‘๋‹ˆ๋‹ค. ํŒ€ ๋‹จ์œ„๋กœ ํ˜‘์—…ํ•  ๋•Œ โ€œ์–ด๋А ๋ถ€๋ถ„์— ๋” ํˆฌ์žํ•ด์•ผ ํ•˜๋Š”๊ฐ€?โ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฐ๊ด€์ ์ธ ๊ทผ๊ฑฐ๊ฐ€ ๋˜์–ด์ฃผ์ฃ . ๊ฒŒ๋‹ค๊ฐ€ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์‰ฝ๊ฒŒ ๋†“์น˜๊ธฐ ์‰ฌ์šด โ€˜์ž‘์€ ํ•จ์ˆ˜โ€™๋‚˜ ํŠน์ • ์ผ€์ด์Šค๊ฐ€ ๋ฐ˜๋ณต ํ˜ธ์ถœ๋˜๋Š” ๋ถ€๋ถ„๋„ ๋ฐ์ดํ„ฐ๋กœ ์ •ํ™•ํžˆ ๋‚˜ํƒ€๋‚˜๋ฏ€๋กœ, ์‚ฌ์†Œํ•ด ๋ณด์ด๋Š” ๋ณ‘๋ชฉ ์š”์†Œ๋„ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ์ธก์ •ํ•œ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐจํŠธ๋กœ ์‹œ๊ฐํ™”ํ•œ ๋ชจ์Šต
์„ฑ๋Šฅ ์ธก์ •ํ•œ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐจํŠธ๋กœ ์‹œ๊ฐํ™”ํ•œ ๋ชจ์Šต

โ€œ์–ด? ์ด์ œ ์•ˆ ๋ฒ„๋ฒ…๋Œ€๋„คโ€ ์‚ฌ์šฉ์ž๋“ค์˜ ์ฒซ ๋ฐ˜์‘

์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋ฅผ ๊ฑฐ์นœ ํ›„ ๋ณต์žกํ•œ SVG ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋“œ๋ž˜๊ทธํ•˜๊ฑฐ๋‚˜, ํ™•๋Œ€ยท์ถ•์†Œํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋˜ ํ”„๋ ˆ์ž„ ๋“œ๋ž์ด ํฌ๊ฒŒ ์ค„์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๊ฐ€ ๋„ํ˜•๋ณด๋‹ค ํ›จ์”ฌ ์•ž์„œ๊ฐ€๊ฑฐ๋‚˜, ๊ฐ์ฒด ์ด๋™ ์ค‘๊ฐ„์— ์ˆœ๊ฐ„ ๋ฉˆ์ถค ์ฆ์ƒ์ด ๋‚˜ํƒ€๋‚˜๋Š” ๋“ฑ ์ด์ „์—๋Š” ์ž์ฃผ ๋ณด์ด๋˜ ํ˜„์ƒ๋„ ๊ฑฐ์˜ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ž™์…˜ ํ๋ฆ„์ด ํ•œ์ธต ๋งค๋„๋Ÿฌ์›Œ์กŒ๋‹ค๋Š” ์˜๋ฏธ๋กœ, ์‹ค์ œ ์‚ฌ์šฉ์ž ๋งŒ์กฑ๋„๋„ ์ƒ์Šนํ–ˆ์Šต๋‹ˆ๋‹ค.

โ€˜Easyrdโ€™์—์„œ๋Š” ๋…ธ๋“œ๋ฅผ ๋“œ๋ž˜๊ทธํ•  ๋•Œ ๋งˆ์šฐ์Šค ์›€์ง์ž„์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋”ฐ๋ผ๊ฐ€๋Š” ๋ชจ์Šต์„ ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ๋ฅผ ์žฌ๋นจ๋ฆฌ ์›€์ง์—ฌ๋„ ์ง€์—ฐ ์—†์ด ์ซ“์•„์˜ค๊ธฐ ๋•Œ๋ฌธ์—, ์—ฌ๋Ÿฌ ๊ฐœ ๋…ธ๋“œ๋ฅผ ๋™์‹œ์— ์ด๋™ํ•˜๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๋ฏธ์„ธ ์กฐ์ •ํ•  ๋•Œ๋„ ํ›จ์”ฌ ์•ˆ์ •์ ์ธ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹œ๊ฐ์ ยท๊ธฐ๋Šฅ์  ๊ฐœ์„ ์€ ์—”์ง„ ๋‚ด๋ถ€์—์„œ ์ด๋ฃจ์–ด์ง„ ์ตœ์ ํ™”๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ค ๋ณ€ํ™”๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋Š”์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.


์˜์™ธ๋กœ ๋ณ„๊ฑฐ ์•„๋‹Œ ์ž‘์€ ๋ณ€ํ™”์˜ ์‹œ์ž‘

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

๋ฌผ๋ก  ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ ์ตœ์ ํ™” ์ž‘์—…์€ ์ƒ๊ฐ์ฒ˜๋Ÿผ ๋‹จ์ˆœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ๊ฐœํŽธํ•˜๋‹ค ๋ณด๋ฉด, ๊ธฐ์กด ๊ธฐ๋Šฅ๊ณผ ์ถฉ๋Œ์„ ์ผ์œผํ‚ค๊ฑฐ๋‚˜ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์ฃ . ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง ๋กœ์ง์„ ๋ฐ”๊พธ๋ฉด ๋ฐ”๋กœ ๋ฐ˜์‘ ์†๋„๊ฐ€ ๋นจ๋ผ์ง€๋Š” ๋Œ€์‹ , ์ด์ „์— ๋‹ฌ์•„๋‘์—ˆ๋˜ ์ข…์†๋œ ๋กœ์ง๋“ค์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์„ ๋งŒ๋‚˜๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์—ฌ๋Ÿฌ๋ถ„๋„ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ๋…ํŠนํ•œ ๊ธฐ๋ฒ•์„ ์ ์šฉํ–ˆ๊ฑฐ๋‚˜, ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์–ด๋ ค์›€์„ ๊ฒช์€ ์ ์ด ์žˆ๋‹ค๋ฉด ์–ด๋–ค ์‹œํ–‰์ฐฉ์˜ค๋ผ๋„ ์ข‹์œผ๋‹ˆ, GitHub Discussions์—์„œ ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ฒฝํ—˜์„ ๋‚˜๋ˆ ์ฃผ์‹œ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์‹ค์ œ ๊ตฌํ˜„ ์ฝ”๋“œ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด, GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ (meursyphus/flitter)์—์„œ ํ™•์ธํ•ด ๋ณด์„ธ์š”. ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด๋ถ€ ๊ตฌ์กฐ์™€ ๊ฐ์ข… ์ตœ์ ํ™” ์•„์ด๋””์–ด๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐ˜์˜๋˜์—ˆ๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ง ๋ถ€์กฑํ•œ ์ ์ด ๋งŽ์ง€๋งŒ, ์•ž์œผ๋กœ๋„ ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ๋”์šฑ ๋ฐœ์ „ํ•ด ๋‚˜๊ฐ€๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

์˜คํ”ˆ์†Œ์Šค ์„ฑ๋Šฅ ์ตœ์ ํ™”, ๋Œ€์ฒด ๋ญ๊ฐ€ ๋ฌธ์ œ์˜€์„๊นŒ?

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