TTFB ๋ฐ CPU ๋ถํ๋ฅผ ์ค์ด๊ธฐ ์ํด ์คํธ๋ฆผ ๋ ๋๋ง pages > 50KB
(๊ฐ์ ์คํธ๋ฆผ ์ค๋ฒํค๋) ๋ฅผ ์ ์ํฉ๋๋ค.
streamAsString
, streamAsStaticMarkup
, streamQueueAsString
, streamQueueAsStaticMarkup
inferno-server(๋ง์คํฐ)๋ฅผ ์ ๊ณต ํฉ๋๋ค. 1.2.1 ์์ ์คํธ๋ฆผ ๋ ๋๋ฌ๋ ์คํ์ ์ด์๊ณ renderToString
๋ณด๋ค 10-15% ๋๋ ธ์ต๋๋ค . 1.3(ํ์ฌ RC3 )์ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค.renderToString
๋ฐ renderToStaticMarkup
๋ฅผ ๋์ฒดํ๋ aickin/react-dom-stream ์ผ๋ก ๋ฐ์ ํฉ๋๋ค.renderToStream
(SSR/renderToStream.js) .https://github.com/zeit/next.js/pull/767 ์ ๋์ฒด
ํ๊ฐ์ง ์ธ๊ธํ ๊ฑด..
์คํธ๋ฆผ ๋ ๋๋ง์ ์ผ๋ฐ์ ์ผ๋ก ์ํํด์ผ ํ ์์ ์ ์์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ CPU ํฅ์์ ๋ง์ด ์ถ๊ฐํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ต ์๊ฐ์ด ๋จ์ถ๋ฉ๋๋ค.
SSR ๋ ๋๋ง ์์คํ ์ ์ฌ์ฉ์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ๊ฒ์ ๊ฝค ์ข์ ์๊ฐ์ ๋๋ค. ํ์ง๋ง ์ง๊ธ์ ๊ธฐ๋ณธ์ ์ผ๋ก React์ renderToString() ๋ฉ์๋๋ฅผ ๊ณ ์ํ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ 2.0 ์ดํ์ ํ ์ ์๋ ๊ฒ์ ๋๋ค.
์คํธ๋ฆผ ๋ ๋๋ง์ ์ผ๋ฐ์ ์ผ๋ก ์ํํด์ผ ํ ์์ ์ ์์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ CPU ํฅ์์ ๋ง์ด ์ถ๊ฐํ์ง ์์ต๋๋ค.
_aickin/react-dom-stream์์ _
ReactDOM.renderToString์ ๋ํ ํ ๋ฒ์ ํธ์ถ์ CPU๋ฅผ ์ง๋ฐฐํ๊ณ ๋ค๋ฅธ ์์ฒญ์ ๊ณ ๊ฐ์ํฌ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์์ ํ์ด์ง์ ํฐ ํ์ด์ง๊ฐ ํผํฉ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์๋ฒ์์ ํนํ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค.
์คํธ๋ฆฌ๋ฐ์ ๋น๋๊ธฐ ๋ฐ ๋ถ๋ถ ๋ชจ๋๋ฅผ ํตํด ํฐ ํ์ด์ง์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ CPU ์ฌ์ฉ๋์ ํ๋ช ํ๊ฒ ์ค์ด์ง ์์ต๋๊น?
์ด๊ฒ์ด ๊ฐ์ ๋งฅ๋ฝ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๋๊ตฌ๋ ์ง https://github.com/FormidableLabs/rapscallion์ ์๋ ํ์ต๋๊น?
์คํธ๋ฆฌ๋ฐ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฏ๋ก ํด๋ผ์ด์ธํธ์ ์ฆ์ ์ฝํ ์ธ ์ ์ก์ ์์ํ ์ ์์ต๋๋ค.
๋ฌธ์์ ๋ค๋ฅธ ๊ธฐ๋ฅ:
- ๋ ๋๋ง์ ๋น๋๊ธฐ์์ด๋ฉฐ ๋น์ฐจ๋จ์ ๋๋ค.
- Rapscallion์ renderToString๋ณด๋ค ์ฝ 50% ๋น ๋ฆ ๋๋ค.
- ์คํธ๋ฆฌ๋ฐ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฏ๋ก ํด๋ผ์ด์ธํธ์ ์ฆ์ ์ฝํ ์ธ ์ ์ก์ ์์ํ ์ ์์ต๋๋ค.
- ์คํธ๋ฆฌ๋ฐ์ ์ด์ ์ ํฌ๊ธฐํ์ง ์๊ณ ๊ตฌ์ฑ ์์์ HTML์ ์์ฉ๊ตฌ๋ก ๋ํํ ์ ์๋๋ก ํ ํ๋ฆฟ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๋ ๋๋ง ์๋๋ฅผ ๋์ฑ ๋์ผ ์ ์๋ ๊ตฌ์ฑ ์์ ์บ์ฑ API๋ฅผ ์ ๊ณตํฉ๋๋ค.
#2279์ Rapscallion์ ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค... Rapscallion + Next๊ฐ ๋ฏธ์ณค์์ ํ์ธํ ์ ์์ต๋๋ค. ์คํธ๋ฆฌ๋ฐ/์ฝ์ ๊ธฐ๋ฐ ๋ ๋๋ง์ ํ๋ฅญํ์ง๋ง ๊ตฌ์ฑ ์์ ์์ค ์บ์ฑ์ ์ฐ๋ฆฌ์๊ฒ ๊ฒ์ ์ฒด์ธ์ ์ ๋๋ค... :godmode:
์ด์ React 16์๋ ์์ฒด renderToNodeStream
๊ฐ ์์ผ๋ฏ๋ก next.js๊ฐ renderToString
๋์ ์ด๋ฅผ ์ฌ์ฉํ๋ ์ต์
์ ์ถ๊ฐํ๋ ๊ฒ์ ํฐ ์ด์ ์ด ๋ ๊ฒ์
๋๋ค. @timneutkens ์ด๋ป๊ฒ ์๊ฐํ์ธ์?
์ด๋ฏธ ์ถ๊ฐํ ๋ชฉ๋ก์ ์์ต๋๋ค ๐
์ด๊ฒ์ ๋ํ ์์์ด ์์ต๋๊น?
์์์ด ์๋์?
Next.js๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉ์ ์ ์ ๋น๋๊ธฐ ๋ ๋๋ฌ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ฌ์ฉ์ ์ ์ render
( renderToString
๋ฅผ ๊ธฐ๋ณธ ๋ ๋๋ฌ๋ก ์ฌ์ฉ)๋ฅผ ๋
ธ์ถํด์ผ ํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ๋น๋๊ธฐ ๋ ๋๋ฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด razzle
๋ฅผ ์ฌ์ฉํด์ผ ํ์ต๋๋ค.
์ ๋ ๋ค์ ๋ ๊ฐ์ง๋ฅผ ์ ์ธํ๊ณ Next.js์ ๋ชจ๋ ๊ฒ์ ์ข์ํฉ๋๋ค.
์ด๋ค ๋ก๋๋งต/์คํธ๋ฆฌ๋ฐ ๋ ๋๋ง ์ง์ ๊ณํ์ด ์์ต๋๊น? ๊ทธ๋์ next.js์ ์ด๊ฒ์ ๊ฐ์ง ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
React Fizz / ์ด์ ๋ํ ๊ณํ์ ๊ตฌํํ๋ React ํ์์ ๋ณด๋ฅ ์ค์ ๋๋ค.
@timneutkens ์ฌ๊ธฐ์์ ์ถ์ ํ ๋ฌธ์ , PR์ ๋ฌด์์ ๋๊น?
2019๋
8์ 8์ผ์ ๊ฒ์๋ Facebook ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์
https://reactjs.org/blog/2019/08/08/react-v16.9.0.html
์๋ฒ ๋ ๋๋ง์ ๋ํ ์ ๋ฐ์ดํธ
์ฐ๋ฆฌ๋ ์๋ก์ด Suspense ๊ฐ๋ฅ ์๋ฒ ๋ ๋๋ฌ์ ๋ํ ์์ ์ ์์ํ์ง๋ง ๋์ ๋ชจ๋์ ์ด๊ธฐ ๋ฆด๋ฆฌ์ค๋ฅผ ์ํด ์ค๋น๋์ง ์์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ฆด๋ฆฌ์ค์์๋ ๊ธฐ์กด ์๋ฒ ๋ ๋๋ฌ๊ฐ ์ฆ์ Suspense ํด๋ฐฑ์ฉ HTML์ ๋ด๋ณด๋ด๊ณ ํด๋ผ์ด์ธํธ์์ ์ค์ ์ฝํ ์ธ ๋ฅผ ๋ ๋๋งํ ์ ์๋๋ก ํ๋ ์์ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค. ์ด๊ฒ์ ์คํธ๋ฆฌ๋ฐ ๋ ๋๋ฌ๊ฐ ์ค๋น๋ ๋๊น์ง Facebook์์ ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ ์๋ฃจ์ ์ ๋๋ค.
์์ง ์๋ฒ ์คํธ๋ฆฌ๋ฐ ์ง์์ ๊ธฐ๋ค๋ฆฌ๋ ์ฌ๋์ ์ํด :)
next.js์์ renderToNodeStream์ ๊ตฌํํ๋ ์ ๋ฐ์ดํธ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
<3
๋ชจ๋ ์ ๋ฐ์ดํธ?
@StarpTech ๋๋ ์ด๊ฒ์ ๋ํด ์กฐ๊ธ ์ดํด๋ณด์๊ณ (์ด ๊ธฐ๋ฅ๋ ๊ถ๊ธํฉ๋๋ค!) ๋ฐ์ ํ์ด react-flight ๋ผ๋ ์์ ์ ํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ ์๋ง๋ ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ์คํธ๋ฆฌ๋ฐ ์๋ฃจ์ ์ ๊ธฐ๋ฐ์ด ๋ ๊ฒ์ ๋๋ค. :)
๋ฐ์ ๋นํ:
์ปค์คํ React ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ธ์ ์ฌ์ฉํ๊ธฐ ์ํ ์คํ์ ์ธ ํจํค์ง์ ๋๋ค.
๋ด๋ถ ์์
์ ์ฝ๊ฐ์ ๋น์ ๋น์ถ๋ ๊ด๋ จ PR, ๋ด๊ฐ ํด์ํ ๊ฒ(์ด ์ค ์ด๋ ๊ฒ๋ ์ ๋ฌธ๊ฐ๊ฐ ์๋ ๐)
#17285 : ๋นํ์ ์ํ ๊ธฐ๋ณธ API, ์๋ฒ๋ ๋ชจ๋ ๊ฒ์ ๋ฌธ์์ด๋ก ์คํธ๋ฆฌ๋ฐํ ์ ์์ด์ผ ํ์ง๋ง ์๋ฒ์์ ๋น๋๊ธฐ์ ์ผ๋ก ํด๊ฒฐ๋๋ ์ฒญํฌ์ ๋ํ ์๋ฆฌ ํ์์๋ ๋จ๊ฒจ๋ ์ ์์ต๋๋ค. ๋ฆฌ์กํธ๊ฐ ์คํธ๋ฆผ์์ ์ค์ ๋ก ๋ํ๋ด๋ ๋ฐ์ดํฐ ์ ํ์ด ๋ฌด์์ธ์ง ์ ์ ์๋ ๋ถ์์ ํ์ง๋ง ํฅ๋ฏธ๋ก์ด ๊ตฌ๋ฌธ์ด ์ฌ๊ธฐ์ ์์ต๋๋ค .
# 17398 ์ต๊ทผ์ PR, ๊ทธ๋์ ๋ฉ์ด๋ฆฌ์ํ API (๋น์ ์ด ์ด์ด ๋๋ผ๋ ๊ฒฝ์ฐ) ๋น์ ์์ ์์ ๊ทธ ๋ถ๋ถ์ ์๋ํด ๋ณผ ์๋ ์์ต๋๋ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ํฉ์ณ์ง์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ด ๋ชจ๋ ์์ ์ด ์๋ฃ๋๋ ๊ฒ์ ๋ณด๋ ๋ค์ ๊ธฐ์ฉ๋๋ค. :)
_์ฃผ์ ์์ ์ฝ๊ฐ ๋ฒ์ด๋ ๋ด์ฉ์ผ ์ ์์ง๋ง ์ด ํธ๋ฅผ ๊ตฌ๋ ํ๋ ์ฌ๋๋ค์๊ฒ ํฅ๋ฏธ๋ก์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. :)_
@pepf ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค!
ํ . ์ฌ๋ฌ๋ถ, ํฅ๋ฏธ๋ก์ด ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค. ๋๋ ์ NextJS๊ฐ ์ง๊ธ streamAsString์ ์ฌ์ฉํ์ง ์๊ณ ์์คํ์ค ๋ฐ ๊ธฐํ์ ๋ํ React ์ง์ SSR์ ๊ธฐ๋ค๋ ค์ผ ํ๋์ง ์๊ฐํ๊ณ ์์ต๋๋ค.
@arunoda ์ ๋ฉ๋ชจ๋ฆฌ ๋๋ค ํจ์ ๋๋ Cloudflare ์์ ์์ ๋งค์ฐ ์ค์ํ ๋ฉ๋ชจ๋ฆฌ ์๋น๋ฅผ ์ค์ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ ๋ํ ์์์ด ์์ต๋๊น?
์์์ด ์๋์?
์์ ์์ด? :ํผ
๋ฐ์ ์์คํ์ค๊ฐ ์ ๋ ๋์ค์ง ์์ ๊ฒ ๊ฐ์ ๋๋์ด ๋๋ ๊ฒ์ ๊ฐ์ํ ๋ ์ด๊ฒ์ ๋ค์ ๋ณผ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ์๋นํ ์ผ๋ฐ์ ์ธ ์ฝํ ์ธ ๊ฐ ์ ์ ํ์ด์ง(vercel์ ์๋ฒ๋ฆฌ์ค ๊ธฐ๋ฅ์์ ๋ ๋๋ง๋จ)์์ 800-1000ms์ ์ด๊ธฐ ๋ ๋๋ง ์๊ฐ์ ๋ณด๊ณ ์์ต๋๋ค. ์ด๋ก ์ ์ผ๋ก HTML์ ์คํธ๋ฆฌ๋ฐํ๋ฉด ์ด๊ธฐ ์ ์ด ์ง์ ์ด ์ฆ๊ฐํ๊ณ ํจ์ฌ ๋น ๋ฅด๊ฒ ์ธ์ง๋๋ ์ฒซ ๋ฒ์งธ ๋ก๋ ux๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
NextJS๊ฐ ์๋ Vercel์ ํ๊ณ์ธ๊ฐ์? Vercel์ Lambda์ ๊ฐ์ ์ข ๋ฅ์ ์ฝ๋ ์คํํธ์ ์ ํฌ์๋ฉ๋๊น? ์ฐ๋ฆฌ ํ์ ์ฝํ ์ธ ๊ฐ ๋ง์ ์ฌ์ดํธ๋ฅผ ๋ง์ด ์ด์ํ๊ณ ์์ผ๋ฉฐ ์ ์ฒด ์์ฒญ์ ๋ํด ํ์ด๋ฐ์ด 50ms ๋ฏธ๋ง์ ๋๋ค. ์คํธ๋ฆฌ๋ฐ์ด ์ฌ๊ธฐ์ ์์ด์์ด ๋ ๊ฒ์ด๋ผ๊ณ ๋ ์๊ฐํ์ง ์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์์ ์ด์์ด ๋ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง ์์ง๋ง ๋ถ๋ช ํ ํ์ํ ๋งํ ๊ฐ์ ์ด ๋ ๊ฒ์ ๋๋ค.
50ms๋ ์ธ๊ธ๋ ์ฝ๋ ์คํํธ โโ์๊ฐ์ ๋นํด ์ต์ ํํ๊ธฐ์๋ ๋๋ฌด ์๊ณ ์๋์ ์ผ๋ก ์ค์ํ์ง ์์ง๋ง Cloudflare ์์
์์ ๊ฐ์ ์ฃ์ง์์ ๋ ๋๋งํ ๋๋ ๊ทธ๋ ์ง ์์ต๋๋ค(๊ฐ์ฅ ๊ฐ๊น์ด Cloudflare ์ฃ์ง ์์น์ ๋ํ ํ ๋๋ ์ต์ ์ ๋ฐ ), Cloudflare ์์
์๋ ์ฝ๋ ์คํํธ โโ์ ์ผ๋ฐ์ ์ผ๋ก 5๋ฐ๋ฆฌ์ด ๋ฏธ๋ง์ผ๋ก ๋งค์ฐ ๋น ๋ฅด๊ฒ ์๋ตํฉ๋๋ค. ๋์กฐ์ ์ผ๋ก, Lambda ๋ฐ Lambda@Edge ํจ์๋ ๋ชจ๋ ์ฝ๋ ์คํํธ์์ ์๋ตํ๋ ๋ฐ 1์ด ์ด์ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
์ด๊ฒ์ด Varcel(์์ฒด cdn์ ๋น๋ํจ)์ด ๊ณ ์ฉํ next.js ๊ฐ๋ฐ์์๊ฒ ๋ ๋์ ์ฌ๋ก๊ฐ ๋์ง ์๋๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
์ฌ๋๋ค์ด next.js๋ฅผ Cloudflare ์์ ์์๊ฒ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌํ ๋ฌธ์๋ ์ ์ฅ์๊ฐ ์์ต๋๊น? ๋๋ ์ฝ๊ฐ์ ์ธํฐ๋ท ๊ฒ์์ํ๊ณ ๊ทธ๊ฒ์ ๋ํด ๋ง์ด ์ฐพ์ง ๋ชปํ์ต๋๋ค. ์ ๋ง ๋๋์ต๋๋ค.
๋ด ํด๋์ ํ์์ ์ ์ก๋จ
2020๋ 7์ 5์ผ ์คํ 5์ 47๋ถ์ Wis [email protected]์ด ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
50ms๋ ์ธ๊ธ๋ ์ฝ๋ ์คํํธ โโ์๊ฐ๊ณผ ๋น๊ตํ์ฌ ์ต์ ํํ๊ธฐ์ ๋งค์ฐ ๋ฎ๊ณ ์๋์ ์ผ๋ก ์ค์ํ์ง ์์ง๋ง Cloudflare ์์ ์์ ๊ฐ์ ์ฃ์ง์์ ๋ ๋๋งํ ๋๋ 50ms๊ฐ ๋ง์ต๋๋ค(๊ฐ์ฅ ๊ฐ๊น์ด Cloudflare ์ฃ์ง ๋ก์ผ์ด์ ์ ๋ํ ํ ๋๋ ์ต์ํ ์ ๋ฐ), Cloudflare ์์ ์๋ ์ฝ๋ ์คํํธ โโ์ ์ผ๋ฐ์ ์ผ๋ก 5๋ฐ๋ฆฌ์ด ๋ฏธ๋ง์ผ๋ก ๋งค์ฐ ๋น ๋ฅด๊ฒ ์๋ตํฉ๋๋ค. ๋์กฐ์ ์ผ๋ก, Lambda ๋ฐ Lambda@Edge ํจ์๋ ๋ชจ๋ ์ฝ๋ ์คํํธ์์ ์๋ตํ๋ ๋ฐ 1์ด ์ด์ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
์ด๊ฒ์ด Varcel(์์ฒด cdn์ ๋น๋ํจ)์ด ๊ณ ์ฉํ next.js ๊ฐ๋ฐ์์๊ฒ ๋ ๋์ ์ฌ๋ก๊ฐ ๋์ง ์๋๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ๋ณด๊ฑฐ๋ ๊ตฌ๋ ์ ์ทจ์ํ์ธ์.
50ms๋ ์ธ๊ธ๋ ์ฝ๋ ์คํํธ โโ์๊ฐ์ ๋นํด ์ต์ ํํ๊ธฐ์๋ ๋งค์ฐ ์๊ณ ์๋์ ์ผ๋ก ์ค์ํ์ง ์์ต๋๋ค.
๋ช ํํ ํ์๋ฉด, ๋๋ 50ms ์๋ต ์๊ฐ์ ๋ํด ๋ถํํ์ง ์์์ต๋๋ค. ์ ๋ NextJS์ SRR์ด ์ฝํ ์ธ ๊ฐ ๋ง์ ํ์ด์ง์ ๋ํด ๋ถ๋น 3,000๊ฐ ์ด์์ ์์ฒญ์์๋ ์๋์ ์ผ๋ก ์ฑ๋ฅ์ด ์ข๋ค๊ณ ์ง์ ํ ๊ฒ๋ฟ์ด๋ฏ๋ก Switz์ ๋ฌธ์ ๋ ๋ค๋ฅธ ๊ณณ์ ์์ ์ ์์ต๋๋ค.
์ฌ๋๋ค์ด next.js๋ฅผ Cloudflare ์์ ์์๊ฒ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌํ ๋ฌธ์๋ ์ ์ฅ์๊ฐ ์์ต๋๊น?
๋๋ ๊ทธ๊ฒ์ ๊ด์ฌ์ด ์์ ๊ฒ์ด๋ค. ํ์ฌ Fargate์์ ์คํ ์ค์ด์ง๋ง ์ฑ์ ์ฃ์ง๋ก ํธ์ํ๋ ๊ฒ์ด ๋ ผ๋ฆฌ์ ์ธ ๋ค์ ๋จ๊ณ๊ฐ ๋ ๊ฒ์ ๋๋ค.
HTML ๋ด์์ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฐ์ ์ฌํญ์ ์ ์ฉํ์ผ๋ฉฐ ์๋ฒ ์๋ต ์๊ฐ์ด ์์ฒญ๋๊ฒ ๋นจ๋ผ์ก์ต๋๋ค! :(
@huggler ์ด ์์ ๋ฅผ cacheable-response ์ ๊ฒฐํฉํ ์ ์์ต๋๋ค. Redis(๋๋ ์๋ฅผ ๋ค์ด ์ธ๋ฉ๋ชจ๋ฆฌ ์บ์)๋ฅผ ์ฌ์ฉํ์ฌ html์ ์บ์์ ์ ์ฅํ ์ ์์ต๋๋ค. ์๋ฒ ์๋ต ์๊ฐ์ ํฅ์์ํต๋๋ค.
์ฌ๋๋ค์ด next.js๋ฅผ Cloudflare ์์ ์์๊ฒ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌํ ๋ฌธ์๋ ์ ์ฅ์๊ฐ ์์ต๋๊น? ๋๋ ์ฝ๊ฐ์ ์ธํฐ๋ท ๊ฒ์์ํ๊ณ ๊ทธ๊ฒ์ ๋ํด ๋ง์ด ์ฐพ์ง ๋ชปํ์ต๋๋ค. ์ ๋ง ๋๋์ต๋๋ค.
@switz @tils13 https://fab.dev/ ํ์ธํ์ จ๋์? ์ฐ๋ฆฌ๋ 2020๋ ์ด์ ๊ทธ๊ฒ์ ๊ฐ์ง๊ณ ๋์๊ณ ๊ทธ๊ฒ์ ์ํํ ์ํ์ ์์์ง๋ง ๊ฝค ๋ฉ๋ฆฌ ์จ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ค์ ๊ฐ๋ก๋ง๋ ์ ํ ์ฌํญ ์ค ํ๋๋ Cloudflare ์์ฒด์์ง๋ง ์ง๊ธ์ฏค์ด๋ฉด ์ํฉ์ด ๋ณ๊ฒฝ๋์์ ์ ์์ต๋๋ค.
ํ๋์ ๋ณด์ง ์์์ต๋๋ค. ์ฌํ๊ฐํด์ผ ํ ๊ฒ์ ๋๋ค. ์ง๋๋ฒ์ ๋ณด๋ ๊ฝค ์ฌ๊ฐํ ํธ๋ ์ด๋์คํ๊ฐ ์์์ต๋๋ค.
๋๋ ๋ํ https://github.com/flareact/flareact๋ฅผ ์ฃผ์ํ๊ณ
์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ ๋ํ ์์์ด ์์ต๋๊น?