๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ๏ธ DevLog/Devcourse

[DevCourse] ์ƒ์„ฑํ˜• AI ํ™œ์šฉ ๋ฐฑ์—”๋“œ ๋ฐ๋ธŒ์ฝ”์Šค 15์ผ์ฐจ

by hyebin (Helia) 2025. 4. 23.
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜์€ ์ฒ˜์Œ์œผ๋กœ 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๊ฐ€ ๋น›์„ ๋ฐœํ•˜๊ฒŒ ๋  ๊ฑฐ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.

๋ฐ˜์‘ํ˜•