nextjs
-
- [Next.js] Console Error Attempting to parse an unsupported color function "lab" ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (html2canvas)Console Error Attempting to parse an unsupported color function "lab" ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (html2canvas)๋ค์ด๊ฐ๋ฉฐNext.js์ TailwindCSS๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋ฐํ ๋, @html2canvas@ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ์นํผ์ด์ง๋ฅผ ์ด๋ฏธ์ง ํ์ผ๋ก ์ ์ฅํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ค๊ณ ํ ๋, ๋ค์๊ณผ ๊ฐ์ด @lab()@ ๊ด๋ จ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค.Console Error Attempting to parse an unsupported color function "lab" Call Stack 10 Show 10 ignore-listed frame(s)์ด๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณธ๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ๋ฌธ์ ๋ TailwindCSS / PostCSS..
2025.09.22 -
- [Next.js] Google Sheets API ์ฐ๋ ๋ฐฉ๋ฒGoogle Sheets API ์ฐ๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐNext.js์์ Google Sheets API๋ฅผ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒโ Google Cloud Console์์ ์๋ก์ด ํ๋ก์ ํธ ์์ฑํ๊ธฐ์๋์ Google Cloud Console์ ์ ์ํ๋ค.๊ตฌ๊ธ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํด์ผ ํ๊ณ , Google Cloud Console ๊ฐ์ ์ ํด์ผํ ์๋ ์๋ค. Google ํด๋ผ์ฐ๋ ํ๋ซํผ๋ก๊ทธ์ธ Google ํด๋ผ์ฐ๋ ํ๋ซํผ์ผ๋ก ์ด๋accounts.google.com ๊ทธ๋ฆฌ๊ณ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค.์๋ก์ด ํ๋ก์ ํธ๋ ํ์ด์ง ์๋จ ์ผ์ชฝ์ ์ฌ๊ฐํ ๋ฒํผ์ ํด๋ฆญํ์ฌ ์์ฑํ ์ ์๋ค.์ด์ ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ์ง ์์์ ๊ฒฝ์ฐ, ์์์ ํ๋ก์ ํธ ์ด๋ฆ์ด ์์ฑ๋์ด ์๋ค. ์๋ฆผ์ฐฝ์์ ํ๋ก์ ํธ ์์ฑ ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์๋ค. @..
2025.07.06 -
- [Next.js] <Link> ์ปดํฌ๋ํธ ํด๋ฆญ ์, ์ต์๋จ์ผ๋ก ์คํฌ๋กค ๋๋ ํ์ ๋ง๋ ๋ฐฉ๋ฒ์ปดํฌ๋ํธ ํด๋ฆญ ์, ์ต์๋จ์ผ๋ก ์คํฌ๋กค ๋๋ ํ์ ๋ง๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐNext.js์ @@ ์ปดํฌ๋ํธ๋ฅผ ํด๋ฆญํ๋ฉด, ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ฉด์ ์ต์๋จ์ผ๋ก ์คํฌ๋กค์ด ๋๋ค.์ด๋ฌํ ํ์์ ๋ง๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ๊ฐ๋จํ๋ค. ๋ค์๊ณผ ๊ฐ์ด @@ ์ปดํฌ๋ํธ์ @scroll@ ์์ฑ์ ๊ฐ์ @false@๋ก ์ง์ ํด์ฃผ๋ฉด ๋๋ค.import Link from 'next/link'; Move ์ฐธ๊ณ ์ฌ์ดํธ | Next.js" data-og-description="Enable fast client-side navigation with the built-in `next/link` component." data-og-host="nextjs.org" data-og-source-url="https://nextjs.org/docs/app/api-refe..
2024.12.20 -
- [TypeScript] ํ๊ฒฝ ๋ณ์ ํ์ ์ค์ ํ๊ธฐํ๊ฒฝ ๋ณ์ ํ์ ์ค์ ํ๊ธฐ๋ค์ด๊ฐ๋ฉฐํ์ ์คํฌ๋ฆฝํธ์์ ํ๊ฒฝ ๋ณ์(Environment Variable)์ ํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ํ์ ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ๋ค์๊ณผ ๊ฐ์ ํ๊ฒฝ ๋ณ์ ํ์ผ์ด ์๋ค๊ณ ํด๋ณด์.์ด์ ์ด ํ๊ฒฝ ๋ณ์๋ฅผ ํ๋ก์ ํธ ๋ด์ ๋ค๋ฅธ ํ์ผ์์ ๋ถ๋ฌ์์ ์ฌ์ฉํด๋ณผ ๊ฒ์ด๋ค. (Next.js ํ๋ ์์ํฌ ์ฌ์ฉ).env.localNEXT_PUBLIC_API_KEY="="***********"NEXT_PUBLIC_SPACE_ID="**************************" (1) @!@(Non-Null Assertion) ์ฐ์ฐ์ ์ฌ์ฉํ๊ธฐ@!@๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ด @undefined@๊ฐ ์๋์ ํ์ ์คํฌ๋ฆฝํธ์ ๋ช ์ํ๋ค.ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ ํด๋น ํ๊ฒฝ ๋ณ์๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ, ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋..
3 2024.12.09 -
- [Next.js] Hydration ์๋ฌ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ (Next.js 15)Hydration ์๋ฌ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ (Next.js 15)๋ค์ด๊ฐ๋ฉฐNext.js 15์์ ์์ฑํ ํ๋ก์ ํธ์์ ์๋์ ๊ฐ์ Hydration ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค.Console ErrorHydration failed because the server rendered HTML didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used- A server/client branch 'if (typeof window !== 'undefined')'.- Variable input such as 'Date.now()' ..
2024.11.21 -
- [Next.js] ๋ ๋๋ง ๋ฐฉ์ ์ ๋ฆฌ (CSR(Client Side Rendering), SSR(Server Side Rendering), SSG(Static Site Generation), ISR(Incremental Static Regeneration)๏ปฟ)๋ ๋๋ง ๋ฐฉ์ ์ ๋ฆฌ (CSR(Client Side Rendering), SSR(Server Side Rendering), SSG(Static Site Generation), ISR(Incremental Static Regeneration))๋ค์ด๊ฐ๋ฉฐNext.js์ ๋ ๋๋ง ๋ฐฉ์์ธ CSR(Client Side Rendering), SSR(Server Side Rendering), SSG(Static Site Generation), ISR(Incremental Static Regeneration)์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค.Next.js์์ ํ์ด์ง๋ฅผ ์์ฑํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก CSR ๋ฐฉ์์ผ๋ก ๋ ๋๋ง๋๋ค. CSR(Client Side Rendering)๊ฐ๋ ๋ธ๋ผ์ฐ์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ค์ด๋ก๋ํ ํ, ํด๋ผ์ด์ธํธ ์ธก์์ ๋ ๋๋ง์ ..
14 2024.11.14 -
- [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/..
2024.11.05 -
- [Next.js] ๊ฐ์๊ธฐ "'next'์(๋) ๋ด๋ถ ๋๋ ์ธ๋ถ ๋ช ๋ น, ์คํํ ์ ์๋ ํ๋ก๊ทธ๋จ, ๋๋๋ฐฐ์น ํ์ผ์ด ์๋๋๋ค." ์ค๋ฅ๊ฐ ๋ฐ์ํ ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ๊ฐ์๊ธฐ "'next'์(๋) ๋ด๋ถ ๋๋ ์ธ๋ถ ๋ช ๋ น, ์คํํ ์ ์๋ ํ๋ก๊ทธ๋จ, ๋๋๋ฐฐ์น ํ์ผ์ด ์๋๋๋ค." ์ค๋ฅ๊ฐ ๋ฐ์ํ ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐNext.js ํ๋ก์ ํธ ์๋ฒ๋ฅผ ์คํํ ๋, ๊ฐ์๊ธฐ ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.$ yarn devyarn run v1.22.22$ next dev'next'์(๋) ๋ด๋ถ ๋๋ ์ธ๋ถ ๋ช ๋ น, ์คํํ ์ ์๋ ํ๋ก๊ทธ๋จ, ๋๋๋ฐฐ์น ํ์ผ์ด ์๋๋๋ค.error Command failed with exit code 1.info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. ์ด๋, ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค. ์บ์๋ฅผ ์ง์์ค ํ, ํ๋ก์ ..
2024.10.30 -
- [Next.js] ํ๊ฒฝ ๋ณ์ ์ฌ์ฉ ๋ฐฉ๋ฒํ๊ฒฝ ๋ณ์ ์ฌ์ฉ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐNext.js์์ ํ๊ฒฝ ๋ณ์(Environment Variable)๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒโ ํ๊ฒฝ ๋ณ์ ํ์ผ ์ค์ ํ๊ธฐNext.js๋ @.env@ ํ์ผ์ ํตํด ํ๊ฒฝ ๋ณ์๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋ค.ํ๋ก์ ํธ ์ต์์ ๊ฒฝ๋ก(@/@)์ ๋ค์๊ณผ ๊ฐ์ @.env@ ํ์ผ์ ์์ฑํ๋ค. /.env.localNEXT_PUBLIC_API_URL=https://api.example.comAPI_SECRET_KEY=your-secret-key ⇒ ๋ค์๊ณผ ๊ฐ์ด @.env@๋ค์ ์ฉ๋์ ๋ฐ๋ผ ๋ค์ํ ์ ๋ฏธ์ด๋ฅผ ๋ถ์ผ ์ ์๋ค. ํ๊ฒฝ๋ณ์ ํ์ผ๋ช ์ค๋ช @.env.local@๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ํ๊ฒฝ ๋ณ์ (Git์ ์ถ๊ฐํ์ง ์๋ ๊ฒ์ด ์ข๋ค.)@.env.development@๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ํ๊ฒฝ ๋ณ์@..
1 2024.10.29 -
- [React.js] ClerkClerk๋ค์ด๊ฐ๋ฉฐNext.js ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ธ์ฆ(Authentication) ๋ฐ ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ๋์์ฃผ๋ Clerk ์๋น์ค์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค.์ด ์๋น์ค๋ฅผ ์ด์ฉํ๋ฉด, ์์ ๋ก๊ทธ์ธ ๋ฑ ์ธ์ฆ์ ์ํ ๊ธฐ๋ฅ๋ค์ ์ง์ ์ฝ๋๋ก ๊ตฌํํ์ฌ ๋ง๋ค์ด์ฃผ์ง ์์๋ ๋๋ค. Clerk๊ฐ๋ Next.js ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ธ์ฆ(Authentication) ๋ฐ ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋๋ ์๋น์ค์์ ๋ก๊ทธ์ธ, ๋ฉํฐํฉํฐ ์ธ์ฆ(MFA), ์ธ์ ๊ด๋ฆฌ ๋ฑ์ ๊ธฐ๋ณธ ์ ๊ณตํ๋ค.Next.js์ ์๋ฒ๋ฆฌ์ค ํ๊ฒฝ๊ณผ๋ ์ ๋ง๊ธฐ ๋๋ฌธ์ API ๋ผ์ฐํธ์ ๋ฏธ๋ค์จ์ด์์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค.Clerk์ ์ด์ฉํ๋ฉด ์ฝ๊ฒ ์์ ๋ก๊ทธ์ธ(Google, Facebook, GitHub ๋ฑ) ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์๋ค. ํ์๊ฐ์ ๋ฐ ํ๋ก์ ํธ ์์ฑ Cler..
2024.10.28 -
- [Next.js] ํด๋ ๊ตฌ์กฐ ๋ฐ ๋์ ๊ฒฝ๋ก ์ค์ ํ๊ธฐํด๋ ๊ตฌ์กฐ ๋ฐ ๋์ ๊ฒฝ๋ก ์ค์ ํ๊ธฐ๋ค์ด๊ฐ๋ฉฐNext.js๋ฅผ ์ด์ฉํ์ฌ ํด๋ ๊ตฌ์กฐ ๋ฐ ๋์ ๊ฒฝ๋ก๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒโ ๋น๊ณต๊ฐ ํด๋(Private Folder) ์์ฑํ๊ธฐ์ฑ(@app@) ํด๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก URL ์ธ๊ทธ๋จผํธ๊ฐ ๋๋ค.๋น๊ณต๊ฐ ํด๋(Private Folder)๋ฅผ ๋ง๋ค๊ณ ์ถ์ ๊ฒฝ์ฐ, ํด๋ ์ด๋ฆ ์์ ๋ฐ์ค(@_@)์ ์ถ๊ฐํ๋ค._css ⇒ @_css@ ํด๋ ์์ฑ ์, ํด๋น ํด๋๋ URL ์ธ๊ทธ๋จผํธ๋ก ๋ ธ์ถ๋์ง ์์ผ๋ฉฐ, ๋ง์ฝ ํด๋น ๊ฒฝ๋ก์ ์ ์ํ ๊ฒฝ์ฐ 404 ํ์ด์ง๋ฅผ ๋ฐํํ๋ค. ๋น๊ณต๊ฐ ํด๋๋ ๋ผ์ฐํ ์ ์ง์ ํฌํจ๋์ง ์๋ ํด๋์ด๋ค.์ผ๋ฐ์ ์ผ๋ก ๋ด๋ถ ๊ด๋ฆฌ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. โก ๋ผ์ฐํธ ๊ทธ๋ฃน(Route Group) ์์ฑํ๊ธฐ๋ผ์ฐํธ ๊ทธ๋ฃน(Route Group)์ ํน์ ํ์ด์ง๋ ๊ฒฝ๋ก๋ฅผ ๊ทธ๋ฃนํํ๋ค.์ด๋ฌํ ๊ทธ๋ฃน์ ์ด๋ฆ..
2024.10.16 -
- [Next.js] ์ ์ ์์ฑ(Static Generation)๊ณผ ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง(Server-side Rendering)์ ์ ์์ฑ(Static Generation)๊ณผ ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง(Server-side Rendering)๋ค์ด๊ฐ๋ฉฐ์ฌ์ ๋ ๋๋ง ๋ฐฉ๋ฒ์ธ ์ ์ ์์ฑ(Static Generation)๊ณผ ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง(Server-side Rendering)์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. ์ ์ ์์ฑ(Static Generation)๊ฐ๋ ์น ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํ์ฌ HTML ํ์ผ๋ก ์ ์ฅํ๋ ๋ฐฉ์์น ์ฌ์ดํธ์ ๋น๋ ๋จ๊ณ์์ ๋ชจ๋ ํ์ด์ง๊ฐ ์ฌ์ ์ ๋ ๋๋ง๋๋ฉฐ, ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ์์ฒญํ ๋ ์๋ฒ์์ ๋ฏธ๋ฆฌ ์์ฑ๋ HTML ํ์ผ์ ์ฆ์ ์ ๊ณตํ๋ ๋ฐฉ์๋น ๋ฅธ ๋ก๋ฉ ์๋์ ์๋ฒ ๋ถํ ๊ฐ์๋ฅผ ์ํด ์ฌ์ฉSSG(Static Site Generation)์ด๋ผ๊ณ ๋ ํ๋ค. ์ฅ์ ํ์ด์ง๊ฐ ๋ฏธ๋ฆฌ ์์ฑ๋์ด ์์ผ๋ฏ๋ก, ์ฌ์ฉ์๋ ๋น ๋ฅด๊ฒ ํ์ด์ง๋ฅผ ๋ณผ ์ ์๋ค. (๋น ๋ฅธ ํ์ด์ง ๋ก๋ฉ)์์ฒญ..
2024.08.08