Skip to content

Latest commit

ย 

History

History
104 lines (82 loc) ยท 3.95 KB

feconf21-component.md

File metadata and controls

104 lines (82 loc) ยท 3.95 KB

์ปดํฌ๋„ŒํŠธ ๋‹ค์‹œ ์ƒ๊ฐํ•˜๊ธฐ

https://www.youtube.com/watch?v=HYgKBvLr49c

๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์˜ ์˜์กด์„ฑ ํŒŒ์•…ํ•˜๊ธฐ

  1. ์Šคํƒ€์ผ ( CSS )
  2. ์ปค์Šคํ…€ ๋กœ์ง ( UI ์กฐ์ž‘์— ํ•„์š”ํ•œ ์ปค์Šคํ…€ ๋กœ์ง, ์ปดํฌ๋„ŒํŠธ์— ํ•„์š”ํ•œ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ )
  3. ์ „์—ญ ์ƒํƒœ ( ์œ ์ € ์•ก์…˜์„ ํ†ตํ•ด ์ดˆ๋ž˜๋œ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ, ๋กœ๊ทธ์ธ ์ •๋ณด, URI ํ‘œํ˜„ ๋“ฑ๋“ฑ)
  4. ๋ฆฌ๋ชจํŠธ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ
    • API ์„œ๋ฒ„์—์„œ ๋‚ด๋ ค์ฃผ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ชจ์–‘

๋ฆฌ๋ชจํŠธ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ

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

์‹œ๋‚˜๋ฆฌ์˜ค

  • ์ปดํฌ๋„ŒํŠธ์— ์ •๋ณด ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ (๋ฆฌ๋ชจํŠธ ๋ฐ์ดํ„ฐ)
  • ์ปดํฌ๋„ŒํŠธ์˜ Props ์ˆ˜์ • (๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ)
  • ์ปดํฌ๋„ŒํŠธ์˜ ๋ Œ๋”๋ง ๋ถ€๋ถ„ ์ˆ˜์ • ( ์ˆจ์€ ์˜์กด์„ฑ )
  • ์˜ Props ์ˆ˜์ • (์ˆจ์€ ์˜์กด์„ฑ)
  • ์˜ useEffect ํ›… ์ˆ˜์ • (์ˆจ์€ ์˜์กด์„ฑ)
  • ์ƒˆ๋กœ์šด ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฃจํŠธ ์ปดํฌ๋„ŒํŠธ์™€ ์ค‘๊ฐ„์— ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ๋“ค์„ ํ•„์—ฐ์ ์œผ๋กœ ์ˆ˜์ •ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ์ฆ‰, ๋ฃจํŠธ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ชจํŠธ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ๊ฐ€ ๊ฐ€์ง„ ์ˆจ์€ ์˜์กด์„ฑ์ด ๋œ๋‹ค.

ํ•จ๊ป˜ ๋‘๊ธฐ

  • ๋น„์Šทํ•œ ๊ด€์‹ฌ์‚ฌ๋ผ๋ฉด ๊ฐ€๊นŒ์šด ๊ณณ์— ๋‘๊ธฐ.
    • ํŒŒ์ผ๋“ค์ด ์„œ๋กœ ๋ฉ€์–ด์ง€๊ฒŒ ๋˜๋ฉด ์ง‘์ค‘๋ ฅ์ด ๋ถ„์‚ฐ ๋œ๋‹ค.
    • ๊ฐ™์€ ํŒŒ์ผ / ๊ฐ€๊นŒ์šด ๊ณณ์— ๋‘์ž.
    • ์Šคํƒ€์ผ๊ณผ ๋กœ์ง์€ ํ•จ๊ป˜ ๋‘๊ธฐ๊ฐ€ ์‰ฝ๋‹ค. (์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—)
    • ๋ฆฌ๋ชจํŠธ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ๋ฅผ ํ•จ๊ป˜ ๋‘๊ธฐ ?
      • Props ๋ฅผ ํ†ตํ•ด ๋ฆฌ๋ชจํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ฒŒ ๋œ๋‹ค๋ฉด, ๋ฆฌ๋ชจํŠธ ๋ฐ์ดํ„ฐ๋Š” Root ์ปดํฌ๋„ŒํŠธ์™€ ๊ฐ•ํ•œ ์˜์กด์„ฑ์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค.
      • ์–ด๋–ป๊ฒŒ ๊ฐœ์„  ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ๋ฃจํŠธ ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” id ๋งŒ ๋‚ด๋ ค ๋ฐ›๊ณ , ํ•ด๋‹น id ๋กœ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์™€ ์†Œํ†ตํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ID ๊ธฐ๋ฐ˜์œผ๋กœ ์ •๋ฆฌํ•˜๊ธฐ
    • ๋ฐ์ดํ„ฐ ์ •๊ทœํ™” ( ๋…ธ๋ฉ€๋ผ์ด์ œ์ด์…˜ )
    • ์ •๊ทœํ™” ๋œ ๋ฐ์ดํ„ฐ๋กœ ํŠน์ • ๊ฐ์ฒด๋ฅผ ์ €์žฅ์†Œ๋กœ๋ถ€ํ„ฐ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
    • ๊ทธ๋Ÿฐ๋ฐ..์—ฌ๊ธฐ์—๋„ ์ˆจ์€ ์˜์กด์„ฑ์ด ์žˆ๋‹ค! ๋ฐ”๋กœ ๋ชจ๋ธ์„ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ •ํ™•ํžˆ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ
    • ์ด๋ฅผ ๋Š์Šจํ•˜๊ฒŒ ํ’€๊ธฐ -> ์ „์—ญ ID (Global ID)

์ด๋ฆ„ ์ง“๊ธฐ ( Props Naming)

  • ์˜์กดํ•œ๋‹ค๋ฉด ๊ทธ๋Œ€๋กœ ๋“œ๋Ÿฌ๋‚ด๊ธฐ.

before

interface Props {
    leftImageThumbnailUrl: string
    title: string
    title2: string
    caption: string
    rightDotColor: string
    leftDotColor: string

after

interface Props {
  userImageThumbnailUrl: string;
  userName: string;
  userNickname: string;
  userTotalFollowerCount: number;
  userLastActivityAt: Date;
}

// -> User ์™€ Image ๊ฐ„์˜ ์ •๋ณด ์—ฐ๊ฒฐํ•˜๊ธฐ

interface Props {
  user: {
    name: string;
    nickname: string;
    totalFollowerCount: number;
    lastActivityAt: Date;
    image: {
      thumbnailUrl: string;
    };
  };
}

์žฌ์‚ฌ์šฉํ•˜๊ธฐ

  • ์ปดํฌ๋„ŒํŠธ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?
    • ๋ณ€๊ฒฝํ•  ๋•Œ ํŽธ๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ.
  • ๋Œ€๋ถ€๋ถ„์€ ๋ฆฌ๋ชจํŠธ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ๊ฐ€ ๋ณ€ํ•˜๋Š” ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ์„œ ๋ณ€ํ™”ํ•œ๋‹ค.
  • ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฆฌ๋ชจํŠธ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ์˜ ๋ณ€ํ™”์— ์–ด๋–ป๊ฒŒ ๋Œ€์‘ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

๋ชจ๋ธ ๊ธฐ์ค€์œผ๋กœ ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌํ•˜๊ธฐ.

  • UI ๊ธฐ์ค€์ด ์•„๋‹ˆ๋ผ!
  • ๊ฐ์ž์˜ ์ปดํฌ๋„ŒํŠธ๋Š” ๊ฐ์ž์˜ ๋ฐฉํ–ฅ๋Œ€๋กœ ๋ณ€ํ™”ํ•  ๊ฒƒ์ด๋‹ค.
  • ์œ ์ €๋“ค์ด ์ƒ๊ฐํ•˜๋Š” ์ผ๊ด€์ ์ธ ๊ฒฝํ—˜ === ๋ชจ๋ธ ๊ธฐ๋ฐ˜
  • ๊ฐ™์€ ๋ชจ๋ธ์„ ์˜์กดํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋Š” ์žฌ์‚ฌ์šฉํ•˜๊ธฐ.
  • ๋‹ค๋ฅธ ๋ชจ๋ธ์„ ์˜์กดํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋Š” ๋ถ„๋ฆฌํ•˜๊ธฐ.