React: Devtools V4: ํ•˜์ด๋ผ์ดํŠธ ์—…๋ฐ์ดํŠธ๋Š” ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2019๋…„ 08์›” 17์ผ  ยท  31์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebook/react

๋‚ด๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ–ˆ๋‹ค๋ฉด devtools v4์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ์ €์žฅ์†Œ๊ฐ€ ๋งž์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๋ฐ˜์‘ devtool์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Œ์„ โ€‹โ€‹๋ฐฉ๊ธˆ ์•Œ์•„์ฐจ๋ ธ์Šต๋‹ˆ๋‹ค. "์—…๋ฐ์ดํŠธ ๊ฐ•์กฐ" ๊ธฐ๋Šฅ์ด ์—†์Šต๋‹ˆ๋‹ค.
์–ด๋–ป๊ฒŒ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

image

image

๋ฒ„์ „: 4.0.2(2019๋…„ 8์›” 15์ผ)

Developer Tools Discussion Feature Request

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

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

์ž˜๋ชป๋œ ์•„์ด๋””์–ด๋ฅผ ์ฃผ๋Š” ๊ฒƒ์— ๋Œ€ํ•œ @gaearon ์˜ ์šฐ๋ ค๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

1. ๋ Œ๋”๋ง ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์œค๊ณฝ์„  ์ƒ‰์ƒ ์„ ํƒ

์ €๋ ดํ•œ ๋ Œ๋”๋Š” ๋…น์ƒ‰์ด์–ด์•ผ ํ•˜๊ณ  ๊ฐ’๋น„์‹ผ ๋ Œ๋”๋Š” ๋…ธ๋ž€์ƒ‰ ๋˜๋Š” ๋นจ๊ฐ„์ƒ‰์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ํ”„๋กœํŒŒ์ผ๋Ÿฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์€ ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

2. ์œค๊ณฝ ํŽ˜์ด๋“œ ์†๋„ ๋ณ€๊ฒฝ

์œค๊ณฝ ํŽ˜์ด๋“œ ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ๋ Œ๋”๋ง ์ง€์† ์‹œ๊ฐ„์— ์ƒ๋Œ€์ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋น ๋ฅธ ๋ Œ๋”๋Š” ์ฆ‰์‹œ ํŽ˜์ด๋“œ๋˜์–ด์•ผ ํ•˜๊ณ  ๋Š๋ฆฐ ๋ Œ๋”๋Š” ๋” ์ฒœ์ฒœํžˆ ํŽ˜์ด๋“œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3. ๋„์ƒ‰๋œ ๋ถ€๋ถ„์˜ ๊ตฌ๋ถ„

๋‚˜๋Š” ๋•Œ๋•Œ๋กœ Highlight Updates ๋ฅผ Chrome์˜ Paint Flashing . ์ด๊ฒƒ์€ DOM ํšจ๊ณผ๊ฐ€ ์—†๋Š” ๋ Œ๋”์™€ ๋‹ค๋ฅด๊ฒŒ ๊ฐ•์กฐํ‘œ์‹œ๋˜๋„๋ก ๋‹ค์‹œ ์น ํ•˜๋„๋ก ํ•˜๋Š” ๋ Œ๋”๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. DevTools์—๋Š” ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

์œ„์˜ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ๋งŒ ๊นœ๋ฐ•์ด๋Š” ์„ค์ •์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์ผ๋ถ€ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ž„๊ณ„๊ฐ’ ํฌํ•จ).

๋ชจ๋“  31 ๋Œ“๊ธ€

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ด๋ผ์ดํŠธ ์—…๋ฐ์ดํŠธ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.
์—…๋ฐ์ดํŠธ๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ์ง€๊ธˆ ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

https://www.reddit.com/r/reactjs/comments/cqx554/introducing_the_new_react_devtools/ex1r9nb/

์†”์งํ•œ ๋Œ€๋‹ต์€ ๊ทธ๊ฒƒ์„ ๊ตฌํ˜„ํ•  ์‹œ๊ฐ„์ด ์—†์—ˆ๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์ถœ์‹œ๋˜๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•  ๋งŒํผ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

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

์ธ๋ผ์ธ ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋„๋ก ์ˆ˜์ • ๋จ

์ผ๋ถ€ ๊ด€๋ จ ์ด์ „ ํ† ๋ก  https://github.com/bvaughn/react-devtools-experimental/issues/244

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

์ž˜๋ชป๋œ ์•„์ด๋””์–ด๋ฅผ ์ฃผ๋Š” ๊ฒƒ์— ๋Œ€ํ•œ @gaearon ์˜ ์šฐ๋ ค๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

1. ๋ Œ๋”๋ง ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์œค๊ณฝ์„  ์ƒ‰์ƒ ์„ ํƒ

์ €๋ ดํ•œ ๋ Œ๋”๋Š” ๋…น์ƒ‰์ด์–ด์•ผ ํ•˜๊ณ  ๊ฐ’๋น„์‹ผ ๋ Œ๋”๋Š” ๋…ธ๋ž€์ƒ‰ ๋˜๋Š” ๋นจ๊ฐ„์ƒ‰์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ํ”„๋กœํŒŒ์ผ๋Ÿฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์€ ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

2. ์œค๊ณฝ ํŽ˜์ด๋“œ ์†๋„ ๋ณ€๊ฒฝ

์œค๊ณฝ ํŽ˜์ด๋“œ ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ๋ Œ๋”๋ง ์ง€์† ์‹œ๊ฐ„์— ์ƒ๋Œ€์ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋น ๋ฅธ ๋ Œ๋”๋Š” ์ฆ‰์‹œ ํŽ˜์ด๋“œ๋˜์–ด์•ผ ํ•˜๊ณ  ๋Š๋ฆฐ ๋ Œ๋”๋Š” ๋” ์ฒœ์ฒœํžˆ ํŽ˜์ด๋“œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3. ๋„์ƒ‰๋œ ๋ถ€๋ถ„์˜ ๊ตฌ๋ถ„

๋‚˜๋Š” ๋•Œ๋•Œ๋กœ Highlight Updates ๋ฅผ Chrome์˜ Paint Flashing . ์ด๊ฒƒ์€ DOM ํšจ๊ณผ๊ฐ€ ์—†๋Š” ๋ Œ๋”์™€ ๋‹ค๋ฅด๊ฒŒ ๊ฐ•์กฐํ‘œ์‹œ๋˜๋„๋ก ๋‹ค์‹œ ์น ํ•˜๋„๋ก ํ•˜๋Š” ๋ Œ๋”๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. DevTools์—๋Š” ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

์œ„์˜ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ๋งŒ ๊นœ๋ฐ•์ด๋Š” ์„ค์ •์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์ผ๋ถ€ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ž„๊ณ„๊ฐ’ ํฌํ•จ).

"์ €๋ ดํ•œ" ๋˜๋Š” "๋น ๋ฅธ" ๋ Œ๋”๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์š”์ธ์œผ๋กœ ์ธํ•ด ์ƒ๊ฐ๋งŒํผ ๊ฐ„๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ๊ฐœ๋ฐœ ๋นŒ๋“œ๋Š” ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ๋ณด๋‹ค ํ›จ์”ฌ ๋Š๋ฆฝ๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์ž ๋žฉํ†ฑ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ตœ์ข… ์‚ฌ์šฉ์ž ๋žฉํ†ฑ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค.

ํ”„๋กœํŒŒ์ผ๋Ÿฌ์˜ ์ข‹์€ ์ ์€ ์†๋„๋ฅผ ์ƒ๋Œ€์ ์œผ๋กœ ๋ณด๊ณ ํ•˜์—ฌ ์ฃผ์–ด์ง„ ์„ธ์…˜์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ€์žฅ ๋Š๋ฆฐ ๋ถ€๋ถ„์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (๊ฐ€์žฅ ๋Š๋ฆฐ ๋ถ€๋ถ„์ด ์ถฉ๋ถ„ํžˆ ๋น ๋ฅผ ๋•Œ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) ์ด๊ฒƒ์€ ๋Œ์ด์ผœ๋ณด๋ฉด์„œ๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ปค๋ฐ‹์— ๋Œ€ํ•œ ์ •์  ์Šค๋ƒ…์ƒท๊ณผ ๋ณ€๊ฒฝ๋œ props/state๋ฅผ ์ œ๊ณตํ•˜์—ฌ ํŠน์ • ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ๋ Œ๋”๋ง๋˜๋Š”์ง€(์˜ˆ์ƒ๋ณด๋‹ค ๋งŽ์•˜์Šต๋‹ˆ๊นŒ?) ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ตฌ์ฒด์ ์œผ๋กœ _์™œ_ ๋‹ค์‹œ ๋ Œ๋”๋ง๋˜์—ˆ๋Š”์ง€, ๊ทธ ๋ฐ–์˜ ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์œผ๋กœ ๋‹ค์‹œ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค.

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

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

์ƒˆ ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋กœ ์ด๊ฒƒ์„ ํ™•์ธํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค

๋‹น์‹ ์€ ๋ฌด์—‡์„ ์‹œ๋„ ํ–ˆ์Šต๋‹ˆ๊นŒ? ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋Š” ํ•˜๋‚˜์˜ ์ž์‹์ด ๋‹ค์‹œ ๋ Œ๋”๋ง๋˜๋Š”์ง€ ์•„๋‹ˆ๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์ธ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ณด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” '์—…๋ฐ์ดํŠธ ํ•˜์ด๋ผ์ดํŠธ'๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•œ dev-tools์˜ ๊ธฐ๋Šฅ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ๋นˆ๋„๊ฐ€ ์•„๋‹ˆ๋ผ ์—…๋ฐ์ดํŠธ๋œ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋น ๋ฅธ ์‹œ๊ฐ์  ํ‘œ์‹œ๋ณด๋‹ค ํ›จ์”ฌ ๋ฒˆ๊ฑฐ๋กญ์Šต๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ "์—…๋ฐ์ดํŠธ ํ•˜์ด๋ผ์ดํŠธ"๋Š” "ํ‚ฌ๋Ÿฌ ๊ธฐ๋Šฅ"์ด์—ˆ์Šต๋‹ˆ๋‹ค ...

์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์˜ ๋ง์„ ๋“ฃ์Šต๋‹ˆ๋‹ค :-) ๋‚˜๋Š” "๋‚˜๋Š” ์ด๊ฒƒ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๋Š” ๋” ์ด์ƒ์˜ ์˜๊ฒฌ์ด ์ด ์Šค๋ ˆ๋“œ์—์„œ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ํฌ๊ฒŒ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ๋‹ค์‹œ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ธ์ง€ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ์˜ต์…˜์€ ๋ Œ๋”๋ง ๋ฌธ์ œ๋ฅผ ์ฆ‰์‹œ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ์ผ์ƒ์ ์ธ ์ž‘์—… ํ”„๋กœ์„ธ์Šค์— ํ•„์ˆ˜์ ์ธ ๊ตฌ์„ฑ ์š”์†Œ์˜€์Šต๋‹ˆ๋‹ค. ์ด ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์„ ๊ณง ๋‹ค์‹œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ๊ธฐ์  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์žฌ๋ Œ๋”๋ง์— ๋Œ€ํ•œ ๋†’์€ ์ˆ˜์ค€์˜ ๋น ๋ฅธ ๋ณด๊ธฐ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์ด ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€ ๋ฒ„์ „์„ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ฌ ๋•Œ +1์ž…๋‹ˆ๋‹ค(์ปจํ…์ŠคํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ์™€ ๊ฐ™์ด ์™„์ „ํžˆ ๊ดœ์ฐฎ์€ ์žฌ๋ Œ๋”๋ง์˜ ๊ฒฝ์šฐ์—๋„).

๋‹ค์‹œ ๊ฐ€์ ธ์˜ฌ ๋•Œ +1

์ด ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์„ ๊ณง ๋‹ค์‹œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ๊ธฐ์  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์œ„์—์„œ ์š”์ฒญํ•œ ๋Œ€๋กœ:

"์ด๊ฒƒ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๋Š” ์ถ”๊ฐ€ ๋Œ“๊ธ€์€ ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ๋” ๋ช…์‹œ์ ์œผ๋กœ ๋ฐ”๊พธ๋ ค๋ฉด:

์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์„ ๋“ฃ๊ณ !

๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด ์ €์žฅ์†Œ๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ช‡ ์‹œ๊ฐ„๋งˆ๋‹ค ๊ฐ™์€ ๋Œ“๊ธ€๋กœ ์ŠคํŒธ์„ ๋ณด๋‚ด๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐœ์ธ์ ์œผ๋กœ GitHub ์•Œ๋ฆผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ๊ฐ€ ๋งค์ผ "+1"๋กœ ๋ถ€๋”ชํžˆ๋ฉด ๊ฒฐ๊ตญ ๋…ธ์ด์ฆˆ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ตฌ๋…์„ ์ทจ์†Œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์˜๋„์™€ ๋ฐ˜๋Œ€์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ์ด์ „์— ๋งํ•˜์ง€ ์•Š์€ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์“ฐ๊ณ  ์‹ถ์€ ๊ฒƒ๊ณผ ๋น„์Šทํ•œ ๋Œ“๊ธ€์ด ๋ณด์ด๋ฉด ๋Œ€์‹  ๐Ÿ‘ ๋ฐ˜์‘์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

์ดํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๊ท€ํ•˜์˜ ์˜๊ฒฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๐Ÿ‘๋Š” ์ž‘์—…์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ด์ „์— ๋งํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „์˜ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ๋ฌป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค
_(๋…๋ฆฝํ˜• ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ v3 repo์˜ ์ด ๋งํฌ๊ฐ€ ๋Š์–ด์ ธ Crome ํ™•์žฅ์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—ฐ๊ฒฐ๋จ)_

์ƒˆ๋กœ์šด DevTools์—๋Š” ์ฝ”๋“œ์—์„œ ์‹ค์ œ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํ”„๋กœํŒŒ์ผ๋Ÿฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ ์ด๊ธฐ๋„ ํ•œ Chrome DevTools์˜ ์ž์ฒด ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ์ƒ๊ฐ๋‚˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์›€์ง์ž„์€ ๋ณต์žก์„ฑ๊ณผ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ์˜ํ–ฅ ๋•Œ๋ฌธ์— ์•„๋งˆ๋„ ์˜๋ฏธ๊ฐ€ ์žˆ์—ˆ๊ฒ ์ง€๋งŒ, ์š”์ ์€ ์—„์ฒญ๋‚œ ๋งˆ์ฐฐ์„ ์ถ”๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค( @Carduelis๊ฐ€ ์ง€์ ํ–ˆ๋“ฏ์ด ์‹œ์ž‘/์ค‘์ง€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ง€ ์•Š๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค). ๊ทธ๊ฒƒ์€ OODA ๋ฃจํ”„์— ๋ Œ์น˜๋ฅผ ๋˜์ง‘๋‹ˆ๋‹ค. ์˜์‹ฌํ•  ์—ฌ์ง€ ์—†์ด ์‚ฌ์šฉ์ž๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๋นˆ๋„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ์•ฑ ์ž์ฒด์˜ ํ’ˆ์งˆ์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์น  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์ž˜๋ชป๋œ ๋ฐฉ์‹์œผ๋กœ ๋ฐ›์•„๋“ค์ด์ง€ ๋งˆ์‹ญ์‹œ์˜ค --- ์ƒˆ๋กœ์šด ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋Š” ๋ฉ‹์ง€๊ณ  ๊นŠ์ด ํŒŒ๊ณ ๋“ค ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์œ ์šฉํ•˜์ง€๋งŒ ์ด์ „ ์—…๋ฐ์ดํŠธ ๊ฐ•์กฐ ํ‘œ์‹œ์™€ ๊ฐ™์€ ๋น ๋ฅด๊ณ  ๋”๋Ÿฌ์šด ์‹œ๊ฐํ™”๋ฅผ ๋‹จ์ˆœํžˆ ๋Œ€์ฒดํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „์˜ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ๋ฌป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@Carduelis ์ด์ „ ๋ฒ„์ „์˜ DevTools์— ๋Œ€ํ•œ ์„ค์น˜ ์ง€์นจ์€ ๋ฆด๋ฆฌ์Šค ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์—์„œ ๋‹ค๋ฃน๋‹ˆ๋‹ค. https://reactjs.org/blog/2019/08/15/new-react-devtools.html#how -do-i-get- ๊ตฌ๋ฒ„์ „-๋’ค๋กœ

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

React Dev Tools V3 ์„ค์น˜(๋‹จ๊ณ„๋ณ„ ์ง€์นจ) :
https://gist.github.com/oztune/01be16a2f90283aad82422b37221d522

๊ธฐ์ˆ ์ ์ธ ์ˆ˜์ค€์—์„œ๋Š” "์‹ฌ์ธต์ ์ธ ํ”„๋กœํŒŒ์ผ๋ง ๋„๊ตฌ" > "์–ด๋ฆฌ์„์€ ๊ฐ•์กฐ ํ‘œ์‹œ ๊ธฐ๋Šฅ"์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ๋ชจ๋‘ ์ธ๊ฐ„์ผ ๋ฟ์ด๋ฉฐ ๋‹จ์ˆœํ•œ ์‹œ๊ฐ์  ์‹ ํ˜ธ์—์„œ ๋งŽ์€ ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฉด์—์„œ ๊ฐ•์กฐ ํ‘œ์‹œ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ €์—๊ฒŒ๋Š” ์ด๊ฒƒ์ด ์ œ๊ฐ€ React Dev Tools๋ฅผ 90% ์—ฌ๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

๊ธฐ์ˆ ์ ์ธ ์ˆ˜์ค€์—์„œ๋Š” "์‹ฌ์ธต์ ์ธ ํ”„๋กœํŒŒ์ผ๋ง ๋„๊ตฌ" > "์–ด๋ฆฌ์„์€ ๊ฐ•์กฐ ํ‘œ์‹œ ๊ธฐ๋Šฅ"์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ๋ชจ๋‘ ์ธ๊ฐ„์ผ ๋ฟ์ด๋ฉฐ ๋‹จ์ˆœํ•œ ์‹œ๊ฐ์  ์‹ ํ˜ธ์—์„œ ๋งŽ์€ ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฉด์—์„œ ๊ฐ•์กฐ ํ‘œ์‹œ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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

์œ„์—์„œ ๋งํ–ˆ๋“ฏ ์ด ํ”„๋กœํŒŒ์ผ๋Ÿฌ์˜ ์ผ๋ถ€๋กœ DevTools์— ์ผ์ข…์˜ ์—…๋ฐ์ดํŠธ ํ”Œ๋ž˜์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

๊ณผ๋„ํ•œ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ์š”์ ์—์„œ๋Š” ์‹œ๊ฐ์  ๋ Œ๋”๋ง ๊ฐ•์กฐ ํ‘œ์‹œ๊ฐ€ ์ด๋ฅผ ์žฅ๋ คํ•  ์ˆ˜ ์žˆ์Œ์„ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‚˜๋Š” ์—ฌ๊ธฐ ํ† ๋ก ์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ์„ ๋†“์นœ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด https://github.com/welldone-software/why-did-you-render ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ด ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ WhyDidYouRender๋Š” ๊นŠ์€ ๊ฐ’ ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žฌ๋ Œ๋”๋ง ๊ฐ„์— ์‹ค์ œ๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ์  ๋ Œ๋” ํ•˜์ด๋ผ์ดํŠธ์— ์ด์™€ ๋™์ผํ•œ ํ•„ํ„ฐ๋ง์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋” ์‚ฌ๋ ค ๊นŠ์€ ์ตœ์ ํ™”๋ฅผ ์ง€์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋˜ํ•œ ํ”„๋กœํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๊ตฌ๋ณ„์ž…๋‹ˆ๋‹ค).

์ด๋ก ์ƒ์œผ๋กœ๋Š” ์„ฑ๋Šฅ ๋ฌธ์ œ ์—†์ด ์ „์ฒด ์•ฑ์„ ๋‹ค์‹œ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ Œ๋”๋ง ๊ฐ•์กฐ ํ‘œ์‹œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๊ณณ์— SCU๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๋น„์ƒ์‚ฐ์ ์ธ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ rerender ํ•˜์ด๋ผ์ดํŠธ๊ฐ€ React ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•œ ๋ฐ๋ชจ์— ์œ ์šฉํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ WhyDidYouRender๋Š” ๊นŠ์€ ๊ฐ’ ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žฌ๋ Œ๋”๋ง ๊ฐ„์— ์‹ค์ œ๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์•ฑ์˜ ๊ฒฝ์šฐ ๋งค์šฐ ๋Š๋ฆฌ๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ์–ด๋–ค ์ข…๋ฅ˜์˜ ์‹ฌ์ธต ๋น„๊ต๋„ ํ™•์‹คํžˆ ์šฐ๋ฆฌ๊ฐ€ ํ•ญ์ƒ ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ผค ๋•Œ(์ €์† ์„ฑ๋Šฅ์„ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด) ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋ฅผ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ๋” ์‚ฌ๋ ค ๊นŠ์€ ์ตœ์ ํ™”๋ฅผ ์ง€์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋˜ํ•œ ํ”„๋กœํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๊ตฌ๋ณ„์ž…๋‹ˆ๋‹ค).

ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ ๋ฒ„์ „์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
Video demonstrating profiler "why did this render?" feature

๋‹ค์‹œ ๋ Œ๋”๋ง๋œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋ณด์•˜์ง€๋งŒ props/state/hooks๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

@bvaughn ์ €๋Š” "์ด๊ฒƒ์ด ์™œ ๋ Œ๋”๋ง ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?"๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ(์ค‘๊ฐ„์— Highlight Updates ์ด ๋‹ค์‹œ ๊ณ ๋ ค๋˜๋Š” ๋™์•ˆ)์ด์ง€๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ฌธ์„œ๋ฅผ ์ฝ๊ณ  YouTube ์ž์Šต์„œ๋ฅผ ํ›‘์–ด๋ณธ ํ›„์—๋„ ๋ช‡ ๊ฐ€์ง€ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ํ•ด์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์•„์ง ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ‘์ค„์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๊ฐ€ ์ง๊ด€์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์™œ ๋ Œ๋”๋ง ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

  • ์†Œํ’ˆ ๋ณ€๊ฒฝ: (__)

ํ›„ํฌ API๋งŒ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์˜๋ฏธ๊ฐ€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์™œ ๋ Œ๋”๋ง ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

  • ํ›„ํฌ ๋ณ€๊ฒฝ

๋ณ€๊ฒฝ๋œ ์‹ค์ œ props / state ๋ฅผ ๋‚˜์—ดํ•˜๋Š” ๋ช…๋ฐฑํ•œ ๊ฒฝ์šฐ ์™ธ์— ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์™€ ๋‚ด๊ฐ€ ์•„์ง ๋งŒ๋‚˜์ง€ ๋ชปํ•œ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ํ•œ ๋ฌธ์žฅ ๋˜๋Š” ๋‘ ๊ฐœ์˜ ์„ค๋ช…์ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฐ‘์ค„์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๊ฐ€ ์ง๊ด€์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•ฑ์—์„œ __ ๋ผ๋Š” ์ด๋ฆ„์˜ ์†Œํ’ˆ์ด ์ „๋‹ฌ๋˜๊ณ  ์ปค๋ฐ‹ ์‚ฌ์ด์— ํ•ด๋‹น ์†Œํ’ˆ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ๐Ÿ˜„

ํ›„ํฌ API๋งŒ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์˜๋ฏธ๊ฐ€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

#16477์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์•ˆ๋…•ํ•˜์„ธ์š”

์ €๋Š” ํ•˜์ด๋ผ์ดํŠธ ์—…๋ฐ์ดํŠธ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ž์ฃผ ์ƒˆ๋กœ ๊ณ ์นจ๋˜๋Š” ์•ฑ์„ ๊ฐœ๋ฐœ ์ค‘์ด๋ฉฐ ๊ทธ ๋ฏธ๋ž˜๋Š” ์ œ ์ผ์ƒ ์—…๋ฌด์— ํ•„์ˆ˜์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@bvaughn์ด ์ œ์‹œํ•œ ์†”๋ฃจ์…˜์„

์ด๊ฒƒ์„ ๋‹ค์‹œ ๊ตฌํ˜„ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋‚ด React Dev Tools๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ ์—†์ด๋Š” ๊ฐœ๋ฐœํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ๋‹ค์‹œ ๊ตฌํ˜„ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋‚ด React Dev Tools๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ ์—†์ด๋Š” ๊ฐœ๋ฐœํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@oztune์ด ์ด๋ฏธ ๋‹ต๋ณ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „์„ ๋‹ค์‹œ ๋ฐ›์œผ๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
https://reactjs.org/blog/2019/08/15/new-react-devtools.html#how -do-i-get-the-old-version-back

์ด์ „ ๋ฒ„์ „์„ ๋‹ค์‹œ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๊ธฐ๋Šฅ์—์„œ ์†์‹ค๋œ ๊ธฐ๋Šฅ์ด ๋„ˆ๋ฌด ๋งŽ์•„ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „์„ ๋‹ค์‹œ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๊ธฐ๋Šฅ์—์„œ ์†์‹ค๋œ ๊ธฐ๋Šฅ์ด ๋„ˆ๋ฌด ๋งŽ์•„ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ์ด์ „ ๋ฒ„์ „์„ ๋‹ค์‹œ ์–ป๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://gist.github.com/oztune/01be16a2f90283aad82422b37221d522

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

๋ˆ„๋ฝ๋œ ๊ธฐ๋Šฅ์„ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ๋ฆฌ์‹ญ์‹œ์˜ค.

๋‚ด ๋‹จ์–ด๋กœ ์ƒˆ ๋ฒ„์ „์€ ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ ์žฌ์„ค๊ณ„ ๋ฐ ๊ฐœ์„ ๊ณผ ์ƒˆ๋กœ์šด ๋ฏธ๋ž˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฑฐ๋˜์ง€ ์•Š๊ณ  ์ด์ „ ๋ฒ„์ „๊ณผ ๋‹ค๋ฅธ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์™œ ์ด์ œ ์ƒํƒœ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ?

๊ทธ๋ฆฌ๊ณ  props Boolean์€ ๋” ์ด์ƒ ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค ?? ์ •๋ง ๋ฉ‹์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋˜ ๊ฐ”๋‹ค.

์ด์ œ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋Œ€์‹  false/true๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  ํด๋ฆญํ•˜๊ณ  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์ด์— ์–ด๋–ป๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์งœ์ฆ๋‚˜.

์•ˆ๋…•ํ•˜์„ธ์š” @PMustard ์ž…๋‹ˆ๋‹ค .

์ €๋Š” ์ด ์ž‘์—…์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์œผ๋ฉด ์ด์ „ ๋ฒ„์ „์˜ dev-tools๋ฅผ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ฐ€์ง€ ์ž ์žฌ์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ์•ˆํ–ˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

dev-tools(์ฃผ๋กœ Brian Vaughn?)์—์„œ ์ž‘์—…ํ•˜๋Š” ํŒ€์ด ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๋ฉด ๊ท€ํ•˜์˜ ์šฐ๋ ค ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•ฝ๊ฐ„์˜ ๊ฐ์‚ฌ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋ฅผ ๋ฌด๋ฃŒ๋กœ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค :)
๊ฑด์„ค์ ์ธ ํ”ผ๋“œ๋ฐฑ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์•ˆ ์ธ์‚ฌ,

์—์ด๋‚˜๋ฅด

์ด ๊ธฐ๋Šฅ์ด ๊ธด๊ธ‰ํ•˜๊ฒŒ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด์ „ ๋ฒ„์ „์„ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://reactjs.org/blog/2019/08/15/new-react-devtools.html#how -do-i-get-the -์ด์ „ ๋ฒ„์ „-๋’ค๋กœ. ๋˜ํ•œ Profiler๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์•ฝ๊ฐ„์˜ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•˜์ง€๋งŒ ์–ด๋–ค ์žฌ๋ Œ๋”๋ง์ด ์ค‘์š”ํ•˜๊ณ  ์–ด๋–ค ๊ฒƒ์ด ์ค‘์š”ํ•˜์ง€ ์•Š์€์ง€ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ๋ Œ๋” ๋ฒˆํ˜ธ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ์ข…์ข… ์‹ค์ œ ์„ฑ๋Šฅ ๋ฌธ์ œ์—์„œ ์ฃผ์˜๋ฅผ ์‚ฐ๋งŒํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ Œ๋”๋ง์„ ์‰ฝ๊ฒŒ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” https://github.com/facebook/react/issues/16437#issuecomment -523629000์—์„œ ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ๋ ˆ์ด๋”์— ์žˆ์œผ๋ฉฐ "์ด๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค"๋ผ๋Š” ๋” ๋งŽ์€ ์˜๊ฒฌ์ด ๋„์›€์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด ์Šค๋ ˆ๋“œ๋Š” "์ด๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค"๋ผ๋Š” ์˜๊ฒฌ์„ ๊ณ„์† ์ˆ˜์ง‘ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์•Œ๋ฆผ ํ™์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ž ๊ธ€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชฉ์†Œ๋ฆฌ๊ฐ€ ๋“ค๋ฆฌ๋‹ˆ ์•ˆ์‹ฌํ•˜์‹ญ์‹œ์˜ค.

๋‹ค์Œ ์ฃผ์˜ ์‚ฌํ•ญ๊ณผ ํ•จ๊ป˜ ์ƒˆ DevTools(#16989)์—์„œ ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ํ˜„์žฌ๋กœ์„œ๋Š” ๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ(๋ฐ react-devtools-inline NPM ํŒจํ‚ค์ง€)์—์„œ๋งŒ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ React DOM๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ํ›„์† PR์„ ์ œ์ถœํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ ˆ๊ฑฐ์‹œ ๋ Œ๋”๋Ÿฌ(v15)์—๋Š” ๊ตฌํ˜„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

#16989๊ฐ€ ์ƒ๋ฅ™ํ•˜๋ฏ€๋กœ ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ 4.2๊ฐ€ ์ถœ์‹œ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰