2024/11
-
- [Next.js] ํ ๋ง ํ ๊ธ ๊ธฐ๋ฅ ์ค์ ํ๊ธฐ (with shadcn/ui)
ํ ๋ง ํ ๊ธ ๊ธฐ๋ฅ ์ค์ ํ๊ธฐ (with shadcn/ui)๋ค์ด๊ฐ๋ฉฐNext.js๋ฅผ ์ด์ฉํ์ฌ ํ ๋ง ํ ๊ธ ๊ธฐ๋ฅ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค.์ด ๊ฒ์๊ธ์ ๋ด์ฉ์ ํ์ ์คํฌ๋ฆฝํธ(TypeScript)์ shadcn UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์๋ค. ๋ฐฉ๋ฒโ ์์ ํ ํ๋ฆฟ ์ฝ๋๋ฅผ ์ ์ญ ์คํ์ผ์ํธ ํ์ผ(@globals.css@)์ ๋ฃ๊ธฐ์๋์ ์ฌ์ดํธ์์ ์์ ์๊ฒ ๋ง๋ ๋ผ์ดํธ/๋คํฌ ๋ชจ๋ ์์ ํ ํ๋ฆฟ์ ์ ํํ ํ, ์์ ์ฝ๋๋ฅผ ๋ณต์ฌํ๋ค. shadcn/uiBeautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.ui.shadcn.com ๊ทธ๋ฆฌ๊ณ ์ ์ญ ์คํ์ผ์ํธ ํ์ผ(@/app/..
16:46:08 -
- [Tailwind CSS] sr-only ํด๋์ค
sr-only ํด๋์ค๋ค์ด๊ฐ๋ฉฐํ ์ผ์๋(Tailwind) CSS์์ ์ฌ์ฉํ ์ ์๋ @sr-only@ ํด๋์ค์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. sr-only ํด๋์ค๊ฐ๋ ์๊ฐ์ฅ์ ์ธ์ ์ํ ์คํฌ๋ฆฐ ๋ฆฌ๋(Screen Reader) ์ ์ฉ ํด๋์ค์ด ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋น ์์๊ฐ ํ๋ฉด์๋ ๋ณด์ด์ง ์์ง๋ง, ์คํฌ๋ฆฐ ๋ฆฌ๋๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์๊ฒ๋ ์ฝํ ์ ์๋๋ก ์ค์ ๋๋ค.์๊ฐ์ฅ์ ์ธ์ด ํ์ด์ง๋ฅผ ํ์ํ ๋ ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์๋ค. ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ฏธ๋ฅผ ๋ช ํํ ํ๊ธฐ ์ํด ๋ณด์กฐ ํ ์คํธ๋ฅผ ์ถ๊ฐํ ๋์๋ฅผ ๋ค์ด, ์์ด์ฝ ๋ฒํผ์ ์ถ๊ฐ ์ค๋ช ์ ๋ง๋ถ์ผ ๋์ ๊ทผ์ฑ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ํ ์คํธ๊ฐ ํ์ํ์ง๋ง, ์ผ๋ฐ ์ฌ์ฉ์์๊ฒ๋ ๋ถํ์ํ ์ ๋ณด๋ฅผ ์จ๊ธฐ๊ณ ์ถ์ ๋ ์ฌ์ฉ ์์ Settings CSS ์คํ์ผ.sr-only { position: absolut..
15:56:57 -
- [CSS] ๋ฏธ๋์ด ์ฟผ๋ฆฌ(Media Query) ์ฅ์น ํ๋ฉด ๋๋น ๋ธ๋ ์ดํฌํฌ์ธํธ
๋ฏธ๋์ด ์ฟผ๋ฆฌ(Media Query) ์ฅ์น ํ๋ฉด ๋๋น ๋ธ๋ ์ดํฌํฌ์ธํธ๋ค์ด๊ฐ๋ฉฐCSS์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ(Media Query)๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ํ ๋์์ธ(Responsive Design)์ ๋ง๋ค ์ ์๋ค.์ด๋ ์ฌ์ฉํ ์ ์๋ ์ฅ์น(Device)์ ํ๋ฉด ๋๋น ๋ธ๋ ์ดํฌํฌ์ธํธ(Breakpoint)์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. ์ฅ์น ํ๋ฉด ๋๋น ๋ธ๋ ์ดํฌํฌ์ธํธPortrait ๋ชจ๋๋ ์ธ๋ก ํ๋ฉด, Landscape ๋ชจ๋๋ ๊ฐ๋ก ํ๋ฉด์ ์๋ฏธํ๋ค.์ฅ์น๋ธ๋ ์ดํฌํฌ์ธํธ๋น๊ณ ๋ชจ๋ฐ์ผ320pxPortrait ๋ชจ๋์) iPhone 5, iPhone SE480pxLandscape ๋ชจ๋ํ๋ธ๋ฆฟ768pxPortrait ๋ชจ๋์) iPadํ๋ธ๋ฆฟ / ์ปดํจํฐ1024pxLandscape ๋ชจ๋์ปดํจํฐ1200px ์ด์Desktop, Laptop์์ ์ฝ๋/* ๋ชจ๋ฐ์ผ Portrai..
3 15:04:17 -
- [React.ts] PropsWithChildren
PropsWithChildren๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.ts)์์ ์ฌ์ฉํ ์ ์๋ @PropsWithChildren@ ํ์ ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค.์ด ํ์ ์ ๋ฆฌ์กํธ์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ํจ๊ป ์ฌ์ฉํ ๋ ์ฌ์ฉํ ์ ์๋ค. PropsWithChildren๊ฐ๋ ํ์ ์คํฌ๋ฆฝํธ(TypeScript)์์ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์ ์์ ์์(@children@)๋ฅผ ํ์ฉํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ ์ ํธ๋ฆฌํฐ ํ์ ๋ณดํต ์ปดํฌ๋ํธ์ ์ ๋ฌ๋๋ ๊ธฐ๋ณธ @props@ ์ธ์๋ ์์ ์์๋ฅผ ํฌํจํ ์ ์์ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค.@PropsWithChildren@ ํ์ ์ ์ปดํฌ๋ํธ๊ฐ ์์ ์์๋ฅผ ๊ฐ์ง ์ ์๋๋ก ๋ช ์ํ๋ฉฐ, @children@์ ๋ช ์์ ์ผ๋ก ์ ์ํ์ง ์๊ณ ๋ ์ฌ์ฉํ ์ ์๋๋ก ํด์ค๋ค. ์ฌ์ฉ ์์ import { PropsWithChildren } from ..
14:44:07 -
- [React.js] const Component vs. function Component
const Component vs. function Component๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์์ @const Component@ ํํ์ ํ์ดํ ํจ์ ๋ฐฉ์๊ณผ @function Component@ ํํ์ ํจ์ ์ ์ธ ๋ฐฉ์์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ์ ์ธํ ์ ์๋ค.์์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํ ์ฐจ์ด์ ์ ์ ๋ฆฌํด๋ณธ๋ค. โ ํ์ดํ ํจ์ ๋ฐฉ์const MyComponent = () => { return( .. )} ํ์ดํ ํจ์(Arrow Function)๋ก ์์ฑํ ์ ์์ผ๋ฉฐ, ์งง์ ์ฝ๋๋ก ์์ฑํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.์๋ฅผ ๋ค์ด, ํ ์ค๋ก ๋ฐํํ๋ ๊ฒฝ์ฐ, @return@ ํค์๋๋ฅผ ์๋ตํ ์ ์๋ค.const MyComponent = () => ( ... ) ์ปดํฌ๋ํธ ์ ์ธ๊ณผ ๋์์ @export default..
2 2024.11.04 -
- [Git] .gitignore ํ์ผ์ ํ๊ฒฝ ์ค์ ํ์ผ(.env) ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ
.gitignore ํ์ผ์ ํ๊ฒฝ ์ค์ ํ์ผ(.env) ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐ@.gitignore@ ํ์ผ์ ํ๊ฒฝ ์ค์ ํ์ผ(@.env@)์ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ@.gitignore@ ํ์ผ์ @.env@ ์ถ๊ฐํ๊ธฐ.gitignore@.gitignore@ ํ์ผ์ด ์์ ๊ฒฝ์ฐ ์๋ก ์์ฑํด์ฃผ๊ณ , ๊ทธ ์์ @.env@์ ์ถ๊ฐํด์ค๋ค.# ํ๊ฒฝ ์ค์ ํ์ผ.env (์ฐธ๊ณ ) @.gitignore@ ํ์ผ์ ์ถ๊ฐํด๋ ๋ฌด์๋์ง ์์ ๊ฒฝ์ฐ๋ง์ฝ ์ด๋ฏธ @.env@ ํ์ผ์ด Git์ ์ํด ์ถ์ ์ค์ผ ๊ฒฝ์ฐ, @.gitignore@ ํ์ผ์ @.env@๋ฅผ ์ถ๊ฐํด๋ ๋ฌด์๋์ง ์๋๋ค.๋ฐ๋ผ์ ์๋์ ๋ช ๋ น์ ์คํํ์ฌ Git ์บ์์์ @.env@ ํ์ผ ์ถ์ ์บ์๋ฅผ ์ ๊ฑฐํด์ค๋ค.$ git rm --cached .env
2024.11.02 -
- [React.js] React Share ๋ผ์ด๋ธ๋ฌ๋ฆฌ
React Share ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐReact Share ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. React Share๊ฐ๋ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ค์ํ ์์ ๋ฏธ๋์ด ๊ณต์ ๋ฒํผ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์๋๋ก ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฌ๋ฌ ์์ ๋ฏธ๋์ด ํ๋ซํผ์ ๋งํฌ๋ฅผ ๊ณต์ ํ ์ ์๋ ๋ฒํผ์ ์ ๊ณตํ๋ฉฐ, ๊ฐ๋จํ ์ค์ ์ ํตํด ๋ฒํผ์ ์ปค์คํฐ๋ง์ด์งํ ์ ์๋ค. ์ฃผ์ ํน์ง๊ฐ๋จํ๊ฒ ์ค์นํ ์ ์๋ค.ํ์ํ ์์ ๋ฏธ๋์ด ๊ณต์ ๋ฒํผ์ ์ปดํฌ๋ํธ๋ก ๋ถ๋ฌ์ ์ฌ์ฉํ ์ ์๋ค.๋ฒํผ์ ํฌ๊ธฐ, ๋ชจ์, ์คํ์ผ์ ์ฝ๊ฒ ์ปค์คํฐ๋ง์ด์งํ ์ ์์ผ๋ฉฐ, SVG ์์ด์ฝ์ ์ฌ์ฉํ์ฌ ์คํ์ผ์ ์์ ๋กญ๊ฒ ๋ณ๊ฒฝํ ์ ์๋ค.๋ค์ํ ์์ ๋ฏธ๋์ด ํ๋ซํผ์ ์ง์ํ๋ค.Facebook, X(Twitter), LinkedIn, Pinterest, Telegram, WhatsApp, Line, R..
2024.11.01