[250624] TIL

Today I Learned (2025-06-24)

Container/Presentational νŒ¨ν„΄

뢄리λ₯Ό κ°•μ œν•˜λŠ” 방법은 μ»¨ν…Œμ΄λ„ˆ, ν”„λ¦¬μ  ν…Œμ΄μ…”λ„ νŒ¨ν„΄μ΄ 있음

Presentational Components

  • 데이터가 μ‚¬μš©μžμ—κ²Œ μ–΄λ–»κ²Œ λ³΄μ—¬μ§ˆ 지에 λŒ€ν•΄μ„œλ§Œ λ‹€λ£¨λŠ” μ»΄ν¬λ„ŒνŠΈ
  • propsλ₯Ό 톡해 데이터λ₯Ό λ°›μŒ

Container Components

  • μ–΄λ–€ 데이터가 λ³΄μ—¬μ§ˆ 지에 λŒ€ν•΄ λ‹€λ£¨λŠ” μ»΄ν¬λ„ŒνŠΈ
  • μŠ€νƒ€μΌ μ‹œνŠΈλ„ ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λ‹€.

Hooks

  • React Hooks둜 λŒ€μ²΄ κ°€λŠ₯ν•˜λ‹€. React 에 Hooksκ°€ μΆ”κ°€λ˜λ©΄μ„œ Container μ»΄ν¬λ„ŒνŠΈ 없이도 stateless μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‰½κ²Œ λ§Œλ“€ 수 있게 λ˜μ—ˆλ‹€.

μž₯점

Container/Presentational νŒ¨ν„΄μ€ μ—¬λŸ¬ μž₯점듀을 κ°€μ§€κ³  μžˆλ‹€.

ν•΄λ‹Ή νŒ¨ν„΄μ„ ν™œμš©ν•˜λ©΄ μžμ—°μŠ€λŸ½κ²Œ κ΄€μ‹¬μ‚¬μ˜ 뢄리λ₯Ό κ΅¬ν˜„ν•˜κ²Œ λœλ‹€. Presentational μ»΄ν¬λ„ŒνŠΈλŠ” UIλ₯Ό λ‹΄λ‹Ήν•˜λŠ” μˆœμˆ˜ν•¨μˆ˜λ‘œ μž‘μ„±ν•˜κ²Œ λ˜λŠ” 반면 Container μ»΄ν¬λ„ŒνŠΈλŠ” μƒνƒœμ™€ 기타 데이터λ₯Ό μ±…μž„μ§€κ²Œ λœλ‹€.

Presentational μ»΄ν¬λ„ŒνŠΈλŠ” 데이터 λ³€κ²½ 없이 화면에 좜λ ₯ν•  수 μžˆμœΌλ―€λ‘œ μ•±μ˜ μ—¬λŸ¬ κ³³μ—μ„œ λ‹€μ–‘ν•œ λͺ©μ μœΌλ‘œ μž¬μ‚¬μš©ν•  수 μžˆλ‹€.

Presentational μ»΄ν¬λ„ŒνŠΈλŠ” μ•±μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μˆ˜μ •ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ μ½”λ“œλ² μ΄μŠ€μ— λŒ€ν•œ 이해가 κΉŠμ§€ μ•Šμ€ κ°œλ°œμžλ”λΌλ„ μ‰½κ²Œ μˆ˜μ •μ΄ κ°€λŠ₯ν•˜λ‹€. κ³΅ν†΅μœΌλ‘œ μ“°μ΄λŠ” Presentational μ»΄ν¬λ„ŒνŠΈκ°€ λ””μžμΈμ˜ μš”κ΅¬μ‚¬ν•­μ— 따라 μˆ˜μ •ν•˜λ©΄ μ•± μ „μ²΄μ—μ„œ λ°˜μ˜λœλ‹€.

Presentational μ»΄ν¬λ„ŒνŠΈλŠ” ν…ŒμŠ€νŠΈν•˜κΈ°λ„ 쉽닀. 일반적으둜 μˆœμˆ˜ν•¨μˆ˜λ‘œ κ΅¬ν˜„λ˜λ―€λ‘œ 전체 λͺ© 데이터 μŠ€ν† μ–΄λ₯Ό λ§Œλ“€ ν•„μš” 없이 μš”κ΅¬ν•˜λŠ” λ°μ΄ν„°λ§Œ 인자둜 λ„˜κ²¨μ£Όλ©΄ λœλ‹€.


단점

Container/Presentational νŒ¨ν„΄μ€ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 λ Œλ”λ§ λ‘œμ§μ„ μ‰½κ²Œ 뢄리할 수 μžˆμ§€λ§Œ 훅을 ν™œμš©ν•˜λ©΄ ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„, 또 이 νŒ¨ν„΄μ„ λ”°λ₯΄μ§€ μ•Šμ•„λ„ 같은 효과λ₯Ό λ³Ό 수 μžˆλ‹€. 참고둜 μ§€κΈˆμ€ μƒνƒœλ₯Ό κ°€μ§„ μ»΄ν¬λ„ŒνŠΈλ„ ν•¨μˆ˜ν˜•μœΌλ‘œ λ§Œλ“€ 수 μžˆλ‹€.

훅을 μ‚¬μš©ν•˜λ”λΌλ„ 이 νŒ¨ν„΄μ„ μ‚¬μš©ν•  μˆ˜λŠ” μžˆμ§€λ§Œ λ„ˆλ¬΄ μž‘μ€ 규λͺ¨μ˜ μ•±μ—μ„œλŠ” μ˜€λ²„μ—”μ§€λ‹ˆμ–΄λ§ 일 수 μžˆλ‹€.


클래슀λ₯Ό μ“°μ§€ μ•Šκ³  Hooks λ₯Ό 쓰더라도 μ»¨ν…Œμ΄λ„ˆ/ν”„λ¦¬μ  ν…Œμ΄μ…”λ„ νŒ¨ν„΄μ„ μ‚¬μš©ν–ˆλ‹€κ³ λ„ λ³Ό 수 μžˆμ„κΉŒ ?

  • κ·Έλ ‡λ‹€. ν•΄λ‹Ή νŒ¨ν„΄μ΄ μ „λ‹¬ν•˜κ³ μž ν•˜λŠ” 핡심 κ°€μΉ˜λŠ” 관심사 뢄리라고 μƒκ°ν•œλ‹€. Hooksκ°€ μ»¨ν…Œμ΄λ„ˆ 역할을 ν•˜κ³  ν”„λ¦¬μ  ν…Œμ΄μ…”λ„ μ»΄ν¬λ„ŒνŠΈ 역할이 κ΅¬λΆ„λ˜μ–΄ μžˆλ‹€λ©΄ νŒ¨ν„΄μ— λΆ€ν•©ν•œλ‹€κ³  λ³Έλ‹€.

Categories:

Updated:

Leave a comment