๋ผ์ด๋ธ๋ฌ๋ฆฌ
-
- [Node.js] Nodemailer ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Nodemailer ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐNode.js ํ๊ฒฝ์์ ๋ฉ์ผ์ ๊ฐ๋จํ๊ฒ ๋ณด๋ผ ์ ์๋๋ก ๋์์ฃผ๋ Nodemailer ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. Nodemailer ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ๋ Node.js ํ๊ฒฝ์์ ์ด๋ฉ์ผ์ ์ฝ๊ฒ ๋ณด๋ผ ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ๋จํ ์ค์ ์ผ๋ก SMTP, OAuth2 ๋ฑ์ ํ์ฉํ ์ด๋ฉ์ผ ์ ์ก์ ํ ์ ์๋ค.ํ ์คํธ์ HTML ํ์์ ์ด๋ฉ์ผ, ์ฒจ๋ถ ํ์ผ ์ ์ก ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.๋ฌด๋ฃ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.์คํ ์์ค๋ก ๊ด๋ฆฌ๋๊ณ ์๋ค. ์ฃผ์ ํน์งSMTP, OAuth2, AWS SES, SendGrid ๋ฑ ๋ค์ํ ์ด๋ฉ์ผ ์๋น์ค ์ง์์ด๋ฉ์ผ ๋ณธ๋ฌธ์ ์ผ๋ฐ ํ ์คํธ ๋๋ HTML ํ์์ผ๋ก ์์ฑ ๊ฐ๋ฅ์ด๋ฏธ์ง, ๋ฌธ์ ๋ฑ ํ์ผ ์ฒจ๋ถ ๊ฐ๋ฅ๊ธฐ๋ณธ ์ธ์ฆ ์ธ์๋ OAuth2๋ฅผ ์ง์ํ์ฌ ๋ณด์์ฑ ๊ฐํ์ด๋ชจํฐ์ฝ์ด๋ ๋ค..
2024.11.26 -
- [JavaScript] EmailJS ๋ผ์ด๋ธ๋ฌ๋ฆฌ
EmailJS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐ๊ฐํธํ๊ฒ ํ์๊ฐ์ ์ผ๋ก ๋ฌด๋ฃ๋ก ์ 200๊ฑด๊น์ง ์ด๋ฉ์ผ์ ๋ณด๋ผ ์ ์๋๋ก ๋์์ฃผ๋ EmailJS ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. EmailJS๊ฐ๋ ์ฌ์ฉ์๊ฐ ์๋ฒ ์์ด ์๋ฐ์คํฌ๋ฆฝํธ๋ง์ผ๋ก ์ด๋ฉ์ผ์ ๋ณด๋ผ ์ ์๋๋ก ๋์์ฃผ๋ ์๋น์ค์ฌ์ฉ์๋ ๋ฐฑ์๋ ์ค์ ์์ด ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ์ด๋ฉ์ผ์ ์ ์กํ ์ ์๋ค.SMTP ์๋ฒ๋ฅผ ํ์ฉํ์ฌ ์ด๋ฉ์ผ์ ์ ์กํ๋ฉฐ, Gmail, Outlook ๋ฑ์ ์ด๋ฉ์ผ ์๋น์ค๋ฅผ ์ง์ํ๋ค. ์ฃผ์ ํน์งํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ์ง์ ์ด๋ฉ์ผ์ ์ ์กํ ์ ์์ด ๋ฐฑ์๋๊ฐ ํ์์๋ค.Gmail, Yahoo, Outlook ๋ฑ ์ฌ๋ฌ ์๋น์ค์ ํธํ๋๋ค.์ฌ์ฉ์ ์ ์ ํ ํ๋ฆฟ์ ๋ง๋ค์ด ๋์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์๋ค.์ ์ก ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ฉฐ API ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ์ ์ฒ๋ฆฌํ๋ค.๋ช ์ค์ ์ฝ๋๋ง์ผ๋ก..
2024.11.26 -
- [React.js] React Hook Form ๋ผ์ด๋ธ๋ฌ๋ฆฌ
React Hook Form ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js) ์ ํ๋ฆฌ์ผ์ด์ ์์ ํผ(Form)์ ์ํ ๊ด๋ฆฌ๋ฅผ ์ฝ๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ React Hook Form์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. React Hook Form๊ฐ๋ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํผ(Form)์ ์ํ๋ฅผ ๊ด๋ฆฌํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ๋จํ๊ณ ํจ์จ์ ์ด๋ฉฐ ํผํฌ๋จผ์ค๊ฐ ๋ฐ์ด๋๋ค.๋ฆฌ์กํธ์ ํ (Hook)์ ํ์ฉํ์ฌ ์ฌ์ฉํ๋ฉฐ, ํผ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ๊ณผ ์ ํจ์ฑ ๊ฒ์ฆ(Validation) ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. React Hook Form - performant, flexible and extensible form libraryPerformant, flexible and extensible forms with easy-to-use validation.react-..
2024.11.23 -
- [JavaScript] FusionCharts ๋ผ์ด๋ธ๋ฌ๋ฆฌ
FusionCharts ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์ FusionCharts ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. FusionCharts๊ฐ๋ ์น ๊ธฐ๋ฐ ๋์๋ณด๋์ ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ์ํ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript) ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ๋ฐ์์ ๊ธฐ์ ์ด ๋ค์ํ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ฐจํธ, ๊ทธ๋ํ, ๊ฒ์ด์ง(Gauge), ์ง๋ ๋ฑ์ผ๋ก ์๊ฐํ ํ ์ ์๋ค.๋ฌด๋ฃ ๋ฐ ์ ๋ฃ ํ๋์ด ์์ด ํ๋ก์ ํธ์ ํ์์ ๋ฐ๋ผ ์ ํ ๊ฐ๋ฅํ๋ค.๊ณต์ ํํ์ด์ง : JavaScript charts for web & mobile | FusionCharts ํน์ง์ ์ฐจํธ, ํ์ด ์ฐจํธ, ๊ฒ์ด์ง, ํํธ๋งต ๋ฑ 100๊ฐ ์ด์์ ์ฐจํธ ์ ํ ์ง์๋ณต์กํ ๋น์ฆ๋์ค ๋์๋ณด๋๋ ๋ณด๊ณ ์๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค.๋ชจ๋ ์ฐจํธ๋ ๋ฐ์ํ ๋์์ธ์ด ์ ์ฉ๋์ด ๋ชจ๋ฐ์ผ, ํ๋ธ๋ฆฟ, ..
1 2024.11.18 -
- [JavaScript] Moment.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Moment.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์์ ๋ ์ง์ ์๊ฐ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ง์ด ์ฌ์ฉ๋๋ Moment.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. moment.js๊ฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ ์ง์ ์๊ฐ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ง ๋ฐ ์๊ฐ ๊ณ์ฐ, ํ์ํ, ํ์ฑ, ์๊ฐ๋ ๋ณํ, ์๋์ ์ธ ์๊ฐ ํํ ๋ฑ์ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ค๋ค.์๋ฐ์คํฌ๋ฆฝํธ์ ๊ธฐ๋ณธ @Date@ ๊ฐ์ฒด์ ๋น๊ตํ์ฌ ํจ์ฌ ๋ ์ง๊ด์ ์ด๊ณ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.2020๋ ๋ถํฐ Moment.js๋ ์ ์ง๋ณด์ ์ ์ฉ ๋ชจ๋๋ก ์ ํ๋์๊ณ , ์๋ก์ด ํ๋ก์ ํธ์์๋ Day.js๋ Luxon, Date-fns๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์ ์ฌ์ฉํ๋๋ก ๊ถ์ฅ๋๊ณ ์๋ค. (ํ์ง๋ง ์ฌ์ ํ ๋ง์ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋๊ณ ์๋ค.)Day.jsMom..
2024.11.14 -
- [React.js] Recharts ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Recharts ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React) ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ์๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Recharts์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. Recharts๊ฐ๋ ๋ฆฌ์กํธ(React) ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ์๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ํ ์ฐจํธ๋ฅผ ์ฝ๊ฒ ์์ฑํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์๊ฐ์ ์ผ๋ก ํํํ ์ ์๋๋ก ๋์์ค๋ค.์ ์ธํ ๋ฐฉ์์ผ๋ก ๋ฆฌ์กํธ์ ์ ๋ง์ผ๋ฉฐ, ๊ทธ๋ํ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ํ์ํ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํด ์ง๊ด์ ์ผ๋ก ์ฐจํธ๋ฅผ ๊ตฌ์ฑํ ์ ์๋๋ก ๋์์ค๋ค. ํน์ง๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐจํธ๋ฅผ ๊ตฌ์ฑํ๋ฏ๋ก, ๋ฆฌ์กํธ์ ์ํ(State)์ ์์ฑ์ ํ์ฉํด ๋์ ์ผ๋ก ์ฐจํธ๋ฅผ ์ ๋ฐ์ดํธํ ์ ์๋ค.Recharts๋ ๋ด๋ถ์ ์ผ๋ก D3.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ์ฐจํธ๋ฅผ ๋ ๋๋งํ๋ค.D3.js์ ๊ฐ๋ ฅํ๊ณ ๋ค์ํ ๊ธฐ๋ฅ์ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ํํ๋ก ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.์ฐจํธ๋ฅผ ๊ตฌ์ฑํ๋ ์์..
1 2024.11.06 -
- [React.js] React Share ๋ผ์ด๋ธ๋ฌ๋ฆฌ
React Share ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐReact Share ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. React Share๊ฐ๋ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ค์ํ ์์ ๋ฏธ๋์ด ๊ณต์ ๋ฒํผ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์๋๋ก ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฌ๋ฌ ์์ ๋ฏธ๋์ด ํ๋ซํผ์ ๋งํฌ๋ฅผ ๊ณต์ ํ ์ ์๋ ๋ฒํผ์ ์ ๊ณตํ๋ฉฐ, ๊ฐ๋จํ ์ค์ ์ ํตํด ๋ฒํผ์ ์ปค์คํฐ๋ง์ด์งํ ์ ์๋ค. ์ฃผ์ ํน์ง๊ฐ๋จํ๊ฒ ์ค์นํ ์ ์๋ค.ํ์ํ ์์ ๋ฏธ๋์ด ๊ณต์ ๋ฒํผ์ ์ปดํฌ๋ํธ๋ก ๋ถ๋ฌ์ ์ฌ์ฉํ ์ ์๋ค.๋ฒํผ์ ํฌ๊ธฐ, ๋ชจ์, ์คํ์ผ์ ์ฝ๊ฒ ์ปค์คํฐ๋ง์ด์งํ ์ ์์ผ๋ฉฐ, SVG ์์ด์ฝ์ ์ฌ์ฉํ์ฌ ์คํ์ผ์ ์์ ๋กญ๊ฒ ๋ณ๊ฒฝํ ์ ์๋ค.๋ค์ํ ์์ ๋ฏธ๋์ด ํ๋ซํผ์ ์ง์ํ๋ค.Facebook, X(Twitter), LinkedIn, Pinterest, Telegram, WhatsApp, Line, R..
2024.11.01 -
- [JavaScript] Faker.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Faker.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐFaker.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. Faker.js๊ฐ๋ ๋ค์ํ ์ ํ์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ, ํ ์คํธ, ๋ฐ๋ชจ์ฉ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์์ฑํ ๋ ์ ์ฉํ๋ค.์ด๋ฆ, ์ฃผ์, ์ ํ๋ฒํธ, ์ด๋ฉ์ผ, ๋ ์ง, ์ด๋ฏธ์ง URL ๋ฑ์ ๋ฌด์์๋ก ์์ฑํ ์ ์๋ค.๊ด๋ฆฌ ๋ฌธ์ ๋ก 2021๋ ์ ๊ฐ๋ฐ์ด ์ค๋จ๋์๊ณ , ์ดํ ์ปค๋ฎค๋ํฐ์์ @๏ผ faker-js/faker@๋ผ๋ ์ด๋ฆ์ผ๋ก ํฌํฌ(Fork)ํ์ฌ ์ ์ง๋ณด์ํ๊ณ ์๋ค.๊ธฐ์กด์ @faker.js@๋ ๋ ์ด์ ์ ์ง๋ณด์๋์ง ์๋๋ค.์์ธํ ๋ด์ฉ์ ์ด ๊ธ์ ์ฐธ๊ณ ํ๋ค. ๋ฐ๋ผ์ ์ปค๋ฎค๋ํฐ์ ์ํด ๊ด๋ฆฌ๋๊ณ ์๋ @๏ผ faker-js/faker@๋ฅผ ์ฌ์ฉํ๋ค.Faker๋ก ์์ฑํ ๋ฐ์ดํฐ๋ ๋ฌด์์์ด๋ฉฐ ์ค์ ๋ฐ์ดํฐ๊ฐ ์๋๋ฏ..
2024.10.30 -
- [TypeScript] Zod ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Zod ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐํ์ ์คํฌ๋ฆฝํธ(TypeScript)์์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ฝ๊ฒ ํด์ฃผ๋ Zod ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. Zod ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ๋ ํ์ ์คํฌ๋ฆฝํธ(TypeScript)์์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ฝ๊ฒ ํด์ฃผ๋ ์คํค๋ง ์ ์ธ ๋ฐ ๋ฐ์ดํฐ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌํ์ ์์ ์ฑ์ ์ ์งํ๋ฉด์ ๋ฐ์ดํฐ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ ์ ์๋๋ก ์ค๊ณ๋์ด ์๋ค.๋ฐ์ดํฐ ๊ฒ์ฆ์ ๋์ฑ ๋ช ํํ๊ณ ์ง๊ด์ ์ผ๋ก ์ํํ ์ ์๋๋ก ๋์์ค๋ค. ์ค์น$ npm install zod # yarn add zod ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋จํ ๋ฌธ์์ด(String) ์คํค๋ง๋ฅผ ๋ง๋ค ์ ์๋ค.import { z } from "zod";// creating a schema for stringsconst mySchema = z.string();// parsingmySchem..
2024.10.11 -
- [Tailwind CSS] daisyUI
daisyUI๋ค์ด๊ฐ๋ฉฐํ ์ผ์๋ CSS์ ํ์ฅ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ dasiyUI์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. daisyUI๊ฐ๋ ํ ์ผ์๋ CSS๋ฅผ ํ์ฅํ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ํ ๊ธฐ๋ณธ ์คํ์ผ์ ์ ๊ณตํ์ฌ ๋น ๋ฅด๊ฒ UI๋ฅผ ๊ตฌ์ฑํ ์ ์๋๋ก ๋์์ค๋ค.ํ ์ผ์๋ CSS์ ์ ํธ๋ฆฌํฐ ํด๋์ค์ ํจ๊ป ์ฌ์ฉ๋๋ค.๋ฒํผ, ์นด๋, ๋ชจ๋ฌ, ์๋ฆผ, ํผ ์์ ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ์ปดํฌ๋ํธ ์คํ์ผ์ ๋ฏธ๋ฆฌ ์ ์ํด ๋ ์ํ๋ก ์ ๊ณตํ๋ค.daisyUI๋ฅผ ์ด์ฉํ๋ฉด UI๋ฅผ ์ฝ๊ฒ ์ปค์คํฐ๋ง์ด์งํ๊ณ , ์ผ๊ด์ฑ ์๋ ๋์์ธ์ ์ ์งํ๋ฉด์ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์๋ค. ํน์งํ ์ผ์๋ CSS์ ์๋ฒฝํ๊ฒ ํธํ๋๋ฉฐ, ์ถ๊ฐ์ ์ธ ์คํ์ผ๋ง ์์ด ์ ํธ๋ฆฌํฐ ํด๋์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค.์ผ๊ด๋ ๋์์ธ ์์คํ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์, ํ๋ก์ ํธ ์ ๋ฐ์ ๊ฑธ์ณ ์ผ๊ด๋ UI๋ฅผ ์ ์งํ ์ ์๋ค.๋ฒํผ, ์๋ฆผ, ๋ชจ๋ฌ, ์นด๋ ๋ฑ..
1 2024.09.29 -
- [React.js] react-toastify ๋ผ์ด๋ธ๋ฌ๋ฆฌ
react-toastify ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐ๊ฐ๋จํ๊ฒ ํ ์คํธ(Toast) ๋ฉ์์ง๋ฅผ ๋์์ผํ ๋ @react-toastify@ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.@react-toastify@ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฌ์ฉ๋ฒ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณธ๋ค. react-toastify ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ๋ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์์๊ฒ ์๋ฆผ์ ์ ๊ณตํ๋ ํ ์คํธ ๋ฉ์์ง(Notification)๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ์คํ์ผ๊ณผ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ก ๊ฐ๋จํ๊ฒ ์๋ฆผ์ ๋์ธ ์ ์๋ค.๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ์ด ๊ฐํธํ๋ฉฐ, ๋ค์ํ ์ฌ์ฉ์ ์ ์ ์ต์ ์ ์ ๊ณตํ์ฌ ์๋ฆผ์ ์ํ๋ ๋๋ก ์ปค์คํฐ๋ง์ด์งํ ์ ์๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น$ npm install react-toastify # yarn add react-toastify ์ฌ..
2024.09.10 -
- [React.js] uuid, nanoid ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํ๊ธฐ (key)
uuid, nanoid ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํ๊ธฐ (key)๋ค์ด๊ฐ๋ฉฐ๋ค์๊ณผ ๊ฐ์ด @map@์ ์ด์ฉํ์ฌ ์์๋ฅผ ํ๋ํ๋์ฉ ํํํ ๊ฒฝ์ฐ @key@ ๊ฐ์ ์ง์ ํด์ผ ํ๋๋ฐ ์ด๋ค๊ฐ์ @key@ ๊ฐ์ผ๋ก ์ง์ ํด์ผํ ์ง ๋ชจ๋ฅผ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.์ด๋, @uuid@ ๋๋ @nanoid@ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ๋ฉด ์ด ๊ณ ๋ฏผ์ ํด๊ฒฐํ ์ ์๋ค.import { data } from './data.js';export default const App = () => { return ( {data.map((item) => {item.content}} )} uuid ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ๋ @uuid@๋ Universally Unique Identifier ์ ์ฝ์๋ก, ์ ์ธ๊ณ์์ ๊ณ ์ ํ ๊ฐ์ ์์ฑํ ์ ์๋ ์๋ณ์์ด๋ค.@u..
2024.09.09 -
- [Python] ์ฌ์ดํท๋ฐ(Scikit-Learn) ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์นํ๊ธฐ (ModuleNotFoundError: No module named 'sklearn' ํด๊ฒฐ๋ฒ)
์ฌ์ดํท๋ฐ(Scikit-Learn) ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์นํ๊ธฐ ๋ค์ด๊ฐ๋ฉฐ ์ฌ์ดํท๋ฐ(Scikit-Learn) ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ๋ฐฉ๋ฒ > pip install sklearn > pip install scikit-learn ModuleNotFoundError: No module named 'sklearn' ์ด์ ํด๊ฒฐํ๊ธฐ ์ฌ์ดํท๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ค์น๋์ง ์์์ ๋ฐ์ํ๋ ์๋ฌ์ด๋ค. ํ์ง๋ง, ์๋์ฝ๋ค ๊ฐ์ ํ๊ฒฝ์์ ์ฌ์ดํท๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด๋ ๋จ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋๋ @-u@(@--upgrade@) ์ต์ ์ ๋ฃ์ด์ฃผ๊ณ ๋ค์ ์ค์นํด์ฃผ๋ฉด ๋๋ค. > pip install -U scikit-learn > pip3 install -U scikit-learn ์ฐธ๊ณ ์ฌ์ดํธ Installing scikit-learn T..
2023.07.18