Project๐Ÿ› ๏ธโš™๏ธ

    [React/TypeScript] Input์˜ event.target.value์„ string์ด ์•„๋‹Œ ํŠน์ • ํƒ€์ž…์œผ๋กœ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์„๊นŒ?

    [React/TypeScript] Input์˜ event.target.value์„ string์ด ์•„๋‹Œ ํŠน์ • ํƒ€์ž…์œผ๋กœ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์„๊นŒ?

    ์•ˆ๋…•ํ•˜์„ธ์š”. ์บก์Šคํ†ค ํ”„๋กœ์ ํŠธ ์ค‘ ๊ฒฝํ—˜ํ•œ Trouble Shooting์„ ๊ณต์œ ํ•ด๋ณด๊ณ ์ž ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๋‹ค๋“ค ๊ตฌ๊ธ€ ํผ, ๋„ค์ด๋ฒ„ ํผ๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค๋ฅผ ๋งŽ์ด ์ด์šฉํ•ด๋ณด์…จ์„๊นŒ์š”?ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ์บก์Šคํ†ค ํ”„๋กœ์ ํŠธ์—์„œ ํ•™์ƒ๋“ค์—๊ฒŒ ํ–‰์‚ฌ ์ฐธ์—ฌ ์‹ ์ฒญ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•œ ํผ (์„ค๋ฌธ) ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด, ํผ ์ƒ์„ฑ ํŽ˜์ด์ง€๋ฅผ ์ง์ ‘ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”.ํผ ์ƒ์„ฑ ํŽ˜์ด์ง€์—์„œ๋Š” ๋งŽ์€ ์ด๋ฒคํŠธ๋“ค(์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ • ๋“ฑ)์ด ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ, ์ด์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ Input ์ปดํฌ๋„ŒํŠธ๋“ค์˜ ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์ค˜์•ผ ํ•ด์„œ ์‹ ๊ฒฝ ์“ธ ๋ถ€๋ถ„์ด ๋งŽ์€ ํŽ˜์ด์ง€๋ผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๊นŒ์ง€ ์ด์šฉํ•œ๋‹ค๋ฉด Type Guard๊นŒ์ง€ ์‹ ๊ฒฝ์จ์ค˜์•ผ ํ•˜๋Š”๋ฐ์š”๐Ÿฅฒ    ํผ ์ƒ์„ฑ ํŽ˜์ด์ง€์—์„œ๋Š” useState๋กœ ๊ด€๋ฆฌ๋˜๋Š” questionList๋ฅผ ๋งตํ•‘ํ•˜์—ฌ ์งˆ๋ฌธ ๋ฐ•์Šค ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋ Œ๋”๋งํ•ฉ..

    [Project/ReactTS] Chart.js๋กœ ์›ํ˜• ์ฐจํŠธ(Doughnut Chart) ๊ตฌํ˜„

    [Project/ReactTS] Chart.js๋กœ ์›ํ˜• ์ฐจํŠธ(Doughnut Chart) ๊ตฌํ˜„

    ์•„๋ž˜์™€ ๋™์ผํ•˜๊ฒŒ ์›ํ˜• ์ฐจํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•œ๋‹ค. Setting npm install chartjs npm install --save chart.js react-chartjs-2 chartjs ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•œ๋‹ค ๊ธฐ๋ณธ์ ์ธ DoughnutChart ์ปดํฌ๋„ŒํŠธ ์ž‘์„ฑ ์ผ๋‹จ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฐจํŠธ๋ฅผ ๊ทธ๋ ค๋ดค๋‹ค. ์ฐจํŠธ ์ปดํฌ๋„ŒํŠธ๋Š” 'data' props๋ฅผ ํ•„์ˆ˜์ ์œผ๋กœ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค. ์ฐจํŠธ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” string ๋ฐฐ์—ด 'labels'์™€ number ๋ฐฐ์—ด 'data'์ด๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ๋Š” ['๊ฐ€','๋‚˜','๋‹ค','๋ผ','๋งˆ'] ์™€ [1,2,3,4,5] ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์„ค์ •ํ•˜์˜€๋‹ค. DoughnutChart.tsx import { Chart as ChartJS, ArcElement, Tooltip} from 'chart.j..

    [Project/ReactTS] ์žฌ์‚ฌ์šฉ๋˜๋Š” ๊ฒŒ์‹œํŒ ๋ ˆ์ด์•„์›ƒ ๋‚ด ์ปจํ…์ธ ๋ฅผ ํŽ˜์ด์ง€๋ณ„๋กœ ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚ด๊ธฐโš’๏ธ

    [Project/ReactTS] ์žฌ์‚ฌ์šฉ๋˜๋Š” ๊ฒŒ์‹œํŒ ๋ ˆ์ด์•„์›ƒ ๋‚ด ์ปจํ…์ธ ๋ฅผ ํŽ˜์ด์ง€๋ณ„๋กœ ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚ด๊ธฐโš’๏ธ

    ๋ฆฌ๋‰ด์–ผ๋  ์ดํ•™์ƒํšŒ ์‚ฌ์ดํŠธ๋Š” ํšŒ์น™, ๊ณต์ง€, ์ฒญ์› ํŽ˜์ด์ง€ ๋“ฑ์˜ ๊ฒŒ์‹œํŒ ๊ธ€ ๋ชฉ๋ก์„ ๊ฐ™์€ ๋ ˆ์ด์•„์›ƒ์œผ๋กœ Infinite Scrollํ•˜์—ฌ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด ํŽ˜์ด์ง€๋“ค์€ ๋ ˆ์ด์•„์›ƒ์€ ๊ฐ™์•„๋„ ๋ชฉ๋ก์„ ๊ตฌ์„ฑํ•˜๋Š” ์ปจํ…์ธ ๊ฐ€ ๊ฐ๊ฐ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ• ์ง€ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.์˜ˆ์ „ ๊ฐ™์•˜์œผ๋ฉด ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋งˆ๋‹ค ๊ธฐ์กด ๋ ˆ์ด์•„์›ƒ์˜ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐํ•˜์—ฌ ๋ช‡๋ช‡ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•˜์˜€๊ฒ ์ง€๋งŒ, ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Atomic Pattern์„ ๋„์ž…ํ•˜๊ธฐ๋กœ ํ•˜์—ฌ ๊ฐœ์„ ํ•ด๋ณด๊ธฐ๋กœ ํ•˜์˜€๋‹ค!๋˜ํ•œ ์ด์ „ ์ดํ•™์ƒํšŒ ์‚ฌ์ดํŠธ์—์„œ๋Š” ํŽ˜์ด์ง€๋งˆ๋‹ค ์ค‘๋ณต๋˜๋Š” ํ•จ์ˆ˜๋“ค(axios(),useState()...)์ด ๋งŽ์•„ ์ˆ˜์ •์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉด ํŽ˜์ด์ง€๋ณ„๋งˆ๋‹ค ๋ชจ๋‘ ๋ฐ”๊ฟ”์•ผ ํ–ˆ๋˜ ๊ฒŒ ๋ถˆํŽธํ•ด์„œ ์ด ์ ์„ ๊ผญ ๊ณ ์น˜๊ณ  ์‹ถ์—ˆ๋‹ค.๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—๋Š” ๋งˆ์Œ ๋จน๊ณ  ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๊ธฐ์กด ๋ ˆ์ด์•„์›ƒ..