[Cloudflare] Pages & Functions: Nextjs ๊ตฌ์ถ•ํ•˜๊ธฐ

[์›๋ณธ ๋งํฌ]

Cloudflare ํŽ˜์ด์ง€๋Š” ๋‹จ์ˆœํ•œ ์ •์  ๋ Œ๋”๋ง๋งŒ ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ, Nextjs ๊ฐ™์€ ์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ์‹œ์Šคํ…œ๋„ ๊ตฌ์ถ•ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

๊ทธ๊ฒŒ ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ•œ๊ฐ€ ํ•˜๋ฉด

Function์ด๋ผ๋Š” ๋ถ€๊ฐ€์ ์ธ ์„œ๋ฒ„ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„์ด๋‹ค.
์ด๋Ÿฐ๊ฑธ ํ”ํžˆ Edge ๋Ÿฐํƒ€์ž„์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š”๋ฐ, AWS์— ๋น„์Šทํ•œ ๋†ˆ์œผ๋กœ Lambda Edge๊ฐ€ ์žˆ๋‹ค.

์›๋ž˜ ์žˆ๋˜๊ฑด ์•„๋‹ˆ๊ณ , 2022๋…„ 6์›”๋ถ€ํ„ฐ ์ง€์›์ด ์‹œ์ž‘๋œ ๋”ฐ๋ˆ๋”ฐ๋ˆํ•œ ๊ธฐ๋Šฅ์ด๋‹ค.




๋น„์šฉ

์ด๋Ÿฐ๊ฑธ ์จ๋ณด๋ ค๋ฉด ๋‹น์—ฐํžˆ ๋น„์šฉ์„ ์ƒ๊ฐํ•˜์ง€ ์•Š์„ ์ˆ˜ ์—†๋‹ค.

Pages์˜ Functions๋Š” Cloudflare worker ๊ธฐ๋ฐ˜์œผ๋กœ ์š”๊ธˆ์ด ์ฒญ๊ตฌ๋œ๋‹ค.
๋‹คํ–‰ํžˆ๋„ Workers๋Š” ๋‹ค๋ฅธ ์„œ๋ฒ„๋ฆฌ์Šค ์„œ๋น„์Šค๋“ค๊ณผ ๋น„๊ตํ•˜๋ฉด ๊ฑฐ์ €๋ผ๊ณ  ์ƒ๊ฐ๋  ์ •๋„๋กœ ๋งค์šฐ ์ €๋ ดํ•œ ๊ฐ€๊ฒฉ์„ ์ž๋ž‘ํ•œ๋‹ค.

๋งค์ผ๋งˆ๋‹ค 10๋งŒ๊ฑด์ด ๋ฌด๋ฃŒ๊ณ , ๊ทธ ์ดํ›„๋กœ๋„ 100๋งŒ๊ฑด์— 1๋‹ฌ๋Ÿฌ๋„ ์•ˆํ•œ๋‹ค.
cloudflare์˜ ์—„์ฒญ๋‚œ ์ ์ž๊ฐ€ ์•„๋งˆ ๋‹ค ์ด๋Ÿฐ๋ฐ์„œ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค.




์†Œ์Šค์ฝ”๋“œ ์„ธํŒ…ํ•˜๊ธฐ

github ๋ ˆํฌ ํ•˜๋‚˜ ํŒŒ๊ณ , ํ…œํ”Œ๋ฆฟ ๋งŒ๋“ค์–ด์„œ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ์ž.

npx create-next-app --example with-static-export cloudflare-nextjs

์ด๊ฑฐ๋ฉด ๋œ๋‹ค.




Pages ๋งŒ๋“ค๊ธฐ

cloudflare ์ฝ˜์†”์— ๋“ค์–ด๊ฐ€์„œ Pages๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์ž

๋ ˆํฌ์ง€ํ† ๋ฆฌ ๊ณ ๋ฅด๊ณ 


Nextjs๋ฅผ ์„ ํƒํ•ด์ค€๋‹ค.
Statis HTML export๋กœ ๊ณจ๋ผ์ฃผ์ž.


๊ทธ๋ฆฌ๊ณ  ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋…ธ๋“œ ๋ฒ„์ „์„ ์„ค์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
์•ˆ๊ทธ๋Ÿฌ๋ฉด ์ œ๋ฉ‹๋Œ€๋กœ ๋ ˆ๊ฑฐ์‹œํ•œ ๋ฒ„์ „์œผ๋กœ ์„ธํŒ…ํ•ด์„œ ์ปดํŒŒ์ผ์ด ๋‹ค ํ„ฐ์งˆ ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฉด

์•Œ์•„์„œ ๋นŒ๋“œํ•ด์„œ ์˜ฌ๋ ค์ค„ ๊ฒƒ์ด๋‹ค.

์•„์ฃผ ํŽธ๋ฆฌํ•˜๋‹ค.



์ฐธ์กฐ
https://developers.cloudflare.com/pages/framework-guides/deploy-a-nextjs-site/
https://developers.cloudflare.com/pages/platform/functions
https://github.com/remix-run/remix/issues/3095
https://blog.cloudflare.com/next-on-pages/