Su
@jeongyongsu53660225
Students
-
Reviews
-
Course Rating
-
Posts
Q&A
๊ฐ์ 05 ๋๋น...์ง๋ฌธ๋๋ ค์
์๋ ํ์ธ์, Busan๋. ๋ฌธ์ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋จผ์ , ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ด ๊ฐ์ฅ ํจ๊ณผ์ ์ผ ๊ฒ์ผ๋ก ์๊ฐ๋ฉ๋๋ค. ์ฐธ๊ณ ํด์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค! ์ค๋๋ ์ข์ ํ๋ฃจ ๋ณด๋ด์ธ์ ๐๐ Prisma Migrate๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์ด๊ทธ๋ ์ด์ ์ ์งํํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฏธ๋ฆฌ ์์ฑ๋์ด ์์ง ์์๋ Prisma๋ ์ค์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค URL์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ ์ ์๋ ๊ถํ์ด ์์ด์ผ ๊ฐ๋ฅํฉ๋๋ค..env ํ์ผ์ ๋ช ์๋ DATABASE_URL์ ๋ํด ๋ช ๊ฐ์ง ํ์ธํด์ผ ํ ์ฌํญ์ด ์์ต๋๋ค: 1. .env ํ์ผ์ DATABASE_URL์์ ๋ ๊ฐ์ @๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. root:12341234@localhost:3306/issue-management ํ์์ด ์ฌ๋ฐ๋ฅธ ํ์์ ๋๋ค.2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ํ์ดํ(`-`)์ด ํฌํจ๋ ๊ฒฝ์ฐ, ๋ช ๋ น์ค์์ MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ ๋ ์ด๋ฆ์ ๋ฐฑํฑ(`)์ผ๋ก ๊ฐ์ธ์ผ ํฉ๋๋ค. ํ์ง๋ง .env ํ์ผ ๋ด์์๋ ๋ฐฑํฑ์ ์ฌ์ฉํ์ง ์์๋ ๋ฉ๋๋ค.3. ์๋์ฐ์์ MySQL์ ์ฌ์ฉํ ๋๋ ๋๋๋ก ๋ช ๋ น์ค์ ๊ฒฝ๋ก์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ก ์ธํด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด MySQL ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.4. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์๊ฒ ์ ์ ํ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ, Prisma Migrate๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.์ด๋ ๊ฒ ์ค์ ํ์ npx prisma migrate๋ฅผ ์คํํ๋ฉด, Prisma๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋์ผ๋ก ์์ฑํ๊ณ , ๋ง์ด๊ทธ๋ ์ด์ ํ์ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉํ์ฌ ํ ์ด๋ธ๊ณผ ์คํค๋ง๋ฅผ ๋ง๋ค์ด๋ ๋๋ค.
- 0
- 2
- 389
Q&A
ํ ์ผ์๋ ์๋์ ๋ ฌ
์๋ ํ์ธ์ Gyeongdeok๋,๋ค ๋ง์ต๋๋ค ํ์ฌ ์ ๋ ฌ์๋ prettier-plugin-tailwindcss๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค! ์ง๋ฌธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
- 0
- 1
- 368
Q&A
๊ฐ์์ฒ ํ์๋ด๋ฉ์ผ์ ๋ฐ์์ต๋๋ค
์๋ ํ์ธ์, ๋ฏผํ๋. ๋จผ์ , ์ด๋ฒ ์ผ๋ก ๋ถํธ์ ๋๋ฆฐ ์ ์ง์ฌ์ผ๋ก ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ๊ฒฐ์ ํ์ ๊ธ์ก์ ๊ฐ๋ฅํ ํ ๋น ๋ฅด๊ฒ ํ๋ถ ์ฒ๋ฆฌ๋ ์์ ์์ ์๋ ค๋๋ฆฝ๋๋ค. ๋ํ, ๋ง์ฝ ๊ด์ฐฎ์ผ์๋ค๋ฉด ์๋์ ์ ์ด๋ฉ์ผ ์ฃผ์๋ก ์ฐ๋ฝ ์ฃผ์๋ฉด, ๋ ธ์ ํด๋ก ๊ฐ์ ์์์ด ๋ด๊ธด ๋งํฌ๋ฅผ ๊ฐ์ธ์ ์ผ๋ก ์ ๋ฌํด ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ด๋ฒ ์ผ๋ก ๋ถํธ์ ๊ฒช์ผ์ ์ ๋ค์ ํ๋ฒ ์ฌ๊ณผ์ ๋ง์์ ์ ํฉ๋๋ค.์ด๋ฉ์ผ: cozyblank5266@gmail.com
- 1
- 1
- 572
Q&A
๋ก๊ทธ์ธ ๋ก๊ทธ์์ ๋ฌธ์
์๋ ํ์ธ์ ํฉ์ ์ฐ๋!๋ก๊ทธ์์์ด ์ ๋๋ก ์๋ํ์ง ์๋ ๋ฌธ์ ๋ ์ฌ๋ฌ ์์ธ์ผ๋ก ์ธํด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ ๊ณตํด์ฃผ์ ์ฝ๋๋ฅผ ๋ฐํ์ผ๋ก, ๋ช ๊ฐ์ง ๊ฐ๋ฅํ ์์ธ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ์๋๋ฆฌ๊ฒ ์ต๋๋ค.1. ์บ์ ๋ฐ ์ฟ ํค ๊ด๋ฆฌ: ๋ก๊ทธ์์์ด ์ด๋ฃจ์ด์ง ํ์๋ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์ ์บ์๋์ด ์๋ ์ฟ ํค๋ ์ธ์ ์ ๋ณด ๋๋ฌธ์ ๋ก๊ทธ์์์ด ์ ๋๋ก ๋ฐ์๋์ง ์์ ์ ์์ต๋๋ค.ํด๊ฒฐ ๋ฐฉ๋ฒ: ๋ก๊ทธ์์ ์ฒ๋ฆฌ ํ ๋ธ๋ผ์ฐ์ ์์ ์บ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ๋ก ์ ๊ฑฐํ๋๋ก ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ก๊ทธ์์ ํ ํ์ด์ง๋ฅผ ๊ฐ์ ๋ก ์๋ก๊ณ ์นจํ๊ฑฐ๋, ์๋ฒ ์ธก์์ ์ฟ ํค์ Expires ์์ฑ์ ๊ณผ๊ฑฐ๋ก ์ค์ ํ์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฟ ํค๋ฅผ ์๋์ผ๋ก ์ ๊ฑฐํ๋๋ก ํ ์ ์์ต๋๋ค.2. ์๋ฒ ์ฌ์ด๋ ๋ก์ง ํ์ธ: ๋ก๊ทธ์์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์๋ฒ ์ฌ์ด๋ ๋ก์ง์ด ์ ๋๋ก ๊ตฌํ๋์ด ์๋์ง ํ์ธํ์ธ์. ๋ก๊ทธ์์ ์์ฒญ์ด ๋ค์ด์์ ๋, ์ธ์ ์ ๋ฌดํจํํ๊ณ , ์ฟ ํค๋ฅผ ์ ๊ฑฐํ๋ฉฐ, ํ์ํ ๊ฒฝ์ฐ CORS(Cross-Origin Resource Sharing) ์ ์ฑ ์ ์ ์ ํ ์ฒ๋ฆฌํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค.3. ๋คํธ์ํฌ ์์ฒญ ํ์ธ: ๊ฐ๋ฐ์ ๋๊ตฌ์ ๋คํธ์ํฌ ํญ์ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์์ ์์ฒญ์ด ์ค์ ๋ก ์๋ฒ์ ์ ์ก๋์๋์ง, ๊ทธ๋ฆฌ๊ณ ์๋ฒ๋ก๋ถํฐ ์ด๋ค ์๋ต์ ๋ฐ์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์์ฒญ์ด ์์๋๋ก ์ฒ๋ฆฌ๋๊ณ ์๋์ง, ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๋ฉด ์ด๋ค ๋ถ๋ถ์์ ๋ฐ์ํ๋์ง ์ข ๋ ๊ตฌ์ฒด์ ์ผ๋ก ํ์ ํ ์ ์์ต๋๋ค.์์ ์ ๊ฒ ์ฌํญ์ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ง์ฝ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์๋๋ค๋ฉด, ๋ก๊ทธ์์ ์ฒ๋ฆฌ ๊ณผ์ ์์์ ์ธ๋ถ์ ์ธ ๋ก์ง์ด๋ ์๋ฒ ์ฌ์ด๋์ ๊ตฌํ์ ๋ํ ์ถ๊ฐ์ ์ธ ์ ๋ณด๊ฐ ํ์ํ ์ ์์ต๋๋ค. ์ฐธ๊ณ ํด์ฃผ์ธ์! ๊ถ๊ธํ๊ฒ ์์ผ์๋ฉด ์ธ์ ๋ ํธํ๊ฒ ์ง๋ฌธํด์ฃผ์ธ์! ๊ฐ์ฌํฉ๋๋ค!! ์ค๋๋ ์ข์ ํ๋ฃจ ๋ณด๋ด์ธ์!!
- 1
- 2
- 449
Q&A
์์ค ์ฝ๋
์๋ ํ์ธ์, asuralord๋. ๋จผ์ , ์ด์ฉ์ ๋ถํธ์ ๋๋ฆฐ ์ ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ๊ธํ๊ฒ ์์ ์๋ฃ๋ฅผ ์ ๊ณตํด๋๋ฆฌ๊ธฐ ์ํด ์ฌ์ฉํ ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ ์ฃผ์๋ฅผ ๊ณต์ ๋๋ ธ์ต๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ ์๋ด๋๋ฆฌ๋ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:- my-next-app: ์ด ํด๋์๋ ์์ ์์ ์ฌ์ฉ๋ ์ฝ๋๋ฅผ ์ ์ฒด์ ์ผ๋ก ๋ชจ์๋ ๊ณณ์ ๋๋ค.- README: ์ด ํด๋์๋ ๊ฐ ์์ ๋ณ๋ก ์ฃผ์์ด ๋ฌ๋ฆฐ ์ฝ๋๋ฅผ ์ ๋ฆฌํด๋ ๊ณณ์ ๋๋ค.๋ถํธ์ ๋๋ฆฐ ์ ๋ค์ ํ๋ฒ ์ฌ๊ณผ๋๋ฆฌ๋ฉฐ, ์ต๋ํ ๋น ๋ฅด๊ฒ ์ ์ฒด ๋ด์ฉ์ ์ ๋ฐ์ดํธํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ฐ์๋ฅผ ์ฐพ์์ฃผ์ ์ ์ง์ฌ์ผ๋ก ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ, ์ค๋๋ ํ๋ณตํ ํ๋ฃจ ๋์๊ธธ ๋ฐ๋๋๋ค!!https://github.com/jos50275266/yongsu-nextjs-course
- 1
- 1
- 309
Q&A
์ด์ ์ญ์ API delete ์์ฒญ ์ค๋ฅ ๋ฐํ
์๋ ํ์ธ์ dbcksrlas๋! ์ง๋ฌธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ฐ์ ํด๋น 405 Method Not Allowed ์ค๋ฅ๋ ์๋ฒ๊ฐ ์์ฒญ๋ฐ์ ๋ฉ์๋๋ฅผ ์ธ์ํ์ง๋ง ์ง์ํ์ง ์์ ๋ ๋ฐ์ํฉ๋๋ค. Next.js์์ API ๋ผ์ฐํธ๋ฅผ ์ฌ์ฉํ์ฌ DELETE ์์ฒญ์ ์ฒ๋ฆฌํ๋ ค๊ณ ํ ๋ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋๋ฐ, ์ด๋ ๋ณดํต API ๋ผ์ฐํธ์์ ํด๋น HTTP ๋ฉ์๋๋ฅผ ๋ช ์์ ์ผ๋ก ์ฒ๋ฆฌํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ค.์๋ ๊ณต์ ๋ฌธ์์์ ์๊ฐํ๋ฏ์ด Next.js๋ GET, POST, PUT, PATCH, DELETE, HEAD, ๊ทธ๋ฆฌ๊ณ OPTIONS์ ๊ฐ์ ์ฌ๋ฌ HTTP ๋ฉ์๋๋ฅผ ์ง์ํฉ๋๋ค. ๋ง์ฝ ์ง์ํ์ง ์๋ ๋ฉ์๋๋ก ์์ฒญ์ด ๋ค์ด์ฌ ๊ฒฝ์ฐ, Next.js๋ 405 Method Not Allowed ์๋ต์ ๋ฐํํฉ๋๋ค.์ด ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก, DELETE ์์ฒญ์ ๋ํด 405 Method Not Allowed ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ผ ์ ์์ต๋๋ค:1. ๋ผ์ฐํธ ํธ๋ค๋ฌ์์ DELETE ๋ฉ์๋ ์ฒ๋ฆฌ ๋๋ฝ: ์์ฒญ์ ๋ฐ๋ API ๋ผ์ฐํธ ํธ๋ค๋ฌ์์ DELETE ๋ฉ์๋๋ฅผ ๋ช ์์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ก์ง์ด ์๊ฑฐ๋ ์๋ชป ๊ตฌํ๋์์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์, ๋ผ์ฐํธ ํธ๋ค๋ฌ ๋ด์์ ๋ชจ๋ ์ง์๋๋ ๋ฉ์๋์ ๋ํด ์ ์ ํ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.2. ์คํ ๋๋ ๊ตฌ์ฑ ์ค๋ฅ: ๋๋๋ก ๋จ์ํ ์คํ๋ ๊ตฌ์ฑ ์ค๋ฅ๋ก ์ธํด ์์์น ๋ชปํ ๋์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ผ ์ด๋ฆ, ๊ฒฝ๋ก, ๋๋ ๋ฉ์๋ ์ด๋ฆ์์์ ์คํ๋ DELETE ์์ฒญ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋์ง ์๊ฒ ํ ์ ์์ต๋๋ค.3. ์ค๊ฐ ๋ฏธ๋ค์จ์ด ๋๋ ํ๋ก์ ์๋ฒ์ ์ํฅ: ๋คํธ์ํฌ ๊ฒฝ๋ก์์ ์๋ ๋ฏธ๋ค์จ์ด๋ ํ๋ก์ ์๋ฒ๊ฐ ํน์ HTTP ๋ฉ์๋๋ฅผ ์ฐจ๋จํ๊ฑฐ๋ ์์ ํ ์ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ, ํด๋น ๋คํธ์ํฌ ๊ตฌ์ฑ ์์์ ์ค์ ์ ํ์ธํด์ผ ํ ์ ์์ต๋๋ค.4. ๊ฐ๋ฐ ํ๊ฒฝ ๋๋ ๋ฐฐํฌ ํ๊ฒฝ์ ์ฐจ์ด: ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ง๋ง, ๋ฐฐํฌ๋ ํ๊ฒฝ์์๋ง 405 Method Not Allowed ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ, ํ๊ฒฝ ๊ฐ์ ์ค์ ์ฐจ์ด(์: ๋ณด์ ์ ์ฑ , ๋คํธ์ํฌ ๊ตฌ์ฑ ๋ฑ)๋ฅผ ํ์ธํด์ผ ํ ์ ์์ต๋๋ค.์ด๋ฌํ ๊ฐ๋ฅ์ฑ๋ค์ ๊ฒํ ํ์๊ณ , ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ํ ์กฐ์น๋ฅผ ์ทจํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ๋ฌธ์ ๊ฐ ์ง์๋๋ฉด, ๊ตฌ์ฒด์ ์ธ ์ฝ๋ ์์์ ํจ๊ป ์ถ๊ฐ์ ์ธ ์ง๋ฌธ์ ์ฃผ์๋ฉด ๋ ๊ตฌ์ฒด์ ์ธ ํด๊ฒฐ ๋ฐฉ์์ ์ ๊ณตํ ์ ์์ ๊ฒ์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ์ค๋๋ ์ข์ ํ๋ฃจ ๋ณด๋ด์ธ์ ๐ธ๐ธ (์ฌ์ง)
- 2
- 1
- 741
Q&A
vercel ๋ฐฐํฌํ ๋ฉ์ธํ์ด์ง ๋ฐ์ดํฐ ์ฐ๋์ด ์๋ฉ๋๋ค
์๋ ํ์ธ์ ์ง์๋, ๊ฐ์๋ฅผ ์ฆ๊ฒ๊ฒ ๋ค์ด์ฃผ์ ์ ์ง์ฌ์ผ๋ก ๊ฐ์ฌ๋๋ฆฝ๋๋ค๐ธ๐ธ ๋ง์ง๋ง ๋ถ๋ถ์์ ์ธ๊ธํ์ง ๋ชปํ ๋ด์ฉ์ด ์์ด ์ถ๊ฐ ์๋ด๋๋ฆฝ๋๋ค. ์๋์ ์ฝ๋๋ฅผ ์ถ๊ฐํ์๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๊ฒ์ ๋๋ค. ๊ท์คํ ํผ๋๋ฐฑ์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ํ, ๊ณง ์ ๋ก๋๋ Notion ํด๋ก ์์ ์๋ ๋ง์ ๊ด์ฌ ๋ถํ๋๋ฆฝ๋๋ค!! ์ข์ ๋ฐค ๋ณด๋ด์ธ์๐ธ๐ธ app/page.tsx ํ์ผ์ export const dynamic = "force-dynamic"; ์ฝ๋๋ฅผ ์ถ๊ฐํด ์ฃผ์๋ฉด ๋ฉ๋๋ค. ์ด ๋ถ๋ถ์ ๋ฏธ๋ฆฌ ์๋ ค๋๋ฆฌ์ง ๋ชปํด ๋ถํธ์ ๋๋ฆฐ ์ ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ์์ผ๋ก๋ ๋์ฑ ์ธ์ฌํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ฌ ์๋ด๋๋ฆฌ๊ฒ ์ต๋๋ค. // app/page.js //... export const dynamic = "force-dynamic"; // ๋ฉํ๋ฐ์ดํฐ ์์ ์ถ๊ฐํ์๋ฉด๋ฉ๋๋ค!! // export const metadata: Metadata = { // title: "Issue Tracker - Dashboard", // description: "View a summary of project issues", // };
- 1
- 1
- 522
Q&A
SSR CSR
์๋ ํ์ธ์, jwb449730๋! ์ง๋ฌธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ธ์ ๋ ์ง ๊ถ๊ธํ ์ ์ด ์์ผ์๋ฉด ํธํ๊ฒ ๋ฌธ์ํด์ฃผ์ธ์. ๋ค์ ๊ฐ์๋ก๋ 'Notion ํด๋ก '์ ์ค๋นํ๊ณ ์์ผ๋, ์ด์ ๋ํ ๋ง์ ๊ธฐ๋์ ๊ด์ฌ ๋ถํ๋๋ฆฝ๋๋ค. ์ค๋๋ ์ฆ๊ฒ๊ณ ๋ณด๋์ฐฌ ํ๋ฃจ ๋์๊ธธ ๋ฐ๋๋๋ค๐ธ๐ธ. ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:page ๊ฐ์ ๊ฒฝ์ฐ๋ ์ต๋ํ SSR๋ก ํ๊ณ page ํ์์ ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ธ๋ผ์ฐ์ API ์ฌ์ฉํ๋ค๋ฉด CSR๋ก ํ๋๊ฒ ๋ง๋์? ( ํ์ด๋ธ๋ฆฌ๋ ๋ ๋๋ง ๋ฐฉ์ )๋ค ๋ง์ต๋๋ค!ํ์ด๋ธ๋ฆฌ๋ ๋ ๋๋ง์ ์น ํ์ด์ง์ ์ด๊ธฐ ๋ก๋ฉ์ ์ํด SSR(Server-Side Rendering)์ ์ฌ์ฉํ๊ณ , ํ์ด์ง ๋ด์์ ํน์ ๋์ ๊ธฐ๋ฅ์ด๋ ๋ธ๋ผ์ฐ์ API ์ฌ์ฉ์ด ํ์ํ ๋ถ๋ถ์ ๋ํด์๋ CSR(Client-Side Rendering)์ ์ฌ์ฉํ๋ ์ ๋ต์ ๋๋ค. ์ด ๋ฐฉ์์ ์ด๊ธฐ ํ์ด์ง ๋ก๋ฉ ์๋๋ฅผ ๊ฐ์ ํ๊ณ ๊ฒ์ ์์ง ์ต์ ํ(SEO)์ ์ ๋ฆฌํ๋ฉด์๋, ํด๋ผ์ด์ธํธ ์ธก์์์ ๋์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํฉ๋๋ค.SSR ์ฌ์ฉ ์ฌ๋ก (๋ธ๋ก๊ทธ ํฌ์คํธ ๋ชฉ๋ก): ์ฌ์ฉ์๊ฐ ๋ธ๋ก๊ทธ ํฌ์คํธ ๋ชฉ๋ก ํ์ด์ง์ ์ ๊ทผํ ๋, ์๋ฒ์์ ๋ชจ๋ ํฌ์คํธ๋ฅผ ๋ฏธ๋ฆฌ ๋ ๋๋งํ์ฌ ์ ์กํฉ๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ํ์ด์ง์ ์ ๊ทผํ๋ ์ฆ์ ๋ชจ๋ ํฌ์คํธ๋ฅผ ๋ณผ ์ ์๊ฒ ํด์ค ๋ฟ๋ง ์๋๋ผ, ๊ฒ์ ์์ง์ ์ํด ์ฝํ ์ธ ๊ฐ ์์ธ๋ ์ ์๋๋ก ํด์ค๋๋ค. CSR ์ฌ์ฉ ์ฌ๋ก (์ค์๊ฐ ๋๊ธ ์์คํ ): ๋์ผํ ๋ธ๋ก๊ทธ ํฌ์คํธ ๋ชฉ๋ก ํ์ด์ง ๋ด์์, ์ฌ์ฉ์๊ฐ ๋๊ธ์ ๋จ๊ธธ ์ ์๋ ์น์ ์ CSR์ ์ฌ์ฉํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๋๊ธ์ ์์ฑํ๊ณ ์ ์ถ ๋ฒํผ์ ๋๋ฅด๋ฉด, ํด๋น ๋๊ธ์ ํด๋ผ์ด์ธํธ ์ธก์์ ์๋ฒ๋ก ์ ์ก๋๊ณ , ํ์ด์ง์ ๋์ ์ผ๋ก ๋๊ธ์ด ์ถ๊ฐ๋ฉ๋๋ค. ์ด ๊ณผ์ ์ ์๋ฒ์์ ๋ ๋๋ง๋๋ ๋์ ์ฌ์ฉ์์ ์ํธ์์ฉ์ ์ํด ์ค์๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค.์ด์ฒ๋ผ ํ์ด๋ธ๋ฆฌ๋ ๋ ๋๋ง ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด, ์๋ฒ ์ธก์์์ ๋น ๋ฅธ ์ด๊ธฐ ๋ก๋์ ํด๋ผ์ด์ธํธ ์ธก์์์ ํ๋ถํ ์ํธ์์ฉ์ด๋ผ๋ ๋ ๊ฐ์ง ์ด์ ์ ๋ชจ๋ ํ์ฉํ ์ ์์ต๋๋ค. app/page.tsx ํ์ผ ์๋จ์ "use client" ์ ์ธํ๋ฉด ํ์ด์ง ์ ์ฒด๊ฐ CSR๋ก ๋๋ค๊ณ ์๊ฐํ๋๋ฐ ๋คํธ์ํฌ ์ฐฝ์ localhost์ preview๋ฅผ ๋ณด๋ฉด ๋น ํ์ด์ง๊ฐ ์๋ ๋ ๋๋ง๋ ๋ด์ฉ์ด ๋ณด์ด๋๋ฐ ์ ๊ทธ๋ฐ๊ฑธ๊น์? Next.js ๋๋ ์ ์ฌํ ํ๋ ์์ํฌ์์ app/page.tsx ํ์ผ ์๋จ์ "use client"๋ฅผ ์ ์ธํ๋ฉด, ํด๋น ํ์ด์ง๋ ํด๋ผ์ด์ธํธ ์ธก์์ ์ ์ ์ผ๋ก ๋ ๋๋ง๋ฉ๋๋ค. ์ด๋ ํ์ด์ง์ ๋ชจ๋ JavaScript ๊ธฐ๋ฐ ์ํธ์์ฉ๊ณผ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์ํ๋จ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋คํธ์ํฌ ํญ์์ ๋ ๋๋ง๋ ๋ด์ฉ์ด ๋ณด์ด๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค: ์ด๊ธฐ HTML ๊ตฌ์กฐ: ์๋ฒ์์๋ ํ์ด์ง์ ๊ธฐ๋ณธ HTML ๊ตฌ์กฐ๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ธ๋ผ์ฐ์ ๋ก ์ ์กํฉ๋๋ค. ์ด ์ด๊ธฐ HTML์ ํ์ด์ง์ ๊ธฐ๋ณธ ๋ ์ด์์์ด๋ ๊ฐ๋จํ ๋งํฌ์ ์ ํฌํจํ ์ ์์ผ๋ฉฐ, ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ์ฒ์ ๋ก๋ํ ๋ ๋ณด๊ฒ ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ ์ธก JavaScript์ ์ญํ : ๋ธ๋ผ์ฐ์ ์์ JavaScript๊ฐ ๋ก๋๋๊ณ ์คํ๋๋ฉด, ์ด ์ด๊ธฐ HTML ์์ ์ถ๊ฐ์ ์ธ ๋์ ์์์ ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋ฉ๋๋ค. ์ด ๊ณผ์ ์ 'ํ์ด๋๋ ์ด์ (Hydration)'์ด๋ผ๊ณ ํ๋ฉฐ, ์๋ฒ์์ ๋ฐ์ ๊ธฐ๋ณธ HTML์ด ํด๋ผ์ด์ธํธ ์ธก์ ์ํธ์์ฉ์ ์ํด ๊ฐฑ์ ๋๊ณ ํ์ฅ๋ฉ๋๋ค. ์์์ ์ํฉ ์ค๋ช : ์๋ฅผ ๋ค์ด, "use client"๋ก ์ ์ธ๋ ๋์๋ณด๋ ํ์ด์ง๋ ์ฒ์์ ์๋ฒ์์ ์ ์ก๋ ๊ธฐ๋ณธ HTML ๋ ์ด์์์ ๋ณด์ฌ์ค๋๋ค. ์ดํ ํด๋ผ์ด์ธํธ ์ธก JavaScript๊ฐ ๋ก๋๋์ด ํ์ด์ง์ ์ฌ์ฉ์์ ๋์๋ณด๋ ๋ฐ์ดํฐ๋ ์ธํฐ๋ํฐ๋ธํ ์์๋ค์ ์ถ๊ฐํฉ๋๋ค. ๋คํธ์ํฌ ํญ์์๋ ์ด ์ด๊ธฐ HTML ๊ตฌ์กฐ๊ฐ ๋ณด์ด์ง๋ง, ํ์ด์ง์ ์ ์ฒด ๊ธฐ๋ฅ์ฑ์ ํด๋ผ์ด์ธํธ ์ธก JavaScript์ ์ํด ์ ๊ณต๋ฉ๋๋ค.๊ฒฐ๋ก ์ ์ผ๋ก, "use client" ์ ์ธ์ ํ์ด์ง๊ฐ ํด๋ผ์ด์ธํธ ์ธก์์ ์์ ํ ๋ ๋๋ง๋๋๋ก ์ง์ํ์ง๋ง, ์ฌ์ฉ์ ๊ฒฝํ์ ์ํด ์ด๊ธฐ ์๋ฒ์์ ์์ฑ๋ HTML ๊ตฌ์กฐ๊ฐ ๋จผ์ ํ์๋ ์ ์์ต๋๋ค.
- 0
- 1
- 516
Q&A
Prisma.issue.findMany๋ผ์ฐํฐ ๊ฐ ์๋ ํ์ด์ง์์ ์ฌ์ฉ ( in 60. ์ด์ ํํฐ๋ง ๊ธฐ๋ฅ ๊ตฌํ )
์๋ ํ์ธ์, ์ด๋ฏผํ๋! ๊ฐ์์ ๋ํ ๊พธ์คํ ๊ด์ฌ๊ณผ ์ง๋ฌธ์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ธ์ ๋ ์ง ๊ถ๊ธํ ์ ์ด ์์ผ์๋ฉด ํธํ๊ฒ ๋ฌธ์ํด์ฃผ์ธ์. ๋ค์ ๊ฐ์๋ก๋ 'Notion ํด๋ก '์ ์ค๋นํ๊ณ ์์ผ๋, ์ด์ ๋ํ ๋ง์ ๊ธฐ๋์ ๊ด์ฌ ๋ถํ๋๋ฆฝ๋๋ค. ์ค๋๋ ์ฆ๊ฒ๊ณ ๋ณด๋์ฐฌ ํ๋ฃจ ๋์๊ธธ ๋ฐ๋๋๋ค๐ธ๐ธ.์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:์ฐ์ ์ ๋ฐฉ์์ ์ ์ ํ๋ค๊ณ ํ๋จ๋ฉ๋๋ค. ์ด๋ Next.js์ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR) ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ, ํ์ด์ง ๋ก๋ ์ ์๋ฒ์์ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ ๋๋ค. ์ด ๋ฐฉ์์ ์ด๊ธฐ ํ์ด์ง ๋ก๋ฉ ์ ์ฌ์ฉ์์๊ฒ ๋ ๋น ๋ฅธ ์ฝํ ์ธ ์ ๊ณต, ๊ฐ์ ๋ ๊ฒ์ ์์ง ์ต์ ํ(SEO), ๊ทธ๋ฆฌ๊ณ ์๋ฒ ์ธก์์ ๋ฐ์ดํฐ ์ ๊ทผ ๋ก์ง์ ์ฒ๋ฆฌํจ์ผ๋ก์จ ๋ณด์์ ๊ฐํํ๋ ์ฅ์ ์ ๊ฐ์ง๋๋ค. ํ์ ์์๋ Next.js์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์์ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐฉ์์ ๋๋ค. ์์ธํ ์ค๋ช ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:1. ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ํ์ฉ: IssuesPage ์ปดํฌ๋ํธ๋ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ๋ฐฉ์์ผ๋ก ๊ตฌํ๋์ด ์์ต๋๋ค. ์ด๋ ์๋ฒ์์ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ํจ์ ๋ด์์ Prisma ORM์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ฅผ ์ํํ๊ณ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์, ๋ฐํํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ ํต์ ์ธ ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ์์ ๋ฐ์ํ๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ API ์๋ํฌ์ธํธ ์์ฒญ ๊ณผ์ ์ ๋จ์ถ์ํต๋๋ค.2. ์ฑ๋ฅ ๋ฐ ์ฌ์ฉ์ ๊ฒฝํ ํฅ์: ์ด๊ธฐ ํ์ด์ง ๋ก๋ฉ ์ ์๋ฒ์์ ์ด๋ฏธ ๋ฐ์ดํฐ๋ฅผ ํฌํจ์์ผ ๋ก๋ฉํ๊ธฐ ๋๋ฌธ์, ํด๋ผ์ด์ธํธ ์ธก์์ ์ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ ์์ฒญ์ด ํ์ ์์ต๋๋ค. ์ด๋ ํ์ด์ง ๋ก๋ฉ ์๊ฐ์ ์ค์ด๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํฉ๋๋ค. ๋ณด์ ๊ฐํ: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ ๋ก์ง์ ์๋ฒ ์ฌ์ด๋์์ ์ฒ๋ฆฌํจ์ผ๋ก์จ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์ ๋ณด์ ์ํ์ ์ค์ ๋๋ค. ๋ํ, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๋ก์ง์ ๋ถ๋ฆฌ๊ฐ ๋ช ํํด์ง๋ฏ๋ก ์ฝ๋์ ์ ์ง ๋ฐ ๊ด๋ฆฌ๊ฐ ๋ ์ฉ์ดํด์ง๋๋ค.ํ์ ์์์ ์ฌ์ฉ SSR๊ณผ SSG์ ํ์ฉ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง (SSR): SSR์ ์๋ฒ์์ ํ์ด์ง์ ์ ์ฒด HTML์ ๋ ๋๋งํ๊ณ , ์ด๋ฅผ ํด๋ผ์ด์ธํธ๋ก ์ ์กํ๋ ๋ฐฉ์์ ๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ์์ฒญ์ ๋ณด๋ผ ๋๋ง๋ค ์ค์๊ฐ์ผ๋ก ํ์ด์ง๋ฅผ ์์ฑํฉ๋๋ค.์ ์ ์ฌ์ดํธ ์์ฑ (SSG): SSG๋ ๋น๋ ํ์์ ๋ชจ๋ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํ๊ณ ์ ์ ํ์ผ๋ก ์ ์ฅํ๋ ๋ฐฉ์์ ๋๋ค. ์ฌ์ฉ์์ ์์ฒญ์ ๋ํด ์ด๋ฏธ ์์ฑ๋ ์ ์ ํ์ด์ง๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ ํฉํ ์ํฉSEO๊ฐ ์ค์ํ ์ฌ์ดํธ: SSR๊ณผ SSG๋ ๊ฒ์ ์์ง์ด ์ฝํ ์ธ ๋ฅผ ๋ ์ ์ธ๋ฑ์ฑํ ์ ์๊ฒ ์์ ํ ๋ ๋๋ง๋ ํ์ด์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.์ด๊ธฐ ๋ก๋ฉ ์ฑ๋ฅ ๊ฐ์ : ํนํ SSR์ ์ฌ์ฉ์์๊ฒ ๋น ๋ฅด๊ฒ ์์ฑ๋ ํ์ด์ง๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ, ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.๋ณด์ ๊ฐํ: ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ฒ๋ฆฌํจ์ผ๋ก์จ ํด๋ผ์ด์ธํธ ์ธก์ ๋ณด์ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค. ์ ํฉํ์ง ์์ ์ํฉ์ค์๊ฐ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ์ฌ์ดํธ: ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ , ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ์๋น์ค ๋ฑ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ๋ฐ์ดํธ๋์ด์ผ ํ๋ ์ฌ์ดํธ์ ๊ฒฝ์ฐ, SSR๊ณผ SSG๋ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ๋ฐ์ดํฐ๋ฅผ ๋์ ์ผ๋ก ๋ถ๋ฌ์ค๋ ๋ฐฉ์์ด ๋ ์ ์ ํฉ๋๋ค.๊ฒฐ๋ก SSR๊ณผ SSG๋ Next.js์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ๋ ๋ง์ ์ด์ ์ ์ ๊ณตํ์ง๋ง, ๋ชจ๋ ์ ํ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ ๊ฒ์ ์๋๋๋ค. ํนํ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ์๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ๋์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๋ ๋ฐฉ์์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ํ๋ก์ ํธ์ ์๊ตฌ์ฌํญ๊ณผ ๋ชฉํ์ ๋ง๊ฒ ์ ์ ํ ๋ ๋๋ง ๋ฐฉ์์ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- 1
- 1
- 273
Q&A
์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ด ๋ฐ์ํ๋ ์ด์
์๋ ํ์ธ์ kimgni.dev๋, ์ง๋ฌธํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!! ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฝ๋๋ฅผ ๋ณด๋ด์ฃผ์๋ฉด ๋ฉด๋ฐํ ๊ฒํ ๊ฐ ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค!! ์ผ๋ฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ๊ฐ ์๋ฒ ์ปดํฌ๋ํธ๋ก ๋ ๋๋ง๋๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. 1. ์๋ชป๋ ์ปดํฌ๋ํธ ๊ตฌ์ฑ: ์ปดํฌ๋ํธ๊ฐ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์ ์ฉ์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ง ์์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Next.js์ dynamic() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฌ์ฌ ๋ { ssr: false } ์ต์ ์ด ํฌํจ๋์ด ์๋์ง ํ์ธํ์ธ์. 2. ์ธ๋ถ ๋ฐ์ดํฐ ์์กด์ฑ: ์ปดํฌ๋ํธ๊ฐ ์๋ฒ ์ฌ์ด๋์์ ํ์ํ ์ธ๋ถ ๋ฐ์ดํฐ์ ์์กดํ๊ณ ์์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ, ์ปดํฌ๋ํธ๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ๋ ๋๋ง๋๊ธฐ ์ ์ ์๋ฒ ์ฌ์ด๋์์ ๋จผ์ ๋ ๋๋ง๋ ์ ์์ต๋๋ค. 3. ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ์ํฅ: ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, ์์ ์ปดํฌ๋ํธ ์ญ์ ์ํฅ์ ๋ฐ์ ์ ์์ต๋๋ค. ์ปดํฌ๋ํธ ํธ๋ฆฌ ์ ์ฒด๋ฅผ ํ์ธํ์ฌ ์ด๋ ๋ถ๋ถ์์ SSR์ด ๋ฐ์ํ๋์ง ํ์ ํด์ผ ํฉ๋๋ค. 4. ์๋ฒ ์ฌ์ด๋ ๋ก์ง: ์ปดํฌ๋ํธ ๋ด๋ถ๋ ๊ด๋ จ ๋ชจ๋์์ ์๋ฒ ์ฌ์ด๋์์๋ง ์คํ๋๋ ์ฝ๋๊ฐ ์๋์ง ํ์ธํ์ธ์. ์๋ฅผ ๋ค์ด, window๋ document์ ๊ฐ์ ๋ธ๋ผ์ฐ์ ์ ์ฉ ๊ฐ์ฒด์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ, ์ด๋ฌํ ์ฝ๋๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์๋ง ์คํ๋์ด์ผ ํฉ๋๋ค. 5. ๋น๋ ๋ฐ ๋ฐฐํฌ ์ค์ : ํ๋ก์ ํธ์ ๋น๋ ๋ฐ ๋ฐฐํฌ ์ค์ ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ์๋ ์์ต๋๋ค. Next.js์ ์ค์ ํ์ผ(`next.config.js`)๊ณผ ๋ฐฐํฌ ํ๊ฒฝ์ ์ ๊ฒํ์ธ์. ๊ฐ์ฌํฉ๋๋ค! ์ค๋๋ ์ข์ ํ๋ฃจ ๋ณด๋ด์ธ์๐ธ๐ธ
- 0
- 1
- 410




