minTech

[React] Life Cycle ๋ณธ๋ฌธ

React

[React] Life Cycle

pushzzeong 2024. 2. 19. 15:11

 

๐Ÿ‘€ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—,,

front-end ๋ฅผ ๊ณต๋ถ€ํ•˜๊ธฐ ์ „์— ์ „๊ณต์ˆ˜์—…์„ ํ†ตํ•ด android studio๋ฅผ ์ ‘ํ•ด๋ณด๋ฉด์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ์•กํ‹ฐ๋น„ํ‹ฐ ์ƒ๋ช…์ฃผ๊ธฐ์— ๋Œ€ํ•ด ๋ฐฐ์›Œ๋ณธ ์ ์ด ์žˆ๋‹ค. ๊ทธ ๋•Œ ์ด ์ƒ๋ช…์ฃผ๊ธฐ์— ๊ด€ํ•œ ํŒŒํŠธ๊ฐ€ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•ด์„œ ์ค‘๊ฐ„๊ณ ์‚ฌ ๋ฌธ์ œ๋กœ๋„ ์ถœ์ œ๋˜์—ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค. 

 

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

 

๊ทธ๋ ‡๋‹ค๋ฉด ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์ƒ๋ช…์ฃผ๊ธฐ๋ž€ ๋ฌด์—‡์ด๋ฉฐ, ์ปดํฌ๋„ŒํŠธํ˜•๊ณผ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ ๊ฐ๊ฐ์—์„œ์˜ ์‚ฌ์ดํด์ด ๋ฌด์—‡์„ ์ค‘์‹ฌ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค. 

 

 

๐Ÿ“š ์ƒ๋ช…์ฃผ๊ธฐ(Life Cycle) ๋ž€ ๋ฌด์—‡์ผ๊นŒ?

์ƒ๋ช…์ฃผ๊ธฐ(Lift Cycle)๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๋‚˜์„œ ์‚ฌ์šฉ๋˜๊ณ , ์ œ๊ฑฐ๋˜๋Š” ์ด ์ผ๋ จ์˜ ๊ณผ์ •์„ ๋งํ•œ๋‹ค.

React ์ปดํฌ๋„ŒํŠธ๋Š” ๋ชจ๋‘ ๊ฐ๊ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ์ด ์ƒ๋ช…์ฃผ๊ธฐ์˜ ํŠน์ • ์‹œ์ ์—์„œ ๋ฉ”์†Œ๋“œ๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š”๋ฐ

์ด ๋ฉ”์†Œ๋“œ๋ฅผ ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ด๋ฒคํŠธ๋ผ๊ณ ํ•œ๋‹ค. 

 

์ƒ๋ช…์ฃผ๊ธฐ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ๋‹จ๊ณ„๋กœ ๋‚˜๋‰œ๋‹ค. 

  1. Mount: ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ™”๋ฉด์— ์ถ”๊ฐ€๋  ๋•Œ
  2. Update: ์ƒˆ๋กœ์šด props๋‚˜ state๋ฅผ ๋ฐ›์„ ๋•Œ
  3. UpMount: ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ™”๋ฉด์—์„œ ์ œ๊ฑฐ๋  ๋•Œ

 

์ผ๋‹จ, ๊ฐ๊ฐ์˜ ๋‹จ๊ณ„์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๊ทธ๋ฆผ์œผ๋กœ ์ •๋ฆฌํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

 

 

์ด๋Ÿฌํ•œ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์†Œ๋“œ๋Š” ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ๊ฐ์˜ ๋‹จ๊ณ„์—์„œ๋Š” ์–ด๋–ค ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š”์ง€ ์ž์„ธํžˆ ์‚ดํŽด๋ณด์ž.

 

 

1๏ธโƒฃ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ

1. Mount: ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์‹คํ–‰๋  ๋•Œ

1) ๋งˆ์šดํŠธ ๋˜๊ธฐ ์ „์— ๋จผ์ € ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ์˜ constructor๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.

  • this.state์— ๊ฐ์ฒด๋ฅผ ํ• ๋‹นํ•˜์—ฌ ์ง€์—ญ state๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  • ์ธ์Šคํ„ด์Šค์— ์ด๋ฒ ํŠธ ์ฒ˜๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ๋ฐ”์ธ๋”ฉํ•œ๋‹ค.
constructor(props) {
    super(props);
    this.state = {
      greeting: this.props.greeting,
    };
  }

 

2) getDerivedStateFromProps ์‹คํ–‰

static getDerivedStateFromProps(nextProps, prevState) {
    console.log("getDerivedStateFromProps");
    if (nextProps.greeting !== prevState.greeting) {
      return { color: nextProps.greeting };
    }
    return null;
  }

 

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

 

3) render

  • render๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ DOM์— ๋ถ€์ฐฉํ•œ๋‹ค.

 

4) ComponentDidMount ์‹คํ–‰

  • Mount๊ฐ€ ๋ชจ๋‘ ์™„๋ฃŒ๋œ ํ›„์— ์‹คํ–‰๋˜๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค. 
  • render๊ฐ€ ๋ชจ๋‘ ์™„๋ฃŒ๋œ ํ›„์ด๊ธฐ ๋•Œ๋ฌธ์— DOM์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์ฃผ๋กœ ์ด ๋•Œ๋Š” Ajax ์š”์ฒญ์ด๋‚˜, setTImeout,   
  • setInterval ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 

 

2. Update

props๋‚˜ state์˜ ๊ฐ’์ด ๋ฐ”๋€Œ๊ฑฐ๋‚˜, ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง ๋˜๋Š” ๋“ฑ์˜ ์—…๋ฐ์ดํŠธ ๋ฐœ์ƒ์„ ๊ฐ์ง€ํ•˜๊ฒŒ ๋˜๋ฉด ๋‹ค์Œ ๋ฉ”์†Œ๋“œ๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ํ˜ธ์ถœ๋œ๋‹ค.

  1. static getDerivedStateFromProps()
  2. shoudComponentUpdate()
  3. render()
  4. getSnapshotBeforeUpdate()
  5. componentDidUpdate
  • ์œ„ ๋ฉ”์†Œ๋“œ๋Š” ์ฒซ ๋ฒˆ์งธ, ๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ ๋ฐ”๊ฟ€ props์™€ state ๊ฐ’์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–๋Š”๋‹ค. 
  • componentDidUpdate ๋ฉ”์†Œ๋“œ์˜ ๊ฒฝ์šฐ์—๋Š” render๊ฐ€ ๋ชจ๋‘ ์™„๋ฃŒ๋œ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๊ฐœ์˜ ์ธ์ž๋Š” ๋ชจ๋‘ ๋ฐ”๋€Œ๊ณ  ๋‚˜์„œ์˜
  •  ์ด์ „ ์ •๋ณด๋ฅผ ๊ฐ–๊ฒŒ ๋œ๋‹ค. 

 

3. UnMount: ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ œ๊ฑฐ๋  ๋•Œ

componentWillUnmount

 

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

 

 

 

1๏ธโƒฃ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ

  • ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ๋Š” ์ปดํฌ๋„ŒํŠธ ์ค‘์‹ฌ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ์ƒ๋ช…์ฃผ๊ธฐ์˜€๋‹ค๋ฉด, ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ์šฐ์—๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ๋Œ์•„๊ฐ„๋‹ค.
  • ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ์šฐ์—๋Š” ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์†Œ๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Hook์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ๋ช…์ฃผ๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค.
โœ”๏ธ๊ฐ„๋‹จํ•œ ์‚ฌ์ „ ์ง€์‹

1. React Hook 
: ๋ฆฌ์•กํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์—ฐ๋™ํ•˜์—ฌ ๊ทธ ๊ฐ’์ด๋‚˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. 
2. Side Effect
:  ํ•จ์ˆ˜ ์•ˆ์—์„œ ํ•จ์ˆ˜ ๋ฐ”๊นฅ์— ์žˆ๋Š” ๊ฐ’์ด๋‚˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ

 

useEffect

  • react hook ์ค‘์—์„œ๋„ ์ปดํฌ๋„ŒํŠธ ํ•จ์ˆ˜์— ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ(side Effect)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. 
  • useEffect ํ•˜๋‚˜๋กœ ์ปดํฌ๋„ŒํŠธ์˜ mount,update, unMount ๋œ ์ƒํƒœ์—์„œ์˜ ์ž‘์—… ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. 

useEffect์˜ ๊ฒฝ์šฐ ๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ ๋ฌด์—‡์„ ๋„ฃ๋Š”์ง€์— ๋”ฐ๋ผ ๋™์ž‘ํ•˜๋Š” ๊ณผ์ •์ด ๋‹ค๋ฅด๋‹ค. 

 

 

 

1. ๊ฐ’์„ ๋„ฃ์„ ๊ฒฝ์šฐ

const [greeting, setGreeting] = useState('์•ˆ๋…•')

useEffect(()=> {
	console.log({greeting});
},[greeting]);

 

  • ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ฒซ ๋ Œ๋”๋ง๋  ๋•Œ์™€, greeting์˜ ๊ฐ’์ด ๋ณ€ํ•  ๋•Œ ํ•ด๋‹น ์ฝœ๋ฐฑํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค.
  • ๐ŸŸฐcomponentDidMount() + getDerivedStateFromProp ์˜ ์—ญํ•  ์ˆ˜ํ–‰
๋งŒ์•ฝ์— componentDidMount์˜ ์—ญํ• ์€ ๋ฌด์‹œํ•˜๊ณ , getDerivedStateFromProp์˜ ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?
useRef()์„ ์‚ฌ์šฉํ•˜์—ฌ componentDidMount์˜ ์—ญํ• ์€ ๋ฌด์‹œํ•œ๋‹ค. 

 

 

 

2. ๋นˆ ๋ฐฐ์—ด([ ])์„ ๋„ฃ์„ ๊ฒฝ์šฐ

const [greeting, setGreeting] = useState('์•ˆ๋…•')

useEffect(()=> {
	console.log({greeting});
},[]);
  • ์ฒ˜์Œ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋˜๊ณ , ๊ทธ ํ›„๋กœ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค. 
  • componentDidMount ์—ญํ•  ์ˆ˜ํ–‰

 

 

3. ์•„๋ฌด๊ฒƒ๋„ ๋„ฃ์ง€ ์•Š์„ ๊ฒฝ์šฐ

const [greeting, setGreeting] = useState('์•ˆ๋…•')

useEffect(()=> {
	console.log({greeting});
});

 

  • ๋ฐ์ดํ„ฐ์™€ ๊ด€๋ จ์—†์ด ๋ฆฌ๋ Œ๋”๋ง์‹œ๋งˆ๋‹ค ์ฝœ๋ฐฑํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค. 

 

4. useEffect() ๋‚ด์— return ํ•ด์ค„ ๊ฒฝ์šฐ

  • return ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ clean-up ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ๋ฉด, ์ปดํฌ๋„ŒํŠธ๊ฐ€ unmount ๋  ๋•Œ, ์ •๋ฆฌํ•ด์•ผํ•  ๊ฒƒ๋“ค์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. 
  • ๐ŸŸฐ componentWillUnmount() ์˜ ์—ญํ•  ์ˆ˜ํ–‰

 

 

๐Ÿคท‍โ™‚๏ธ ๊ทธ๋ ‡๋‹ค๋ฉด ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์™œ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ?

"์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๋ฐฐ์›Œ์•ผํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ผ๊นŒ?"

 

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

 

์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ์ƒ๋ช…์ฃผ๊ธฐ์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ์กฐ์‚ฌํ•ด๋ณด๋ฉด์„œ ๋งŽ์ด ๊ณ ๋ฏผํ•ด๋ณด์•˜๋‹ค.

 

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

์ด๋ฒˆ ๊ธฐํšŒ์— Life Cycle์„  ๋ฐฐ์šด ํ›„์—, ๋‚ด๊ฐ€ ์–ด๋А ๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ• ์ง€ ๊นจ๋‹ฌ์•˜๊ณ , ์•ž์œผ๋กœ ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ๋งž๋‹ฅ๋œจ๋ ธ์„ ๋•Œ, ์–ด๋–ป๊ฒŒ ๋Œ€์ฒ˜ํ•ด์•ผํ• ์ง€ ์•Œ ๊ฒƒ ๊ฐ™๋‹ค. 


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

 

 

๐Ÿ“š์ฐธ๊ณ ์ž๋ฃŒ

https://velog.io/@ssulv3030/React-Life-Cycle%EC%9D%B4%EB%9E%80-react-life-cycle-method%EC%99%80-hooks

https://ramincoding.tistory.com/entry/React-%EB%9D%BC%EC%9D%B4%ED%94%84%EC%82%AC%EC%9D%B4%ED%81%B4LifeCycle-React-%EC%9D%98-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0?category=1121495

https://www.zerocho.com/category/React/post/579b5ec26958781500ed9955