Project๐ ๏ธโ๏ธ
[React/TypeScript] Input์ event.target.value์ string์ด ์๋ ํน์ ํ์ ์ผ๋ก ๋ช ์ํ ์ ์์๊น?
์๋ ํ์ธ์. ์บก์คํค ํ๋ก์ ํธ ์ค ๊ฒฝํํ Trouble Shooting์ ๊ณต์ ํด๋ณด๊ณ ์ ๊ธ์ ์์ฑํ๊ฒ ๋์์ต๋๋ค! ๋ค๋ค ๊ตฌ๊ธ ํผ, ๋ค์ด๋ฒ ํผ๊ณผ ๊ฐ์ ์๋น์ค๋ฅผ ๋ง์ด ์ด์ฉํด๋ณด์ จ์๊น์?ํ์ฌ ์งํ ์ค์ธ ์บก์คํค ํ๋ก์ ํธ์์ ํ์๋ค์๊ฒ ํ์ฌ ์ฐธ์ฌ ์ ์ฒญ๋ฅผ ๋ฐ๊ธฐ ์ํ ํผ (์ค๋ฌธ) ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด, ํผ ์์ฑ ํ์ด์ง๋ฅผ ์ง์ ๋ง๋ค๊ฒ ๋์๋๋ฐ์.ํผ ์์ฑ ํ์ด์ง์์๋ ๋ง์ ์ด๋ฒคํธ๋ค(์ถ๊ฐ, ์ญ์ , ์์ ๋ฑ)์ด ์ด๋ฃจ์ด์ง๋ฏ๋ก, ์ด์ ๋ฐ๋ผ ์ฌ๋ฌ Input ์ปดํฌ๋ํธ๋ค์ ์ํ๋ฅผ ์ ๋ฐ์ดํธํด์ค์ผ ํด์ ์ ๊ฒฝ ์ธ ๋ถ๋ถ์ด ๋ง์ ํ์ด์ง๋ผ ๋ณผ ์ ์์ต๋๋ค. ํ์ ์คํฌ๋ฆฝํธ๊น์ง ์ด์ฉํ๋ค๋ฉด Type Guard๊น์ง ์ ๊ฒฝ์จ์ค์ผ ํ๋๋ฐ์๐ฅฒ ํผ ์์ฑ ํ์ด์ง์์๋ useState๋ก ๊ด๋ฆฌ๋๋ questionList๋ฅผ ๋งตํํ์ฌ ์ง๋ฌธ ๋ฐ์ค ์ปดํฌ๋ํธ๋ค์ ๋ ๋๋งํฉ..
[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] ์ฌ์ฌ์ฉ๋๋ ๊ฒ์ํ ๋ ์ด์์ ๋ด ์ปจํ ์ธ ๋ฅผ ํ์ด์ง๋ณ๋ก ๋ค๋ฅด๊ฒ ๋ํ๋ด๊ธฐโ๏ธ
๋ฆฌ๋ด์ผ๋ ์ดํ์ํ ์ฌ์ดํธ๋ ํ์น, ๊ณต์ง, ์ฒญ์ ํ์ด์ง ๋ฑ์ ๊ฒ์ํ ๊ธ ๋ชฉ๋ก์ ๊ฐ์ ๋ ์ด์์์ผ๋ก Infinite Scrollํ์ฌ ๋ํ๋ธ๋ค. ์ด ํ์ด์ง๋ค์ ๋ ์ด์์์ ๊ฐ์๋ ๋ชฉ๋ก์ ๊ตฌ์ฑํ๋ ์ปจํ ์ธ ๊ฐ ๊ฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๊ฒ ๋์๋ค.์์ ๊ฐ์์ผ๋ฉด ์๋ก์ด ํ์ด์ง๋ฅผ ์์ฑํ ๋๋ง๋ค ๊ธฐ์กด ๋ ์ด์์์ ์ฝ๋๋ฅผ ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐํ์ฌ ๋ช๋ช ๋ถ๋ถ์ ์์ ํ์๊ฒ ์ง๋ง, ์ด๋ฒ ํ๋ก์ ํธ์์๋ Atomic Pattern์ ๋์ ํ๊ธฐ๋ก ํ์ฌ ๊ฐ์ ํด๋ณด๊ธฐ๋ก ํ์๋ค!๋ํ ์ด์ ์ดํ์ํ ์ฌ์ดํธ์์๋ ํ์ด์ง๋ง๋ค ์ค๋ณต๋๋ ํจ์๋ค(axios(),useState()...)์ด ๋ง์ ์์ ์ฌํญ์ด ์์ผ๋ฉด ํ์ด์ง๋ณ๋ง๋ค ๋ชจ๋ ๋ฐ๊ฟ์ผ ํ๋ ๊ฒ ๋ถํธํด์ ์ด ์ ์ ๊ผญ ๊ณ ์น๊ณ ์ถ์๋ค.๊ทธ๋์ ์ด๋ฒ์๋ ๋ง์ ๋จน๊ณ ์๋ก์ด ํ์ด์ง๋ฅผ ์์ฑํ ๋ ๊ธฐ์กด ๋ ์ด์์..