์ค๋์ ์ฒ์์ผ๋ก TypeScript(ํ์ ์คํฌ๋ฆฝํธ)๋ฅผ ์ ํ๋ค.
๊ทธ๋์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก๋ง ์์ ํ๋ฉด์ “ํ์ ์ด ์์ด์ ํธํ๋ค”๋ ์๊ฐ๋ ์์์ง๋ง,
์ค์ ๋ก ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ๋ช ํํ ํํํ ์ ์๋ ๋๊ตฌ๊ฐ ํ์ํ๋ค๋ ๊ฑธ ์ค๋ ์ค์ต์ ํตํด ์ ๋๋ก ๋๊ผ๋ค.
๐ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ ์์ฝ
1. TypeScript ๊ฐ์์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
- TypeScript๋ JavaScript์ ์์ ์งํฉ(Superset)์ผ๋ก, ์ ์ ํ์ ์ ์ถ๊ฐํด ์ฝ๋์ ์์ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ฌ์ค๋ค.
- string, number, boolean ๊ฐ์ ๊ธฐ๋ณธ ํ์ ์ ์ธ ๋ฐฉ์๋ถํฐ, "north" | "south"์ฒ๋ผ ๋ฆฌํฐ๋ด ํ์ , interface๋ฅผ ํตํ ๊ฐ์ฒด ๊ตฌ์กฐ ์ ์, ํจ์ ๋งค๊ฐ๋ณ์ ๋ฐ ๋ฐํ๊ฐ์ ๋ช ํํ๊ฒ ํ์ ์ ์ง์ ํ๋ ๋ฐฉ์๊น์ง ์ค์ตํ๋ค.
2. React์์ TypeScript ์ฌ์ฉํ๊ธฐ
- --template typescript ์ต์ ์ผ๋ก React ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ , ์ปดํฌ๋ํธ์ props์ ํ์ ์ ์ง์ ํด ํ์ ์์ ์ฑ์ ํ๋ณดํ๋ ๋ฐฉ๋ฒ์ ์ตํ๋ค.
interface Props {
name: string;
age: number;
}
- React.FC<Props>์ ๊ตฌ์กฐ ๋ถํด ํ ๋น์ ํจ๊ป ์ฌ์ฉํ๋ฉด์ ๊ฐ๋ ์ฑ๊ณผ ์์ ์ฑ ๋ชจ๋๋ฅผ ์ฑ๊ธธ ์ ์๋ ์ฝ๋ ๊ตฌ์กฐ๋ฅผ ์ค์ตํด ๋ดค๋ค.
3. ๊ธฐ์กด ๋ด์ค ๋ทฐ์ด ํ๋ก์ ํธ๋ฅผ TypeScript๋ก ๋ณํ
- ์ด์ ๋ง๋ ๋ด์ค ๋ทฐ์ด ์ฑ์ ์ปดํฌ๋ํธ์ ํ์ ์ ์ ์ฉํ๋ฉด์, props, API ์๋ต ๋ฐ์ดํฐ, useState ๋ฑ์ ํ์ ์ ์ธ์ ์ง์ ์์ฑํด ๋ดค๋ค.
- ์ฒ์์ ์กฐ๊ธ ๋ณต์กํ๊ณ ์ฅํฉํด ๋ณด์์ง๋ง, ํ์ ์ด ๋ค์ด๊ฐ ๋๋ถ์ IDE์์์ ์๋์์ฑ๊ณผ ๊ฒฝ๊ณ ๋ฉ์์ง๋ค์ด ํ์คํ ๋ ๋๋ํด์ง ๋๋์ด์๋ค.
๐งก ๋๋ ์
์ค๋์ ์ฝ๋๊ฐ ๊ฐ์๊ธฐ ์๊ฒฉํด์ง ๋๋์ด๋ผ ์ด๋ฐ์ ์กฐ๊ธ ์ด์ํ๋ค.
ํ์ง๋ง ์๊ฐ์ด ์ง๋๋ฉด์ ์ ํ์ ์ด ์ค์ํ์ง, ๊ทธ๋ฆฌ๊ณ React์ ํจ๊ป ์ฌ์ฉํ ๋ ์ด๋ค ์๋์ง๋ฅผ ์ค ์ ์๋์ง๋ฅผ ์กฐ๊ธ์ฉ ์ฒด๊ฐํ๊ฒ ๋๋ค.
ํนํ ์ด์ ์ ๋ง๋ ๋ด์ค ๋ทฐ์ด๋ฅผ TypeScript๋ก ๋ฐ๊พธ๋ฉด์, ๋ด๊ฐ ๋ง๋ ์ฝ๋์ ์ง์ ํ์ ์ ๋ถ์ฌ๋ณด๊ณ , ๊ทธ์ ๋ฐ๋ผ ์ค๋ฅ๊ฐ ์ฌ์ ์ ์กํ๋ ๊ฒฝํ์ ํด๋ณด๋ ๊ท์ฐฎ์ง๋ง ์ ๋ง ์ ์ฉํ๊ฒ ๊ตฌ๋๋ผ๊ณ ์๊ฐ์ด ๋ค์๋ค.
React์์ ์ํ ๊ด๋ฆฌ, API ์ฐ๋, ์ปดํฌ๋ํธ ์ค๊ณ๊ฐ ๋ณต์กํด์ง์๋ก TypeScript๊ฐ ๋น์ ๋ฐํ๊ฒ ๋ ๊ฑฐ๋ผ๋ ์๊ฐ์ด ๋ ๋ค.
'โ๏ธ DevLog > Devcourse' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DevCourse] ์์ฑํ AI ํ์ฉ ๋ฐฑ์๋ ๋ฐ๋ธ์ฝ์ค 17์ผ์ฐจ (0) | 2025.04.27 |
---|---|
[DevCourse] ์์ฑํ AI ํ์ฉ ๋ฐฑ์๋ ๋ฐ๋ธ์ฝ์ค 16์ผ์ฐจ (0) | 2025.04.24 |
[DevCourse] ์์ฑํ AI ํ์ฉ ๋ฐฑ์๋ ๋ฐ๋ธ์ฝ์ค 14์ผ์ฐจ (0) | 2025.04.22 |
[DevCourse] ์์ฑํ AI ํ์ฉ ๋ฐฑ์๋ ๋ฐ๋ธ์ฝ์ค 13์ผ์ฐจ (0) | 2025.04.21 |
[DevCourse] ์์ฑํ AI ํ์ฉ ๋ฐฑ์๋ ๋ฐ๋ธ์ฝ์ค 11์ผ์ฐจ (0) | 2025.04.17 |