https://www.youtube.com/watch?v=HYgKBvLr49c
- ์คํ์ผ ( CSS )
- ์ปค์คํ ๋ก์ง ( UI ์กฐ์์ ํ์ํ ์ปค์คํ ๋ก์ง, ์ปดํฌ๋ํธ์ ํ์ํ ์ฌ์ด๋ ์ดํํธ )
- ์ ์ญ ์ํ ( ์ ์ ์ก์ ์ ํตํด ์ด๋๋ ํด๋ผ์ด์ธํธ์ ์ํ, ๋ก๊ทธ์ธ ์ ๋ณด, URI ํํ ๋ฑ๋ฑ)
- ๋ฆฌ๋ชจํธ ๋ฐ์ดํฐ ์คํค๋ง
- API ์๋ฒ์์ ๋ด๋ ค์ฃผ๋ ๋ฐ์ดํฐ์ ๋ชจ์
- ๋๋ค์์ ์ ํ์ ํ๋์ ํน์ ๋์์ ์ํฉ๋๋ค. ๋ก๋ฉ ์ธ๋์ผ์ดํฐ๋ฅผ ํ์ํ๋ฉฐ ํ์ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ ๋ค์, ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฉด ์ ์ฒด ๋ทฐ๋ฅผ ๋ ๋๋ง ํ๋ค.
- ์ผ์ดํฌ์ ๋ธ๊ธฐ๋ฅผ ์๋ก ์น์ด ๋ณผ๊น์ ?
- ์ผ์ดํฌ์ ๋ธ๊ธฐ๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ์ํฌ๋ฆผ๋ ํ์ํ๋ค.
- ๋ธ๊ธฐ ์ผ์ดํฌ๋ ์ํฌ๋ฆผ์ ์ถ๊ฐ์ ์ผ๋ก ์์กดํ๋ค.
- ๋ธ๊ธฐ ์ผ์ดํฌ์ ์จ์ ์์กด์ฑ : ์ํฌ๋ฆผ
- ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์ ์๋ก์ด ์ ๋ณด๋ฅผ ์ถ๊ฐ ํด๋ณผ๊น์?
- ์๋ก์ด ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด, ์๋ก์ด ์ ๋ณด ๋ฟ ์๋๋ผ ์จ์ ์์กด์ฑ๋ ํ์ํ๊ฒ ๋๋ค.
- ์ปดํฌ๋ํธ์ ์ ๋ณด ์๋ก ์ถ๊ฐํ๊ธฐ (๋ฆฌ๋ชจํธ ๋ฐ์ดํฐ)
- ์ปดํฌ๋ํธ์ Props ์์ (๋ฆฌ์กํธ ์ปดํฌ๋ํธ)
- ์ปดํฌ๋ํธ์ ๋ ๋๋ง ๋ถ๋ถ ์์ ( ์จ์ ์์กด์ฑ )
- ์ Props ์์ (์จ์ ์์กด์ฑ)
- ์ useEffect ํ ์์ (์จ์ ์์กด์ฑ)
- ์๋ก์ด ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด์๋ ํด๋น ์ปดํฌ๋ํธ ๋ฟ๋ง ์๋๋ผ ๋ฃจํธ ์ปดํฌ๋ํธ์ ์ค๊ฐ์ ์๋ ์ปดํฌ๋ํธ๋ค์ ํ์ฐ์ ์ผ๋ก ์์ ํ๊ฒ ๋๋ค.
- ์ฆ, ๋ฃจํธ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ชจํธ ๋ฐ์ดํฐ ์คํค๋ง๊ฐ ๊ฐ์ง ์จ์ ์์กด์ฑ์ด ๋๋ค.
- ๋น์ทํ ๊ด์ฌ์ฌ๋ผ๋ฉด ๊ฐ๊น์ด ๊ณณ์ ๋๊ธฐ.
- ํ์ผ๋ค์ด ์๋ก ๋ฉ์ด์ง๊ฒ ๋๋ฉด ์ง์ค๋ ฅ์ด ๋ถ์ฐ ๋๋ค.
- ๊ฐ์ ํ์ผ / ๊ฐ๊น์ด ๊ณณ์ ๋์.
- ์คํ์ผ๊ณผ ๋ก์ง์ ํจ๊ป ๋๊ธฐ๊ฐ ์ฝ๋ค. (์ปดํฌ๋ํธ ๋ด๋ถ์)
- ๋ฆฌ๋ชจํธ ๋ฐ์ดํฐ ์คํค๋ง๋ฅผ ํจ๊ป ๋๊ธฐ ?
- Props ๋ฅผ ํตํด ๋ฆฌ๋ชจํธ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฒ ๋๋ค๋ฉด, ๋ฆฌ๋ชจํธ ๋ฐ์ดํฐ๋ Root ์ปดํฌ๋ํธ์ ๊ฐํ ์์กด์ฑ์ ๊ฐ๊ฒ ๋๋ค.
- ์ด๋ป๊ฒ ๊ฐ์ ํ ์ ์์๊น? ๋ฃจํธ ์ปดํฌ๋ํธ์์๋ id ๋ง ๋ด๋ ค ๋ฐ๊ณ , ํด๋น id ๋ก ์ปดํฌ๋ํธ์์ ๋ฐ์ดํฐ ์ ์ฅ์์ ์ํตํ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ID ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ๊ธฐ
- ๋ฐ์ดํฐ ์ ๊ทํ ( ๋ ธ๋ฉ๋ผ์ด์ ์ด์ )
- ์ ๊ทํ ๋ ๋ฐ์ดํฐ๋ก ํน์ ๊ฐ์ฒด๋ฅผ ์ ์ฅ์๋ก๋ถํฐ ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์๋ค.
- ๊ทธ๋ฐ๋ฐ..์ฌ๊ธฐ์๋ ์จ์ ์์กด์ฑ์ด ์๋ค! ๋ฐ๋ก ๋ชจ๋ธ์ ์์ ์ปดํฌ๋ํธ์์ ์ ํํ ์๊ณ ์์ด์ผ ํ๋ค๋ ๊ฒ
- ์ด๋ฅผ ๋์จํ๊ฒ ํ๊ธฐ -> ์ ์ญ ID (Global ID)
- ์์กดํ๋ค๋ฉด ๊ทธ๋๋ก ๋๋ฌ๋ด๊ธฐ.
interface Props {
leftImageThumbnailUrl: string
title: string
title2: string
caption: string
rightDotColor: string
leftDotColor: string
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 ๊ธฐ์ค์ด ์๋๋ผ!
- ๊ฐ์์ ์ปดํฌ๋ํธ๋ ๊ฐ์์ ๋ฐฉํฅ๋๋ก ๋ณํํ ๊ฒ์ด๋ค.
- ์ ์ ๋ค์ด ์๊ฐํ๋ ์ผ๊ด์ ์ธ ๊ฒฝํ === ๋ชจ๋ธ ๊ธฐ๋ฐ
- ๊ฐ์ ๋ชจ๋ธ์ ์์กดํ๋ ์ปดํฌ๋ํธ๋ ์ฌ์ฌ์ฉํ๊ธฐ.
- ๋ค๋ฅธ ๋ชจ๋ธ์ ์์กดํ๋ ์ปดํฌ๋ํธ๋ ๋ถ๋ฆฌํ๊ธฐ.