nextjs,tailwindcss,vercel 38

[์—๋Ÿฌ ํ•ด๊ฒฐ ] Could not connect to any servers in your MongoDB Atlas cluster

MongoDB Atlas ์ ‘์† - network access ๋“ค์–ด๊ฐ€์„œip์ฃผ์†Œ๋ฅผ ๋‚ด๊ป„๋กœ ๋ฐ”๊พธ์–ด์ฃผ๋ฉด๋œ๋‹ค. ๋‚ด ip์ฃผ์†Œ ํ™•์ธ์€ ๊ตฌ๊ธ€์— ip์ฃผ์†Œ ํ™•์ธ ์ด๋ผ๊ณ  ์น˜๋ฉด ๋งŽ์ด ๋‚˜์˜จ๋‹คhttps://findip.kr/ editํ•ด์„œ ๋‚ด ip์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ๋

mongodb url password ์ฐพ๊ธฐ (Mongodb atlas)

Mongodb atlas ์—์„œ nextjs ์—์„œ ์ˆ˜ํ–‰ํ•  mongodb url์„ ์ฐพ๋Š” ๋ฒ• ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ database access ์ ‘์† database access ์—์„œ ํ˜„์žฌ ์žˆ๋Š” ์–ด๋“œ๋ฏผ ์œ ์ € edit ์„ ํ•˜๊ฑฐ๋‚˜ add new batabase user ๋กœ ์ƒˆ๋กœ์šด ์œ ์ € ์ƒ์„ฑํ•˜๊ธฐ ํ•˜๋‹จ์—์„œ ํŒจ์Šค์›Œ๋“œ ์ƒ์„ฑ  ํŒจ์Šค์›Œ๋“œ๋Š” ์ดํ›„ password์ž๋ฆฌ์— ๋Œ€์ฒดํ•ด์ฃผ๊ณ  ์‚ฌ์šฉํ•˜๋ฉด๋œ๋‹ค. mongodb+srv://{username}:@~~~mongodb.net

ํ•€ํ„ฐ๋ ˆ์ŠคํŠธ์˜ ๋ณด๋“œ์— ์ €์žฅํ•œ ๋ชจ๋“  ์‚ฌ์ง„ ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ (python url ์‚ฌ์ง„ ๋‹ค์šด)

https://github.com/mikf/gallery-dl GitHub - mikf/gallery-dl: Command-line program to download image galleries and collections from several image hosting sitesCommand-line program to download image galleries and collections from several image hosting sites - mikf/gallery-dlgithub.com url์„ ์ž…๋ ฅํ•ด์„œ ์‚ฌ์ง„์„ ๋‹ค์šด๋ฐ›๋Š” ๋ฐ›๋Š” ์ข‹์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์–ด์„œ ์†Œ๊ฐœ๋™์ˆฒ ์‚ฐ๋ฆฌ์˜ค ๋””์ž์ธ์ด๋ž‘ ๊ธธ ๋„ํŠธ ๊ฐ๊ฐ ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค์–ด ์ €์žฅํ•˜๊ณ , ํ•œ๋ฒˆ์— ๋‹ค์šด๋ฐ›์œผ๋ ค๊ณ  ํ–ˆ๋‹ค https://kr.pinterest.com/su..

[๊ตฌ๊ธ€ ์• ๋„๋ฆฌํ‹ฑ์Šค] nextjs app router ์—์„œ google tag manager ์‰ฝ๊ฒŒ ์ ์šฉํ•˜๊ธฐ

https://tagmanager.google.com/๊ตฌ๊ธ€ ํƒœ๊ทธ๋งค๋‹ˆ์ €๋กœ ๊ตฌ๊ธ€ ์• ๋„๋ฆฌํ‹ฑ์Šค ์ ์šฉํ•˜๋ ค๋ฉด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋Š”๋ฐ, ๊ณ ๋Œ€๋กœ ๋ณต๋ถ™ํ•˜๋ฉด ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•˜๋ฉด ๋œ๋‹ค. https://nextjs.org/docs/app/building-your-application/optimizing/third-party-libraries Optimizing: Third Party Libraries | Next.jsOptimize the performance of third-party libraries in your application with the `@next/third-parties` package.nextjs.org ์„ค์น˜npm install @next/third-parties@latest..

Vercel์—์„œ ํŒŒ์ผ ์ฝ๊ณ  ์“ฐ๊ธฐ ํ•  ์ˆ˜ ์žˆ์„๊นŒ? (์„œ๋ฒ„๋ฆฌ์Šค ํ™˜๊ฒฝ)

Vercel๋กœ ๋ฐฐํฌํ•˜๊ณ ๋‚˜์„œ๋Š” ํด๋”๋ฅผ ๋งŒ๋“ ๋‹ค๋˜๊ฐ€, ํŒŒ์ผ์„ ์ €์žฅํ•œ๋‹ค๋˜๊ฐ€, ์ฝ๊ณ  ์“ด๋‹ค๋˜๊ฐ€ ํ•˜๋Š” fs ํ™œ๋™์— ์ œ์•ฝ์ด ์žˆ๋‹ค.์‹ค์ œ๋กœ ๋ง‰์ƒ ๋ฐฐํฌ๋ฅผ ํ•ด๋ณด๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์ด ์ƒ๊ธด๋‹ค.  ๋กœ์ปฌ์—์„œ๋Š” ๋˜์ง€๋งŒ, vercel์— ๋ฐฐํฌํ•˜๋ฉด ์„œ๋ฒ„๋ฆฌ์Šค ํ™˜๊ฒฝ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๊ตฌ์กฐ์ ์œผ๋กœ ์ด๋ฏธ์ง€ ๋‚˜ ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ํ•˜๋‚˜ ๋” ๋‘”๋‹ค. (์•„๋งˆ์กด์˜ S3 ๊ฐ™์€)๊ทธ์น˜๋งŒ ๋‚˜๋Š” ์ด๋ ‡๊ฒŒ ํ•˜๊ธฐ ์‹ซ์—ˆ๋‹ค. ๋ฒˆ๊ฑฐ๋กญ๊ณ  ์ด๋ฏธ์ง€ ์„œ๋ฒ„๋Š” ๋” ์„œ๋น„์Šค๊ฐ€ ์ปค์ง€๋ฉด ๋„์ž…ํ•˜๊ณ  ์‹ถ์—ˆ๊ธฐ ๋–„๋ฌธ์ด๋‹ค(๋ฌผ๋ก  ํ•ด๋ณด๋Š” ๊ฒฝํ—˜๋„ ์ข‹์„๊ฒƒ์ด๊ณ  ๋‚˜์ค‘์— ์„œ๋น„์Šค๋ฅผ ๋” ๋งŒ๋“ค๋‹ค๋ณด๋ฉด ์–ธ์  ๊ฐ€ ํ•˜๊ฒŒ๋˜๋ฆฌ๋ผ๋Š” ์ƒ๊ฐ์ด ์žˆ๋‹ค. ) ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•ด์„œ ์‹œ๋„ํ•ด๋ณด์•˜๋‹ค. https://vercel.com/guides/how-can-i-use-files-in-serverless-functionshttps://vercel.com..

์นจ์ฐฉ๋งจ ๋กœ๋˜ ๋ถ„์„์—์„œ ์˜๊ฐ๋ฐ›์•„ ๋กœ๋˜๋ฒˆํ˜ธ ์ƒ์„ฑ๊ธฐ ๋งŒ๋“ค์–ด ๋ฐฐํฌํ•˜๊ธฐ

ํ›„๋”ฑ ๋งŒ๋“ค์–ด๋ณธ ๋กœ๋˜๋ฒˆํ˜ธ์ƒ์„ฑ๊ธฐ๋ญ”๊ฐ€ ๊ฒฝ์ œ์  ์ž์œ ๋ฅผ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํˆฌ์ž, ๋กœ๋˜, ๋ถ€์—…, ์„ธ๊ธˆ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ๋„์™€์ฃผ๋Š” ๊ณ„์‚ฐ๊ธฐ ํ”Œ๋žซํผ ๊ฐ™์ด ํ™•์žฅ์‹œ์ผœ๋ณด๊ณ ์ž ํ•œ๋‹ค. ๋ญ ์ด๊ฒƒ์ €๊ฒƒ ํ•˜๋‹ค๋ณด๋ฉด ๊นจ๋‹ซ๋Š”๊ฒŒ ์žˆ์ง€ ์•Š์„๊นŒ?๋žœ๋ค์œผ๋กœ 6๊ฐœ ์ˆซ์ž๋ฅผ ๋ฝ‘๋Š”๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ 1,2,3,4,5,6์„ ๋ฝ‘์„๋ฆฌ๋Š” ์—†๊ณ ์˜ˆ์ „์— ์นจ์ฐฉ๋งจ์ด ๋กœ๋˜ ๋ฒˆํ˜ธ ์—ฐ๊ตฌํ•˜๋Š” ๊ฒƒ์—์„œ ์˜๊ฐ์„ ๋ฐ›์•˜๋‹ค. ์ทจํ•  ๊ฒƒ๋งŒ ์ทจํ•˜๊ณ  ๋ฒ„๋ฆด๊ฑด ๋ฒ„๋ฆฌ๋ ค๊ณ ์ผ๋‹จ 1๋ฒˆ๋Œ€ 20๋ฒˆ๋Œ€ 30๋ฒˆ๋Œ€๋Š” ๋ฌด์กฐ๊ฑด ํ•˜๋‚˜ ์ด์ƒ ํฌํ•จํ•œ๋‹ค10, 40๋ฒˆ๋Œ€๋Š” 1๊ฐœ ์ดํ•˜๋กœ ๋ฝ‘๋Š”๋‹ค ๋‚˜๋จธ์ง€๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์ˆซ์ž ์ค‘์—์„œ ๋žœ๋ค์œผ๋กœ ๋ฝ‘์•„ ์ตœ์ข… 6๊ฐœ๋ฅผ ๋งŒ๋“ ๋‹ค, 1๋ฒˆ๋Œ€ 20๋ฒˆ๋Œ€ 30๋ฒˆ๋Œ€๋Š” ๋ฌด์กฐ๊ฑด ํ•˜๋‚˜ ์ด์ƒ ํฌํ•จํ•œ๋‹คconst num1 = Math.floor(Math.random() * 9) + 1; // 1๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ˆซ์žconst num20 ..

nextjs ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ๊ตฌํ˜„ํ•˜๊ธฐ, ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์— ์‚ฌ์ดํŠธ ๋“ฑ๋ก

nextjs์—์„œ ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ๊ตฌํ˜„ํ•˜๊ธฐ 1. ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ๋กœ๊ทธ์ธhttps://console.cloud.google.com/ Google ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ๋กœ๊ทธ์ธ Google ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์œผ๋กœ ์ด๋™accounts.google.com   2. New Project ๋งŒ๋“ค๊ธฐ์ด๋ฆ„ ์ž…๋ ฅ ํ›„ create   3. API ๋ฉ”๋‰ด๋กœ ์ ‘์† - OAuth consent screen์œผ๋กœ ์ ‘์†  4. ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ•ด๋‹น ์นธ์„ ์ฑ„์šด๋‹ค. ๊ตฌ๊ธ€๋กœ๊ทธ์ธํ• ๋•Œ ๋ณด์ด๋Š” ํ™”๋ฉด ๊ตฌ์„ฑ   5. Credentials - Create Credentials - Oauth Client ID   6. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ณ„์† ์ง„ํ–‰  7. ์ €์žฅํ•˜๋ฉด ๋‚˜์˜ค๋Š” Client id ๋ณต์‚ฌํ•ด์„œ .env.local์— ์ €์žฅํ•œ๋‹ค.   .env.localGOOGLE_CLIENT_ID ..

[react-icon] nextjs์—์„œ ์•„์ด์ฝ˜ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ (๋ฌด๋ฃŒ)

๊ตฌ๊ธ€๋กœ๊ทธ์ธ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜, ๋žœ๋”ฉํŽ˜์ด์ง€๋ฅผ ๊พธ๋ฐ€๋•Œ ์•„์ด์ฝ˜์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข…์žˆ๋‹ค. ์ œ์ผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ react-icons๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.  https://react-icons.github.io/react-icons React Icons react-icons.github.io  ์›ํ•˜๋Š” ์•„์ด์ฝ˜์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋ณต์‚ฌ ํ›„ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜๋ฉด ๋œ๋‹ค.    ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. import { BiCoinStack } from "react-icons/bi"; ์‹ค์ œ ์ ์šฉํ•œ ์˜ˆ์‹œ div className="bg-white dark:bg-gray-800 rounded-2xl shadow-xl overflow-hidden transform hover:scale-105 transition-transform duration..

NEXTAUTH_SECRET ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋ฒ• (NextAuth)

NEXTAUTH_SECRET ์–ป๋Š” ๋ฒ•์€ ์•„์ฃผ ์‰ฝ๋‹คํ„ฐ๋ฏธ๋„์—์„œ $ openssl rand -base64 32 ์ˆ˜ํ–‰ํ•˜๋ฉด ๋‚˜์˜ค๋Š” ๊ฐ’์„ ๋ณต์‚ฌํ•ด .env.local์— ๋„ฃ์œผ๋ฉด ๋œ๋‹ค.  vercel์— deplpyํ•  ๋•Œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ๋กํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์žŠ์ง€๋ง์ž! ์ถœ์ฒ˜ https://next-auth.js.org/configuration/options#nextauth_secret