Front-end/Tools(22)
-
Prisma ORM์ ์ฌ์ฉํด๋ณด์
๋ชฉ์ฐจ1. ํ๋ก์ ํธ ์ธํ 2. ์ค์ต ์คํฌ๋ฆฝํธ ์์ฑ1. ํ๋ก์ ํธ ์ธํ 1. ํ์ ์คํฌ๋ฆฝํธ์ ํ๋ฆฌ์ฆ๋ง ์ค์น ๋ฐ ์ด๊ธฐํ์ฐ์ ํ์ ์คํฌ๋ฆฝํธ์ ํ๋ฆฌ์ฆ๋ง๋ฅผ ์ค์นํด์ค ๊ฑฐ๋ค.npm install typescript ts-node @types/node --save-dev # ts ์ค์นnpx tsc --init # ts ์ด๊ธฐํnpm install prisma --save-dev # prisma ์ค์นnpx prisma init --datasource-provider sqlite # prisma ์ด๊ธฐํ (sqlite ๊ธฐ๋ฐ) ํ๋ฆฌ์ฆ๋ง ๋ฒ์ ๋ ํ์ธํ ์ ์๋ค. prisma๋ฅผ ์ด๊ธฐํ ํ๋ฉด prisma/, prisma.config.ts, env ํ์ผ์ด ์๊ธด๋ค. ์ด ๋ prisma.config.ts ํ์ผ๋ ์์ฑ๋ ๊ฑธ ํ์ธํ ์ ์๋๋ฐ, ..
2025.10.27 -
Prisma ORM์ ๋ญ๊น
๋ชฉ์ฐจ1. ORM์ด๋?2. Prisma๋?3. Prisma์ ์๋ ํ๋ฆ1. ORM์ด๋?ORM(Object-Relational Mapping)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ์ฝ๋์ ๊ฐ์ฒด๋ก ๋ฐ๊ฟ์ ๋ค๋ฃจ๋ ๊ธฐ์ ์ด๋ค.SQL๋ฌธ์ด ( SELECT * FROM users WHERE age > 20 ) ์ด๋ผ๋ฉด,JS ์ฝ๋๋ก ์๋์ ๊ฐ์ด ์์ฑํ ์ ์๋ค.const users = await prisma.user.findMany({ where: { age: { gt: 20 } },}); ์ด๋ฌ๋ฉด Prisma๊ฐ SQL์ ๋ง๋ค์ด์ DB์์ ๊ฐ์ ธ์จ๋ค.2. Prisma๋?Prisma๋ Node.js, TypeScript ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ORM ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.๋ค์ ์ธ ๊ฐ์ง ์ญํ ์ ์ํํ๋ค.๊ตฌ์ฑ ์์์ญํ Prisma ClientDB์ ์ฟผ๋ฆฌ๋ฅผ ..
2025.10.27 -
[WIP]Chromatic์ผ๋ก ์คํ ๋ฆฌ๋ถ ๋ฐฐํฌ, CI/CD ์ค์ ํ๊ธฐ
1. Chromatic์์ ๋ ํฌ ์ ํ ๋ ์ดํผ ํ๋ก์ ํธ ์ถ๊ฐํ๊ณ ๋ ํฌ๋ ์ ํํ๋๋ฐ ACCOUNTS์ ์๋จ๋ฉด Check your permissions์์ ์ถ๊ฐํ๋ฉด ๋๋ค. ์คํ ๋ฆฌ๋ถ ์ ํํ๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ๊ทธ๋๋ก CLI์ ์ ๋ ฅํ๋ค. ์ด์ผํ๋์ค.. That's very nice! ๋ฐฐํฌ๋ ์คํ ๋ฆฌ๋ถ chromatic ํ ํ๋ฉด์์ ํ๋ก์ ํธ์ ํ๋ ๋ด์ญ ๋ฑ์ ํ์ธํ ์ ์๋ค. ์ฌ๊ธฐ๊น์ง๋ง ํ๋ฉด ์คํ ๋ฆฌ๋ฅผ ํ๋ ์ถ๊ฐํ ๋๋ง๋ค ๋ค์ ๋น๋ํ๊ณ ๋ฐฐํฌํด์ค์ผํ๋๋ฐ,์ฌ๋์ด ์คํ ๋ฆฌ๋ง ์ถ๊ฐํ๋ฉด ์๋์ผ๋ก ๋น๋, ๋ฐฐํฌ๋ฅผ ํด์ฃผ๋๋ก ์๋ํ๋ฅผ ํด๋ณด์.https://www.chromatic.com/docs/github-actions/#available-options Why Chromatic? • Chromatic docsChromat..
2025.10.27 -
tailwind ์ค์น์ v4 ๋ณ๊ฒฝ์ฌํญ
[ ๋ํ ์ด๋ฏธ์ง ]๋ชฉ์ฐจ1. Vite React์ tailwindcss ์ค์นํ๊ธฐ2. ์ธํ ํ๊ธฐ 1. Vite React์ tailwindcss ์ค์นํ๊ธฐ1. ๊ฐ์tailiwind v4๋ ์์ด๋ ๊ฒ ์๋๋ ๊ฑธ๊นNext.js๋ก ๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋๋ tailwindcss๋ฅผ ์ ํํ๊ธฐ๋ง ํ๋ฉด ์๋์ผ๋ก ๊ฐ์ด ์ค์นํด์คฌ๋๋ฐ,Vite๋ก ๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ tailwindcss๋ฅผ ๋ด๊ฐ ์ง์ ์ค์นํด์ฃผ์ด์ผ ํ๋ค. ์ด๊ฒ ์๊ฐ๋ณด๋ค ๋ถ๋๋ฝ๊ฒ ์ํ๋ ธ์ด์ ๊ธฐ๋กํด๋ณธ๋ค.๋ญ๋ง ํ๋ฉด ๋ค v4 ๋ฒ์ ์ดํ๋ก๋ ์๋๋ค๊ณ ํ๊ณ , ๊ตฌ๊ธ๋งํ๋ฉด ๋ค ์ด์ ๋ฒ์ ๋ฐ์ ์๋ค. 2. ๋ฐฐ๊ฒฝpnpm ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉVite๋ก React ํ๋ก์ ํธ ์์ฑ ํ, tailwindcss ์ค์น 3. pnpm์ผ๋ก tailwind ์ค์นํ๊ธฐ1. tailwind ์ค์น์๋์ ๊ฐ..
2025.09.25 -
ESLint : FlatCompat๊ณผ FlatConfig
๋ชฉ์ฐจ1. ESLint์ Flat-blahblah2. FlatConfig3. FlatCompat1. ESLint์ Flat-blahblahํ์ ์ ํ๋ ์ค prettier๋ฅผ .prettierrc๋ก ์์ฑํด์ ESLint๋ ๋๊ฐ์ด .eslintrc๋ก ์์ฑํ๋ค๊ฐ ์ ์ ์๋ ์ค๋ฅ๋ค์ ๋ง์ฃผํ๊ณ ,์ด์ ๋ eslint.config.js๋ก ํ์ผ์ ์์ฑํด์ผํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค.๊ทธ๋ฆฌ๊ณ eslint.config.js์์๋ FlatCompat์ด๋ผ๋ ๊ฒ์ ์ฌ์ฉํ๋ค. Flat Config System์ ESLint 9 ์ด์์์ ๋์ ๋ ๊ฐ๋ ์ด๋ค.๊ณต์ ํ์ด์ง๋ฅผ ํ์ธํด๋ณด๋, ์ ํํ๋ 8๋ถํฐ ์ฌ์ฌ ์ค๋นํ๋ค๊ฐ 9์์ ์ ๋ค๋ฌ์ด์ ๋ธ ๊ฒ ๊ฐ๋ค.https://eslint.org/blog/2023/11/whats-coming-in-eslint-9..
2025.08.08 -
Prettier ์ธํ ํ๊ธฐ
๋ชฉ์ฐจ1. Prettier๋?2. Prettier ์ธํ ํ๊ธฐ3. ๋ฌธ์ ์๊ฒผ๋ ๊ฑฐ : bracketSpacing1. Prettier๋?์ฝ๋์ ์คํ์ผ์ ์ผ๊ด๋๊ฒ ์ ์งํ ์ ์๋๋ก ์์ ํด์ฃผ๋ ์ฝ๋ ์คํ์ผ๋ง ๋๊ตฌ์ด๋ค. 2. Prettier ์ธํ ํ๊ธฐPrettier ์ธํ ๋จ๊ณ๋ฅผ ๋๋ ๋ณด์.ํ์ํ ํจํค์ง ์ค์นํ๊ธฐํ์ํ ๋ฌธ์ ์์ฑ/์์ ํ๊ธฐ.prettierrc.prettierignoreeslint.config.mjs.vscode/settings.json์์ฐ. ์ฐจ๊ทผ์ฐจ๊ทผ ํด๋ณด์. 1. ํ์ํ ํจํค์ง ์ค์นํ๊ธฐnpm install --save-dev prettiernpm install --save-dev eslint-config-prettier eslint-plugin-prettierํจํค์ง๋ช ํจํค์ง ์ญํ prettier์ธ๋ ค๋ฉด ์ค์นco..
2025.08.02 -
ESLint ์ธํ ํ๊ธฐ (+ lint-staged)
๋ชฉ์ฐจ1. ESLint๋?2. โ๏ธ ESLint ์ค์น ๋ฐ ๊ธฐ๋ณธ ์ค์ 3. ๐ Prettier ์ค์น ๋ฐ ESLint์ ์ฐ๋4. ๐ ์ค์ ํ์ผ ์์ฑ (eslint.config.js)5. ๐ค Husky + lint-staged๋ก ์ปค๋ฐ ์ ์๋ ๊ฒ์ฌ ์ค์ 1. ESLint๋?ESLint๋ JS/TS ์ฝ๋์์ ๋ฌธ๋ฒ ์ค๋ฅ, ์คํ์ผ ์๋ฐ, ๋ฒ๊ทธ ๊ฐ๋ฅ์ฑ ๋ฑ์ ์ฌ์ ์ ๊ฐ์งํ๋์ ์ ๋ถ์ ๋๊ตฌ(linter)์ด๋ค. ESLint๋ฅผ ํ๋ก์ ํธ์ ์ ์ฉํ๋ ๊ณผ์ ์ ์์๋ณด์.โ๏ธ ESLint ์ค์น ๋ฐ ๊ธฐ๋ณธ ์ค์ (+ํ๋ฌ๊ทธ์ธ ์ถ๊ฐ)๐ Prettier ์ค์น ๋ฐ ESLint์ ์ฐ๋๐ ์ค์ ํ์ผ ์์ฑ (eslint.config.js)๐ค Husky + lint-staged๋ก ์ปค๋ฐ ์ ์๋ ๊ฒ์ฌ ์ค์ 2. โ๏ธ ESLint ์ค์น ๋ฐ ๊ธฐ๋ณธ ์ค..
2025.08.02 -
Google fonts ์ฌ์ฉํด๋ณด๊ธฐ
https://fonts.google.com/ Browse Fonts - Google FontsMaking the web more beautiful, fast, and open through great typographyfonts.google.com ๋ชฉ์ฐจ1. Google Fonts๋?2. ์ฌ์ฉํด๋ณด๊ธฐ1. Google Fonts๋?Google์ด ์ ๊ณตํ๋ ์น ํฐํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ API ์๋น์ค๋ก, ๋ค์ํ ๋ฌด๋ฃ ๊ธ๊ผด์ ์น์ฌ์ดํธ๋ ์ฑ์์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ซํผ์ด๋ค. ์นํ์ด์ง ๋ค์ด๊ฐ๋ณด๋ฉด ์ ๋ ๊ฒ ํฐํธ๋ค์ ํ์ธํ ์ ์๋ค.ํํฐ๋ฅผ ์ ์ฉํด์ ์ฐพ์ ์๋ ์๊ณ , ์ผ์ชฝ ์ฌ์ด๋๋ฐ ๋ณด๋ฉด ํฐํธ ๋ฟ๋ง ์๋๋ผ ์์ด์ฝ ๋ค์ด๋ ๊ฐ๋ฅํ ๊ฑธ ํ์ธํ ์ ์๋ค. 2. ์ฌ์ฉํด๋ณด๊ธฐ1. ๋ง์์ ๋๋ ํฐํธ ์ ํ ํ, [Get Font] ํด..
2025.07.24 -
Netlify์ผ๋ก ํธ์คํ ์ ํด๋ณด์
๋ชฉ์ฐจ1. Netlify๋?2. ์์ํ๊ธฐ3. ๋ฐฐํฌํ๊ธฐ1. Netlify๋?https://www.netlify.com/ Scale & Ship Faster with a Composable Web Architecture | NetlifyRealize the speed, agility and performance of a scalable, composable web architecture with Netlify. Explore the composable web platform now!www.netlify.com Netlify๋ ์ ์ ์น์ฌ์ดํธ์ ํ๋ก ํธ์๋ ์น ์ฑ์ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ํ๋ซํผ์ด๋ค.= ์น์ฌ์ดํธ์ฉ ํธ์คํ ํ๋ซํผ ๋ฐฐํฌ๋ฅผ ์ฝ๊ฒ ํ ์ ์๊ณ , ๋ฌด๋ฃ ๋ฒ์ ์ผ๋ก๋ ์ฌ์ฉ์ด ๊ฐ..
2025.07.24 -
Webpack์ ๋ญ๊น
๋ชฉ์ฐจ1. ์นํฉ(webpack)์ด๋?2. ์นํฉ์ ์ฅ์ 3. ์ฃผ์ ๊ตฌ์ฑ ์์4. CRA ๋ช ๋ น์ด์ ์นํฉ1. ์นํฉ(webpack)์ด๋?JavaScript, CSS, ์ด๋ฏธ์ง ๋ฑ ์ฌ๋ฌ ์์(module)๋ค์ ๋ฌถ์ด ์ถ๋ ฅ ํ์ผ(bundle)๋ก ๋ง๋ค์ด์ฃผ๋ ๋ชจ๋ ๋ฒ๋ค๋ฌ์ด๋ค.์นํฉ์ ํ๋ก ํธ์๋ ํ๋ ์์ํฌ์์ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ๋ชจ๋ ๋ฒ๋ค๋ฌ์ด๋ค. JavaScript, CSS, ์ด๋ฏธ์ง ๋ฑ ์ฌ๋ฌ ์์(module)๋ค์ ๋ฌถ์ด ์ถ๋ ฅ ํ์ผ(bundle)๋ก ๋ง๋ค์ด์ฃผ๋ ๋ชจ๋ ๋ฒ๋ค๋ฌ์ด๋ค.์นํฉ์ ํ๋ก ํธ์๋ ํ๋ ์ ๊ณผ๊ฑฐ์๋ HTML ํ๊ทธ๋ฅผ ํตํด JS ํ์ผ์ ๋ก๋ํ์๋ค. ์ด ๋ฐฉ์์ ์๋์ ๊ฐ์ ํ๊ณ์ ์ด ์์๋ค.์์์ ๋ฏผ๊ฐํจ์ค๋ณต, ๋ค์์คํ์ด์ค ์ถฉ๋ ๋ฐ์์ ์ง๋ณด์๊ฐ ์ด๋ ค์ ํ์ง๋ง ํ๋ ์น ์ฑ์ด ์ ์ ๋ ๋ณต์กํด์ง๋ฉฐ ๋ค์ํ ์์(asset)๋ค์ ์ฌ์ฉํ๊ฒ ..
2025.07.09 -
Storybook์ ๋ญ๊น
๋ชฉ์ฐจ1. Storybook์ด๋? 1.1 ์คํ ๋ฆฌ๋ถ ํน์ง 1.2 ์คํ ๋ฆฌ๋ถ ๊ตฌ์ฑ2. Storybook ์์ํ๊ธฐ3. Storybook ์ฌ์ฉํ๊ธฐ1. Storybook์ด๋?์คํ ๋ฆฌ๋ถ(Storybook)์ UI ์ปดํฌ๋ํธ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ๊ณ ํ ์คํธํ๋๋ก ๋๋ ๋๊ตฌ์ด๋ค.๋น์ฆ๋์ค ๋ก์ง ๋ฐ ์ปจํ ์คํธ๋ก๋ถํฐ ๋ถ๋ฆฌ๋ UI ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ณ ๋์์ธ ์์คํ ์ ๊ตฌ์ถํ ์ ์๋ค.https://storybook.js.org/ Storybook: Frontend workshop for UI developmentStorybook is a frontend workshop for building UI components and pages in isolation. Thousands of teams use it for UI develop..
2025.06.08 -
Tailwind๋ ๋ญ๊น
๋ชฉ์ฐจ1. Tailwind CSS๋?2. Tailwind ์์ํ๊ธฐ3. ๊ณ ๊ธ ๊ธฐ๋ฅ4. ์๋ฌ : tailwind ์ค์น ์๋จ1. Tailwind CSS๋?์คํ ์์ค CSS ํ๋ ์์ํฌ์ด๋ค.๋ค๋ฅธ ์ฌ๋ฌ ์คํ์ผ ํ๋ ์์ํฌ๋ค๊ณผ ๋ฌ๋ฆฌ, ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์๋๋ผ, ์์ํ๋ ์ ํธ๋ฆฌํฐ ํด๋์ค๋ฅผ ์ ๊ณตํ๋ค.ํด๋์ค ์ด๋ฆ์ ์ฌ์ฉํ์ฌ HTML ์์์ ์ง์ ์คํ์ผ์ ์ ์ฉํ๋ ๋ฐฉ์์ด๋ค. button์ฌ๊ธฐ์ ๊ฐ ํด๋์ค๋ช ์ ์๋ฏธ๋ฅผ ๊ฐ๋จํ๊ฒ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.bg-blue-500 : ๋ฐฐ๊ฒฝ์์ blue 500hover:bg-blue-600 : hover์, ๋ฐฐ๊ฒฝ์์ bluee 600text-white : ํ ์คํธ์์ ํฐ์py-2 px-4 : ์ํ 0.5rem, ์ข์ฐ 1rem paddingrounded : ๋ชจ์๋ฆฌ ๋ฅ๊ธ๊ฒ์ฅ์ ๋น ๋ฅธ..
2025.05.29
GitHub