Skip to content

Component โ€‹

๐Ÿ“Ž React ๊ณต์‹ ๋ฌธ์„œ - Component

์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ ๊ธฐ์ค€ โ€‹

  • ์žฌ์‚ฌ์šฉ์„ฑ (Reusability)
    ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” UI ์š”์†Œ๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ธ๋‹ค.

  • ๊ฐ€๋…์„ฑ (Readability)
    ํฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž‘๊ณ  ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ  ์ฝ”๋“œ์˜ ๊ตฌ์กฐ๋ฅผ ๋” ๋ช…ํ™•ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ ๋‹ค.

  • ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ (SRP: Single Responsibility Principle)
    ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ๋Š” ํ•˜๋‚˜์˜ ์—ญํ• ๋งŒ ๋‹ด๋‹นํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ค€,

  • ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ (Separation of Concerns)
    ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์Šคํƒ€์ผ๋ง, ๋ทฐ ๋กœ์ง์ด ํ•œ ์ปดํผ๋„ŒํŠธ์— ์„ž์ด์ง€ ์•Š๋„๋ก ๋‚˜๋ˆˆ๋‹ค.

  • ํŒŒ์ผ ํฌ๊ธฐ์™€ ๊นŠ์ด ์ œํ•œ
    ํ•˜๋‚˜์˜ ํŒŒ์ผ์ด ๋„ˆ๋ฌด ๊ธธ๊ฑฐ๋‚˜ ์ค‘์ฒฉ ๊ตฌ์กฐ๊ฐ€ ๊นŠ์–ด์งˆ ๊ฒฝ์šฐ, ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ ์‹œ์ ์„ ๊ณ ๋ คํ•œ๋‹ค.

  • ์˜๋„ ๊ธฐ๋ฐ˜ ๋ถ„๋ฆฌ
    ํ™”๋ฉด์ƒ์˜ ์œ„์น˜๋ณด๋‹ค๋Š”, โ€œ๋ฌด์—‡์„ ํ•˜๋Š”๊ฐ€โ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค.

์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ ๋ฐฉ๋ฒ• โ€‹

๐Ÿ’ก React ๊ณต์‹ ๊ฐ€์ด๋“œ

๐Ÿ“Ž React docs
We recommend defining components as functions instead of classes.

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

ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ถŒ์žฅํ•˜๋Š” ์ด์œ ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์‰ฝ๊ณ , ์„ฑ๋Šฅ๋ฉด์—์„œ ์œ ๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ถŒ์žฅํ•˜๋Š” ์ด์œ  โ€‹

  • ์ž‘์„ฑ์ด ๊ฐ„๋‹จํ•˜๊ณ , ์ฝ”๋“œ๊ฐ€ ์ง๊ด€์ ์ด๋‹ค.
  • React Hook์„ ํ™œ์šฉํ•˜์—ฌ ์ƒํƒœ ๊ด€๋ฆฌ์™€ ์ƒ๋ช…์ฃผ๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ์‰ฌ์›Œ์ง„๋‹ค.
  • ์ตœ์ ํ™”์™€ ์„ฑ๋Šฅ ๋ฉด์—์„œ ์œ ๋ฆฌํ•˜๋‹ค.