πŸ“š 쏙쏙 λ“€μ–΄μ˜€λŠ” ν•¨μˆ˜ν˜• μ½”λ”©(1)

yooooujinΒ·2024λ…„ 1μ›” 17일
2
post-thumbnail

λͺ©μ°¨
0. μš©μ–΄ 정리
1. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ΄λž€?
2. μ‹€μš©μ  μΈ‘λ©΄μ—μ„œ ν”„λ‘œκ·Έλž˜λ° μ •μ˜ 문제점
3. μ•‘μ…˜κ³Ό 계산, 데이터 κ΅¬λΆ„ν•˜κΈ°

0. μš©μ–΄ 정리

λΆ€μˆ˜ 효과(Side Effect)
본래의 λͺ©μ κ³ΌλŠ” λ‹€λ₯Έ λΆ€μž‘μš©(or 효과).
이 μ±…μ—μ„œλŠ” ν•¨μˆ˜μ—μ„œ 결과값을 μ£ΌλŠ” 것 외에 λͺ¨λ“  행동을 λΆ€μˆ˜ 효과라 ν‘œν˜„ν•©λ‹ˆλ‹€.
ex) 이메일 보내기, 파일 읽기

순수 ν•¨μˆ˜
λΆ€μˆ˜ 효과 없이 κ²°κ³Ό 값이 μΈμžμ—λ§Œ μ˜μ‘΄ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.

1. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ΄λž€?

  • 순수 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜κ³  λΆ€μˆ˜ 효과λ₯Ό ν”Όν•˜λŠ” 것이 νŠΉμ§•μΈ ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„
  • λΆ€μˆ˜ 효과 없이 순수 ν•¨μˆ˜λ§Œ μ‚¬μš©ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° μŠ€νƒ€μΌ

2. μ‹€μš©μ  μΈ‘λ©΄μ—μ„œ ν”„λ‘œκ·Έλž˜λ° μ •μ˜ 문제점

문제 1. λΆ€μˆ˜ νš¨κ³ΌλŠ” ν•„μš”ν•©λ‹ˆλ‹€.

μ •μ˜μ— λ”°λ₯΄λ©΄ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ λΆ€μˆ˜ 효과λ₯Ό λ§Œλ“€μ–΄λ‚΄λ©΄ μ•ˆλ˜μ§€λ§Œ, λΆ€μˆ˜ νš¨κ³ΌλŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‹€ν–‰ν•˜λŠ” μ΄μœ μž…λ‹ˆλ‹€.
ex) 이메일 전솑 ν”„λ‘œκ·Έλž¨ > 이메일 μ „μ†‘ν•˜κΈ° ν•¨μˆ˜

문제2. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ λΆ€μˆ˜ 효과λ₯Ό 잘 λ‹€λ£° 수 μžˆμŠ΅λ‹ˆλ‹€.

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ¨ΈλŠ” μˆœμˆ˜ν•˜μ§€ μ•Šμ€ ν•¨μˆ˜λ„ μ‚¬μš©ν•˜λ©°, μ΄λŸ¬ν•œ ν•¨μˆ˜λ“€μ„ 잘 λ‹€λ£° 숫 μžˆλŠ” 기술이 많이 μžˆμŠ΅λ‹ˆλ‹€.
ex) React ν”„λ ˆμž„ μ›Œν¬ > useEffect

문제 3. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ μ‹€μš©μ μž…λ‹ˆλ‹€.

μ •μ˜μ—μ„œλŠ” ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ΄ μˆ˜ν•™μ μ΄λΌ μ‹€μ œλ‘œ 잘 μ‚¬μš©λ˜μ§€ μ•Šμ„ 것 처럼 λŠκ»΄μ§€μ§€λ§Œ, ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° μ†Œν”„νŠΈμ›¨μ–΄λ„ 많이 μžˆμŠ΅λ‹ˆλ‹€.

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ€ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ„ κ°œλ°œν• λ•Œ μ½”λ“œλ₯Ό 3κ°€μ§€λ‘œ λΆ„λ₯˜ν•©λ‹ˆλ‹€.

  • μ•‘μ…˜(action)
  • 계산(calculation)
  • 데이터(data)

3. μ•‘μ…˜κ³Ό 계산, 데이터

  • μ•‘μ…˜(action)
    μ•‘μ…˜μ€ μ‹€ν–‰ μ‹œμ μ΄λ‚˜ 횟수 λ˜λŠ” λ‘˜ 닀에 μ˜μ‘΄ν•˜λ©°, λ¬΄μ–Έκ°€μ˜ λ™μž‘μ„ μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.
  • 계산(calculation)
    계산은 μž…λ ₯κ°’μœΌλ‘œ 좜λ ₯값을 λ§Œλ“œλŠ” 것 μž…λ‹ˆλ‹€.
    같은 μž…λ ₯값을 κ°€μ§€κ³  κ³„μ‚°ν•˜λ©΄ 항상 같은 결과값이 λ‚˜μ˜΅λ‹ˆλ‹€.

  • 데이터(data)
    μ΄λ²€νŠΈμ— λŒ€ν•΄ κΈ°λ‘ν•œ μ‚¬μ‹€μž…λ‹ˆλ‹€. μ‹€ν–‰ν•˜μ§€ μ•Šμ•„λ„ 데이터 자체둜 μ˜λ―Έκ°€ 있으며, 같은 데이터λ₯Ό μ—¬λŸ¬ ν˜•νƒœλ‘œλ„ 해석이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

이와 같이 3κ°€μ§€λ‘œ λΆ„λ₯˜ν•˜λ©΄ λΆ„μ‚° μ‹œμŠ€ν…œμ— 잘 μ–΄μšΈλ¦½λ‹ˆλ‹€.

데이터와 계산은 μ‹€ν–‰ μ‹œμ μ΄λ‚˜ νšŸμˆ˜μ— μ˜μ‘΄μ μ΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ½”λ“œλ₯Ό 데이터와 κ³„μ‚°μœΌλ‘œ λ°”κΏ€μˆ˜λ‘ λΆ„μ‚° μ‹œμŠ€ν…œμ—μ„œ λ°œμƒν•˜λŠ” μ—¬λŸ¬κ°€μ§€ 문제λ₯Ό ν•΄κ²° ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ•‘μ…˜μ€ μ‹€ν–‰ μ‹œμ κ³Ό νšŸμˆ˜μ— μ˜μ‘΄μ μ΄λΌμ„œ λ¬Έμ œκ°€ 될 수 μžˆμ§€λ§Œ, μ½”λ“œ 전체에 영ν–₯을 μ£Όμ§€ μ•Šλ„λ‘ 미리 λΆ„λ¦¬ν•˜μ—¬ μ£Όμ–΄ λΆ„μ‚° μ‹œμŠ€ν…œμ— μ ν•©ν•˜κ²Œ 섀계가 κ°€λŠ₯ν•©λ‹ˆλ‹€.

0개의 λŒ“κΈ€