๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
WEB/REACT

[React] LifeCycle (๋ผ์ดํ”„์‚ฌ์ดํด, ์ƒ๋ช…์ฃผ๊ธฐ)

by mingzoo 2021. 7. 5.

์›น์„ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋ฉด ๋น ์งˆ ์ˆ˜ ์—†๋Š”๊ฒŒ ๋˜ ๋ฐ”๋กœ ๋ผ์ดํ”„์‚ฌ์ดํด์ด๋‹ค.

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


์ผ๋‹จ, ๊ตฌ๊ธ€์— react lifecycle์ด๋ผ๊ณ  ์น˜๋ฉด ํ•ญ์ƒ ๋‚˜์˜ค๋Š” ๊ทธ๋ฆผ์ด ์žˆ๋‹ค. mount๋ถ€ํ„ฐ unmount๊นŒ์ง€ ์ขŒ๋ฅด๋ฅต ์žˆ๋Š” ์‚ฌ์ง„์ด๋‹ค. 

๋‚˜๋Š” ๊ทธ๋ƒฅ ์ด๊ฒƒ๋งŒ ๊ณต๋ถ€ํ•˜๊ณ  ์•Œ๊ณ ์žˆ์—ˆ๋‹ค. ๊ทผ๋ฐ ์™œ ๋ผ์ดํ”„์‚ฌ์ดํด์— ๋Œ€ํ•ด์„œ ์•Œ์•„์•ผํ•˜๋Š”์ง€ ๊ทผ๋ณธ์ ์ธ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๋ถ€์กฑํ•˜๋‹ค๊ณ  ๋Š๊ปด์„œ ์ด๋ฒˆ์—” ๊ทธ ๋ถ€๋ถ„์„ ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค!

 

๋ผ์ดํ”„์‚ฌ์ดํด์ด๋ž€?

๋ผ์ดํ”„ ์‚ฌ์ดํด์€ ๊ฐ„๋‹จํžˆ ์›Œ๋”ฉ๋งŒ ๋ณด๋”๋ผ๋„ 'ํ•œ ํ™”๋ฉด์ด ์ƒ์„ฑ๋˜๊ณ  ์‚ฌ๋ผ์ง€๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •'์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์™œ ๋ผ์ดํ”„์‚ฌ์ดํด(์ƒ๋ช…์ฃผ๊ธฐ)๋ž€ ๊ฐœ๋…์ด ํƒ„์ƒํ–ˆ์„๊นŒ?

์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ

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

์ด ์™ธ์—๋„ ํšจ์œจ์„ฑ, ์žฌ์‚ฌ์šฉ, ๋ฆฌ์†Œ์Šค๋‚ญ๋น„ ๊ฐ์†Œ ๋“ฑ๋“ฑ์˜ ์ด์ ์ด ์žˆ์—ˆ๋‹ค.

๋ฆฌ์•กํŠธ ํ›…์—์„œ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด

  • ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚ฌ์„ ๋•Œ
  • ํ™”๋ฉด์ด ์‚ฌ๋ผ์กŒ์„ ๋•Œ
  • state, props๊ฐ€ ๋ณ€ํ™”ํ–ˆ์„ ๋•Œ

๋ผ์ดํ”„์‚ฌ์ดํด์€ ์–ด๋””์—์„œ ์‚ฌ์šฉ์ด ๋ ๊นŒ?

๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ฐœ๋…์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ์„ ํ–ˆ์ง€๋งŒ, ๋‚ด๊ฐ€ ์‚ฌ์šฉํ–ˆ๋˜ ๊ธฐ๋Šฅ๋“ค์— ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋๋Š”์ง€ ์˜์‹์„ ๊ฐ€์ง€๊ณ  ์ƒ๊ฐํ•ด๋ณธ ์ ์ด ์—†์—ˆ๋˜ ๊ฒƒ๊ฐ™๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋ฒˆ์— ์ข€ ๋” ์ƒ๊ฐํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ๋‹ค.

์š”์ฆ˜ ๋‚˜๋Š” ๋„ทํ”Œ๋ฆญ์Šค ์„œ๋น„์Šค๋ฅผ ํด๋ก ์ฝ”๋”ฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๊ทธ ๋ถ€๋ถ„์—์„œ ๋ผ์ดํ”„์‚ฌ์ดํด์ด ์–ด๋””์—์„œ ์‚ฌ์šฉ์ด ๋๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

  • ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
  • ๋กœ๋”ฉ ํŽ˜์ด์ง€
  • Navbar์—์„œ ์„ ํƒํ•œ ๊ณณ์œผ๋กœ ํ™”๋ฉด ์˜ฎ๊ธฐ๊ธฐ
  • ์ข‹์•„์š”, ๋งˆ์Œ์— ์•ˆ๋“ค์–ด์š”, ์ฐœํ•˜๊ธฐ ๋ฒ„ํŠผ
  • ํŽ˜์ด์ง€์—์„œ ๋ฒ—์–ด๋‚ฌ์„๋•Œ ๊ธฐ์กด ๋ฐ์ดํ„ฐ ์‚ญ์ œ
  • ํŽ˜์ด์ง€ ์ „ํ™˜

๋ผ์ดํ”„์‚ฌ์ดํด์ด ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์— ์ ์šฉ๋˜์ง€๋งŒ ์ผ๋‹จ ์ง€๊ธˆ ์ƒ๊ฐ๋‚˜๋Š” ๊ฑด ์ด๋Ÿฐ ๋ถ€๋ถ„๋“ค์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 

์˜ค๋Š˜์€ ๋ผ์ดํ”„ ์‚ฌ์ดํด์˜ ํ•„์š”์„ฑ?๊ณผ ๊ฐ™์ด ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ƒ๊ฐํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋˜ ๋ถ€๋ถ„๋“ค์— ๋Œ€ํ•ด์„œ ์ƒˆ๋กญ๊ฒŒ ์ ‘๊ทผํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์–ด์„œ ๋„ˆ๋ฌด ์ข‹์•˜๋‹ค. ์•ž์œผ๋กœ ๊ณต๋ถ€๋ฅผ ํ•  ๋•Œ ์ด๋Ÿฐ ์‹์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค๋ฉด ๋” ๊นŠ์ด์žˆ๊ฒŒ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

 

728x90

'WEB > REACT' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Redux  (0) 2021.07.13
[React] useEffect  (0) 2021.07.06
[React] Rerendering(๋ฆฌ๋ Œ๋”๋ง)  (0) 2021.06.24
[React] ContextAPI๋ฅผ ์‚ฌ์šฉํ•ด์„œ TodoList๋งŒ๋“ค๊ธฐ(2) : contextAPI  (0) 2021.02.09
[React] BrowserRouter VS HashRouter  (0) 2021.02.04