๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

next.js

(21)
[ํ”Œ์ ๊ธฐ๋ก] NextAuth๋กœ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ (with Prisma) ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
[ํ”Œ์ ๊ธฐ๋ก] Next.js + Prisma + PlanetScale ์„ธํŒ…ํ•˜๊ธฐ (Vercel ๋ฐฐํฌ) ์ด ๊ธ€์€ ๋‹จ์ˆœํžˆ ์„ธํŒ…๋งŒ์„ ์œ„ํ•œ ๊ธ€์ด์ง€ ๋‚ด๋ถ€์ ์ธ ๋กœ์ง์ด๋‚˜ ์Šคํ‚ค๋งˆ ๋“ฑ์— ๋Œ€ํ•œ ์„ค๋ช…์ด ์ „ํ˜€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ, ์–ด๋– ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์—ญ์‹œ ๋‹ค๋ฃจ์ง€ ์•Š๋Š”๋‹ค. PlanetScale์˜ https://planetscale.com/blog/how-to-setup-next-js-with-prisma-and-planetscale ๊ธ€์— ๊ธฐ์ดˆํ•œ ๋‚ด์šฉ์ด๋ฉฐ ํ•ด๋‹น ๊ธ€์˜ ๋™์˜์ƒ ๋ฒ„์ „(๋งํฌ) ๋„ ์ฐธ์กฐํ–ˆ๋‹ค. How to set up Next.js with Prisma and PlanetScale A step-by-step guide for using PlanetScale and Prisma with Next.js. planetscale.com 1. PlanetScale ๊ฐ€์ž… / ๋กœ๊ทธ์ธ ํ›„ Create New Database..
CSS Modules ํด๋ž˜์Šค๋ช… ๋„ฃ๋Š” ๋ฒ• Today I learned ์นดํ…Œ๊ณ ๋ฆฌ์— ์žˆ๊ธด ํ•˜์ง€๋งŒ Today์— ๋ฐฐ์šด๊ฑด ์•„๋‹ˆ๊ณ ... Next.js ๊ด€๋ จ ํŠœํ† ๋ฆฌ์–ผ๋ณด๋‹ค๊ฐ€ ์˜ˆ์ „์— ๊ณ ๋ฏผํ•˜๊ณ  ์ฐพ์•„๋ดค๋˜ ๋ถ€๋ถ„์ด ์ƒ๊ฐ๋‚˜์„œ ์–ผ๋ฅธ ๊ธ€๋กœ ๋‚จ๊ฒจ๋ณธ๋‹ค. ์ง€๋‚œ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ๋•Œ CSS Modules๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ํด๋ž˜์Šค ๋ช…์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋„ฃ๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ฐพ์•„๋ณธ ์ ์ด ์žˆ์—ˆ๋‹ค. (๊ธฐ์กด์— ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ์—์„œ ๋ณด๊ณ  ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ •ํ™•ํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ๋ฌธ์„œ๋ฅผ ์ฐพ์•„๋ณด๊ฑฐ๋‚˜ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•ด๋ณด๋Š” ๊ฒƒ์„ ๊ถŒํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค. ) 1. ํด๋ž˜์Šค ๋ช…์ด ํ•˜๋‚˜ ์ผ ๋•Œ - style.className ๋ฐฉ์‹ - style['class-name'] ๋ฐฉ์‹ 2. ํด๋ž˜์Šค ๋ช…์ด ๋‘๊ฐœ ์ด์ƒ์ผ ๋•Œ - {`${style.className1} ${style.className2}`} / {`${style['class-n..
[๋‚ด๋ณด๋‚ด๋ฒˆ] Understanding Next.js Data Fetching (CSR, SSR, SSG, ISR) ๋‚ด๋ณด๋‚ด๋ฒˆ(๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋‚ด๊ฐ€ ๋ฒˆ์—ญํ•œ...) ์•„ํ‹ฐํด โ€ป ์˜์–ด ์ „๊ณต์ž๋„ ํ•ด์™ธ ์œ ํ•™ํŒŒ๋„ ์•„๋‹ˆ๊ธฐ์— ๋ฒˆ์—ญ์—๋Š” ์˜์—ญ, ์˜ค์—ญ, ๊ตฌ๊ธ€ ๋ฒˆ์—ญ์ด ๋ฌด์ˆ˜ํžˆ ๋งŽ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐœ์ธ์ ์ธ ๊ณต๋ถ€ ๋ชฉ์ ์œผ๋กœ ๋ฒˆ์—ญํ•˜๋‹ค ๋ณด๋‹ˆ ์˜คํƒ€๋„ ๋งŽ์„ ์ˆ˜ ์žˆ๋‹ค. ์ •ํ™•ํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ์•„ํ‹ฐํด์„ ์ง์ ‘ ์‚ดํŽด๋ณด๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ •๋ณด๋“ค์„ ๋” ์ฐพ์•„๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. (ํ•˜์ง€๋งŒ ๋Œ“๊ธ€ ํ”ผ๋“œ๋ฐฑ๋„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค๐Ÿ˜ƒ ๊ธ€์„ ์ฝ์–ด๋ณด์‹œ๊ณ  ๋„์›€์„ ์–ป์œผ์…จ๋‹ค๋ฉด ์•„ํ‹ฐํด ์ €์ž์˜ ๋ธ”๋กœ๊ทธ์—์„œ ์ข‹์•„์š”๋„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”.) Understanding Next.js Data Fetching (CSR, SSR, SSG, ISR) by Theodorus Clarence ์›๋ฌธ ์ฝ๊ธฐ >> Understanding Next.js Data Fetching (CSR, SSR, SSG, ISR) | theodorusclarence...
[๋‚ด๋ณด๋‚ด๋ฒˆ] Next.js docs - Dynamic Import ๋‚ด๋ณด๋‚ด๋ฒˆ(๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋‚ด๊ฐ€ ๋ฒˆ์—ญํ•œ...) Next.js docs 2021๋…„ 8์›” 3์ผ ๊ธฐ์ค€ Next.js ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ฒˆ์—ญํ–ˆ๋‹ค. โ€ป ์˜์–ด ์ „๊ณต์ž๋„ ํ•ด์™ธ ์œ ํ•™ํŒŒ๋„ ์•„๋‹ˆ๊ธฐ์— ๋ฒˆ์—ญ์—๋Š” ์˜์—ญ, ์˜ค์—ญ, ๊ตฌ๊ธ€ ๋ฒˆ์—ญ์ด ๋ฌด์ˆ˜ํžˆ ๋งŽ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ˜ผ์ž ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•ด๊ฐ€๋ฉฐ ๋ฒˆ์—ญํ•˜๋‹ค ๋ณด๋‹ˆ ์˜คํƒ€๋„ ๋งŽ์„ ์ˆ˜ ์žˆ๋‹ค. ์ •ํ™•ํ•œ ๋‚ด์šฉ์€ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ง์ ‘ ์‚ดํŽด๋ณด๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ •๋ณด๋“ค์„ ๋” ์ฐพ์•„๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. (ํ•˜์ง€๋งŒ ๋Œ“๊ธ€ ํ”ผ๋“œ๋ฐฑ๋„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค๐Ÿ˜ƒ ) Next.js ๊ณต์‹๋ฌธ์„œ ํ™•์ธํ•˜๊ธฐ>> Advanced Features: Dynamic Import | Next.js Dynamically import JavaScript modules and React Components and split your code into manageable chunk..
[๋‚ด๋ณด๋‚ด๋ฒˆ] Next.js docs - Authentication ๋‚ด๋ณด๋‚ด๋ฒˆ(๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋‚ด๊ฐ€ ๋ฒˆ์—ญํ•œ...) Next.js docs 2021๋…„ 8์›” 2์ผ ๊ธฐ์ค€ Next.js ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ฒˆ์—ญํ–ˆ๋‹ค. โ€ป ์˜์–ด ์ „๊ณต์ž๋„ ํ•ด์™ธ ์œ ํ•™ํŒŒ๋„ ์•„๋‹ˆ๊ธฐ์— ๋ฒˆ์—ญ์—๋Š” ์˜์—ญ, ์˜ค์—ญ, ๊ตฌ๊ธ€ ๋ฒˆ์—ญ์ด ๋ฌด์ˆ˜ํžˆ ๋งŽ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ˜ผ์ž ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•ด๊ฐ€๋ฉฐ ๋ฒˆ์—ญํ•˜๋‹ค ๋ณด๋‹ˆ ์˜คํƒ€๋„ ๋งŽ์„ ์ˆ˜ ์žˆ๋‹ค. ์ •ํ™•ํ•œ ๋‚ด์šฉ์€ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ง์ ‘ ์‚ดํŽด๋ณด๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ •๋ณด๋“ค์„ ๋” ์ฐพ์•„๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. (ํ•˜์ง€๋งŒ ๋Œ“๊ธ€ ํ”ผ๋“œ๋ฐฑ๋„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค๐Ÿ˜ƒ ) Next.js ๊ณต์‹๋ฌธ์„œ ํ™•์ธํ•˜๊ธฐ>> Authentication | Next.js Learn about authentication patterns in Next.js apps and explore a few examples. nextjs.org Authentication verifies who ..
[์‚ฝ์งˆ๋กœ๊ทธ] Next.js(Vercel) + Strapi(Heroku) 504 ์—๋Ÿฌ ๋Œ€์ฒ˜ (์ด ๊ธ€์€ 2021๋…„ 7์›” 11์ผ ๊ธฐ์ค€ ๊ธ€์ด๋‹ค.) ์‚ฝ์งˆ์š”์•ฝ๐Ÿ‘จ‍๐Ÿ”ง ์Šคํƒ: Next.js(Vercel) + Strapi - Postgres(Heroku) ์ฆ์ƒ: ์ดˆ๊ธฐ ์ ‘๊ทผ์‹œ 504 ์—๋Ÿฌ๊ฐ€ ๋œธ. (Serverless Function Timeout) ๋Œ€์ฒ˜: ๋งค๋ฒˆ ์„œ๋ฒ„์— ์š”์ฒญํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” getServerSideProps์—์„œ getStaticProps๋กœ ๋ณ€๊ฒฝ ํ›„ revalidate ์„ค์ •. (์—๋Ÿฌ์— ๋Œ€ํ•œ ๊ทผ๋ณธ์ ์ธ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋Œ€์ฒ˜ํ•œ ๊ฒƒ์ด๊ธฐ์— ๋Œ€์ฒ˜๋ผ๊ณ  ์ผ๋‹ค.) ์‚ฝ์งˆ๊ตฌ๊ตฌ์ ˆ์ ˆ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค๊ฐ€ ํ•œ๋™์•ˆ ๋‹ค๋ฅธ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ์ง€์ž‘๊ฑฐ๋ฆฌ๋‹ค๋ณด๋‹ˆ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋Š” ์ €์–ด์–ด ๋ฉ€๋ฆฌ ๋ฉ€์–ด์ ธ๋ฒ„๋ ธ๊ณ  ์†๋Œ€๊ธฐ๋„ ๊ท€์ฐฎ์•„์กŒ๋‹ค. ์†”์งํžˆ ๋งํ•˜๋ฉด ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ํ•ด๊ฒฐ์ฑ…์ด ๋ณด์ด์ง€ ์•Š์•„์„œ ๋” ๊ฑด๋“ค๊ธฐ๊ฐ€ ์‹ซ์—ˆ๋‹ค...
[๋‚ด๋ณด๋‚ด๋ฒˆ] Next.js docs - Deployment ๋‚ด๋ณด๋‚ด๋ฒˆ(๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋‚ด๊ฐ€ ๋ฒˆ์—ญํ•œ...) Next.js docs 2021๋…„ 7์›” 11์ผ ๊ธฐ์ค€ Next.js ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ฒˆ์—ญํ–ˆ๋‹ค. โ€ป ์˜์–ด ์ „๊ณต์ž๋„ ํ•ด์™ธ ์œ ํ•™ํŒŒ๋„ ์•„๋‹ˆ๊ธฐ์— ๋ฒˆ์—ญ์—๋Š” ์˜์—ญ, ์˜ค์—ญ, ๊ตฌ๊ธ€ ๋ฒˆ์—ญ์ด ๋ฌด์ˆ˜ํžˆ ๋งŽ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ˜ผ์ž ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•ด๊ฐ€๋ฉฐ ๋ฒˆ์—ญํ•˜๋‹ค ๋ณด๋‹ˆ ์˜คํƒ€๋„ ๋งŽ์„ ์ˆ˜ ์žˆ๋‹ค. ์ •ํ™•ํ•œ ๋‚ด์šฉ์€ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ง์ ‘ ์‚ดํŽด๋ณด๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ •๋ณด๋“ค์„ ๋” ์ฐพ์•„๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. (ํ•˜์ง€๋งŒ ๋Œ“๊ธ€ ํ”ผ๋“œ๋ฐฑ๋„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค๐Ÿ˜ƒ ) Next.js ๊ณต์‹๋ฌธ์„œ ํ™•์ธํ•˜๊ธฐ>> Deployment | Next.js Deploy your Next.js app to production with Vercel and other hosting options. nextjs.org Vercel(Recommended) The easiest wa..