ํ”„๋กœ์ ํŠธ ํŒ€์› ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“œ๋Š” ๋ฒ• ๋ฐฐ์šฐ๊ธฐ(typescript + clsx)
ยท
Frontend/React
0. ์ด๋ฒˆ ์ฃผ๋Š” ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค.ํ˜„์žฌ ํ”„๋ก ํŠธ 2๋ช…, ๋ฐฑ์—”๋“œ 1๋ช…, AI 1๋ช…์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœ์ ํŠธ์— ์ฐธ๊ฐ€ ์ค‘์ด๋‹ค. ๋‚˜๋ž‘ ๊ฐ™์ด ์›น ํ”„๋ก ํŠธ์—”๋“œ๋กœ ์ฐธ๊ฐ€ํ•˜๋Š” ์นœ๊ตฌ๋Š” ๊ต๋‚ด ๊ฐœ๋ฐœ๋™์•„๋ฆฌ์™€ ์—ฐํ•ฉ ๊ฐœ๋ฐœ๋™์•„๋ฆฌ์—์„œ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉฐ ๊ฒฝํ—˜์น˜๋ฅผ ๋งŽ์ด ์Œ“์•„์„œ ๊ฐœ๋ฐœ์— ๋Šฅํ†ตํ•˜๋‹ค. ์ด ์นœ๊ตฌ์™€ ์ด๋ฒˆ ์ฃผ์—๋Š” ํ”„๋กœ์ ํŠธ์˜ ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ์ž‘ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์นœ๊ตฌ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๊นŒ? ์นœ๊ตฌ์˜ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.1. ํด๋”(ํŒŒ์ผ) ๊ตฌ์กฐ๋ถ€ํ„ฐ ํ™•์ธํ•˜์žsrc ์•ˆ์— components ํด๋”๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋˜‘๊ฐ™์€๋ฐ, common components๋“ค์„ ์ €์žฅํ•  common ํด๋”๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค๊ณ , ๋„๋ฉ”์ธ๋ณ„๋กœ ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ปดํฌ๋„ŒํŠธ ํŒŒ์ผ๋“ค์„ ๋ถ„๋ฆฌํ•œ๋‹ค.input ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์นœ๊ตฌ๋Š” components/common ์•ˆ์—..
[KUIT] 6์ฃผ์ฐจ ์‹ค์Šต ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
ยท
KUIT
์ด ๊ธ€์€ KUIT Web ๋ถ€์›๋ถ„๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ์“ด ๊ธ€์ž…๋‹ˆ๋‹ค.6์ฃผ์ฐจ ์˜์ƒ์„ ์˜ฌ๋ฆฌ๊ณ  ๋‚˜์„œ, OOO ํŒŒํŠธ์žฅ๋‹˜์ด ์ œ๊ฐ€ ์˜ฌ๋ฆฐ ์ฝ”๋“œ๋“ค์„ ๋ฆฌํŒฉํ† ๋งํ•ด์ฃผ์…จ์Šต๋‹ˆ๋‹ค XD๊ทธ๋ฆฌ๊ณ  ํŒŒํŠธ์žฅ๋‹˜์ด ์–ด๋–ค ๋ถ€๋ถ„์ด ๋ฆฌํŒฉํ† ๋งํ•ด์ฃผ์…จ๋Š”์ง€ ์ „๋ถ€ ๋น„๊ต ๋ถ„์„ํ•ด์„œ ์•Œ๋ ค์ฃผ์…จ์Šต๋‹ˆ๋‹ค!! ๊ทธ๋Ÿฌ๋ฉด ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐ”๋€Œ์—ˆ๋Š”์ง€, ์ „ํ›„ ์ฝ”๋“œ๋“ค์„ ๋น„๊ตํ•ด๋ณด๋ฉด์„œ ๊ฐ™์ด ์‚ดํŽด๋ณผ๊นŒ์š”? 1. InputBar ์ปดํฌ๋„ŒํŠธ์— product props๋ฅผ ๋‚ด๋ ค์ฃผ๋Š” ์ด์œ ?๋น„์–ด์žˆ๋Š” product ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ’์„ ์ฑ„์›Œ์ฃผ๋ ค๊ณ  ๋งŒ๋“  ๊ฒƒ ๊ฐ™์€๋ฐ, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ™•์žฅ์— ์œ ์—ฐํ•˜์ง€ ๋ชปํ•˜๋‹ค.๊ตฌํ˜„์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค(๊ฐ์ฒด์ง€ํ–ฅ ๊ธฐ๋ณธ ์›์น™) ๊ทธ๋ฆฌ๊ณ  ์ด ๊ตฌํ˜„์ฒด๋ฅผ FilterableProductTable์—์„œ ์ƒ์„ฑํ•ด์„œ ๋‚ด๋ ค์ค„ ์ด์œ ๊ฐ€ ์—†์–ด๋ณด์ธ๋‹ค. ์‘์ง‘๋„ ์ธก๋ฉด์—์„œ In..
[KUIT] 4์ฃผ์ฐจ ์›Œํฌ๋ถ ๋ณด์ถฉ(TypeScript)
ยท
KUIT
์ด ๊ธ€์€ KUIT Web ๋ถ€์›๋ถ„๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ์“ด ๊ธ€์ž…๋‹ˆ๋‹ค.DefinitelyTypedDefinitelyTyped ํ”„๋กœ์ ํŠธ๋Š” ์ผ์ข…์˜ ์ž์›๋ด‰์‚ฌ ํ”„๋กœ์ ํŠธ→ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž๋ฐœ์ ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ์˜ ํƒ€์ž…์„ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ  ์žˆ๋‹ค.→ ์ด๋ ‡๊ฒŒ ์ถ”๊ฐ€๋œ ํƒ€์ž…์€ npm ์„ ํ†ตํ•ด ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.→ IDE ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ํƒ€์ž… ์ง€์›์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. ์ถœ์ฒ˜: https://jake-seo-dev.tistory.com/209@types ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ@types ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” TypeScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ•„์š”ํ•œ ํƒ€์ž… ์ •์˜๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ→ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ API์— ๋Œ€ํ•œ ํƒ€์ž… ์ •๋ณด๋ฅผ TypeScript์— ์ œ๊ณตํ•˜์—ฌ, TypeScript ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํƒ€์ž… ๊ฒ€์‚ฌ๋ฅผ ..
[PROlog] ์ธํŠธ๋กœ ํŽ˜์ด์ง€ ๋ณ€๊ฒฝ + Quill editor ๋„์ž…
ยท
Project/PROlog
1. ์ธํŠธ๋กœ ์ˆ˜์ • ์ €๋ฒˆ์—๋„ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์นด์นด์˜ค๋กœ ์†Œ์…œ๋กœ๊ทธ์ธ์„ ํ•˜๋Š” ๋Œ€์‹  ์ด๋ฉ”์ผ๋กœ ๋กœ๊ทธ์ธ๊ณผ ๊ตฌ๊ธ€๋กœ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ํ•ด์„œ ์ธํŠธ๋กœ ํ™”๋ฉด์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ–ˆ๋‹ค. ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ๋นผ๊ณ  ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ๋ž€, ํšŒ์›๊ฐ€์ž…(์ด๋ฉ”์ผ) ๋ฒ„ํŠผ, ๊ตฌ๊ธ€๋กœ ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ์ƒˆ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด๋ฉ”์ผ๋กœ ํšŒ์›๊ฐ€์ž…๋„ ์ง„ํ–‰ํ•ด์•ผ ๋˜๋‹ˆ ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด๋„ ์ƒˆ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ์€ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฝ”๋“œ๋ฅผ ๋ณต๋ถ™ํ•ด์„œ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ์— input์„ ์ž…๋ ฅํ•˜๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ์—์„œ๋„ ๋˜‘๊ฐ™์€ input์ด ์ž…๋ ฅ๋˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒผ๋‹ค. ์•„๋ฌด๋ž˜๋„ ์ˆ˜์ •์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค. 2. Quill ์—๋””ํ„ฐ ๋„์ž… ์ „์—๋Š” ๊ธ€ ์ž‘์„ฑ์„ ๊ทธ๋ƒฅ textarea๋กœ ๊ตฌํ˜„ํ–ˆ์—ˆ๋Š”๋ฐ, ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๊ฒŒ์‹œ๋ฌผ์—๋Š” ์‚ฌ์ง„๋„ ์ฒจ๋ถ€๋˜๋Š” ๊ฒƒ์ด ๋งž๋Š” ๊ฒƒ ๊ฐ™์•„ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข‹์„๊นŒ ์ƒ๊ฐํ•˜๋‹ค๊ฐ€ ์—๋””ํ„ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋„์ž…ํ•˜..
[React, TS] ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์ƒํƒœ ๊ด€๋ฆฌ์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋œ ๊ฒƒ๋“ค
ยท
Frontend/React
์ด๋ฒˆ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ useState()๋ฅผ ํ™œ์šฉํ•œ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ƒํƒœ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ํ™•์‹คํ•œ ์ดํ•ด ์—†์ด ๋ฌด์ž‘์ • ์ž‘์—…์„ ํ•˜๋‹ค๋ณด๋‹ˆ ์ฝ”๋“œ๊ฐ€ ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๊ธฐ๋„ ์–ด๋ ค์šธ ์ •๋„๋กœ ๋ณต์žกํ•ด์ ธ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ƒํƒœ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ๋‹ค์‹œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค. ์ด๋ฒˆ์— ์•Œ๊ฒŒ ๋œ ๋‚ด์šฉ์„ ํ•œ ๋ฒˆ ์ •๋ฆฌํ•ด ๋ณด๋ ค ํ•œ๋‹ค. 1. ์ƒํƒœ ๊ด€๋ฆฌ๋Š” ๋ถ€๋ชจ์—์„œ ์ด๋ฃจ์–ด์ง€๊ณ , ์ž์‹์—๊ฒŒ props๋กœ ์ „๋‹ฌํ•œ๋‹ค. ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ A์™€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ B,C๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ๊ทธ๋ ‡๋‹ค๋ฉด ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋กœ์ง์€ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ A์— ์ž‘์„ฑํ•˜๊ณ  ์ด๋ฅผ ์ž์‹ํ•œํ…Œ props๋กœ ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค. ๋งŒ์•ฝ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ƒํƒœ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋Š” ๊ฒƒ์„ ๋ถ€๋ชจํ•œํ…Œ ์ „๋‹ฌํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. (์—ฌ๊ธฐ์„œ ๋ถ€๋ชจ๋Š” SearchResult.tsx์ด๊ณ , ์ž์‹์€ BtmShee..
[Typescript] ๊ฐ•์˜ ๋“ฃ๊ณ  Typescript ๊ฐœ๋… ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌ
ยท
Frontend/Typescript
์ด์ œ ๊ณง ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š”๋ฐ Typescript๋ฅผ ํ™œ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋…ธ๋งˆ๋“œ์ฝ”๋”๋‹˜์˜ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋ฌด๋ฃŒ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๊ฐœ๋…์„ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. ๊ฐ•์˜ ๋งํฌ https://nomadcoders.co/typescript-for-beginners ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋ธ”๋ก์ฒด์ธ ๋งŒ๋“ค๊ธฐ – ๋…ธ๋งˆ๋“œ ์ฝ”๋” Nomad Coders Typescript for Beginners nomadcoders.co (ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž…๋ฌธํ•˜๋Š” ๋ถ„๋“ค์—๊ฒŒ ์ถ”์ฒœํ•œ๋‹ค!) Typescript ํŠน์ง• TypeScript๋Š” JavaScript์— ์ถ”๊ฐ€์ ์ธ ๊ตฌ๋ฌธ์„ ํ†ตํ•ด ๋‹จ๋‹จํ•œ ํ†ตํ•ฉ์„ ์ œ๊ณตํ•˜๋ฉฐ ์ดˆ๊ธฐ ์˜ค๋ฅ˜๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. TypeScript ์ฝ”๋“œ๋Š” JavaScript๋กœ ๋ณ€ํ™˜๋˜์–ด ๋ธŒ๋ผ์šฐ์ €, Node.js, ์•ฑ ๋“ฑ์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค. JavaScript๋ฅผ ์ดํ•ดํ•˜๋ฉฐ..