(์ด ๊ธ์ 2021๋ 7์ 11์ผ ๊ธฐ์ค ๊ธ์ด๋ค.)
์ฝ์ง์์ฝ๐จ๐ง
์คํ: Next.js(Vercel) + Strapi - Postgres(Heroku)
์ฆ์: ์ด๊ธฐ ์ ๊ทผ์ 504 ์๋ฌ๊ฐ ๋ธ. (Serverless Function Timeout)
๋์ฒ: ๋งค๋ฒ ์๋ฒ์ ์์ฒญํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ getServerSideProps์์ getStaticProps๋ก ๋ณ๊ฒฝ ํ revalidate ์ค์ .
(์๋ฌ์ ๋ํ ๊ทผ๋ณธ์ ์ธ ํด๊ฒฐ์ฑ
์ด ์๋๋ผ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ๋์ฒํ ๊ฒ์ด๊ธฐ์ ๋์ฒ๋ผ๊ณ ์ผ๋ค.)
์ฝ์ง๊ตฌ๊ตฌ์ ์
์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ํ๋ค๊ฐ ํ๋์ ๋ค๋ฅธ ํ ์ด ํ๋ก์ ํธ๋ฅผ ๋ง์ง์๊ฑฐ๋ฆฌ๋ค๋ณด๋ ์ฌ์ด๋ ํ๋ก์ ํธ๋ ์ ์ด์ด ๋ฉ๋ฆฌ ๋ฉ์ด์ ธ๋ฒ๋ ธ๊ณ ์๋๊ธฐ๋ ๊ท์ฐฎ์์ก๋ค. ์์งํ ๋งํ๋ฉด ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๊ฐ ์์๋๋ฐ ํด๊ฒฐ์ฑ ์ด ๋ณด์ด์ง ์์์ ๋ ๊ฑด๋ค๊ธฐ๊ฐ ์ซ์๋ค. ๊ทธ๋๋ ๋๋ฉ์ธ๊น์ง ์ฌ์ ๋ถ์ฌ๋จ๋๋ฐ... ์ด๋ ๊ฒ ๋ฐฉ์นํ๊ธด ์๊น์์ ๋ค์ ๋ณด๊ธฐ ์์ํ๋ค.
์์์ ๋งํ๋ ๋ฌธ์ ๋ ์ค๋๋ง์ ์ฌ์ดํธ์ ์ ์ํ๋ฉด ์๊พธ 504 ์๋ฌ๋ฅผ ๋ฑ์ด๋ด๋ ๊ฒ์ด์๋ค. ์ฑ ์์ฒด์๋ ๋ฌธ์ ๊ฐ ์๋๋ฐ Serverless Function์์ ํ์์์์ด๋ผ๋ ์๋ฌ ๋ฌธ๊ตฌ๋ฅผ ๋ณด์ฌ์ค ๊ฒ ๊ฐ๋ค. (์บก์ณํด๋์ ๊ฒ์ ์ญ์ ํ๋๋ณด๋ค...)
์ฐพ์๋ณด๋ Vercel Hobby ๋ฒ์ ์ ์๋ต์ ๋ฐ๋๋ฐ 10์ด์ด๋ด๋ก ์ ํ์ด ๊ฑธ๋ ค์๋ค.
๊ตฌ๊ธ๋ง์ ์์ํ๋ค. ๋์ ๋น์ทํ ์ํฉ์ ๊ฒช๋ ์ฌ๋๋ค์ด ๋ช๋ช ์์๋ค. ๋พฐ์กฑํ ํด๊ฒฐ์ฑ
์ ์์ด๋ณด์๋๋ฐ.. ๊ทธ๋ฌ๋ค๊ฐ Reddit์ ๊ธ์ ์ฝ๊ฒ ๋์๋ค.
๋๊ธ์ ๋ณด๋ heroku๊ฐ ์ด๊ธฐ ์๋์ ํ๋ ๊ฒฝ์ฐ ์๋ต์ ๋ฐ๊ธฐ๊น์ง 10์ด ์ด์์ ์๊ฐ์ด ๊ฑธ๋ ค Vercel์ด ์ค๋จ๋ ์๋ ์๋ค๋ ๋ง์ด ์์๋ค. heroku์ ์ด๊ธฐ ์๋ ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋์ง๋ ์ ํํ ๋ชจ๋ฅด์ง๋ง ๊ฝค ์ผ๋ฆฌ๊ฐ ์์ด๋ณด์๋ค. ๊ทธ๋์ ๋งค๋ฒ ์๋ฒ์์ ์๋ต์ ๋ฐ์ง ์์๋ ํ๋ฉด์์ ๋ณด์ฌ์ค ์ ์๋๋ก getServerSideProps ๋ฉ์๋๋ฅผ getStaticProps์ผ๋ก ๋ณ๊ฒฝํ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณ๊ฒฝ์ฌํญ์ด ์์ ๊ฒฝ์ฐ ํ์ด์ง๋ฅผ ์ฌ์์ฑํ๋๋ก revalidate ๊ฐ๋ ์ค์ ํด์ฃผ์๋ค.
์ด๋ ๊ฒ ํ๋ 504์๋ฌ๊ฐ ๋จ๋ ๋ฌธ์ ๋ ํด๊ฒฐ์ด ๋์๋ค. ์ด ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ Chrome lighthouse ์ ์๋ฅผ ์ฌ๋ฆฌ๊ธฐ ์ํด์ ์ด๊ธฐ ์ผ๋ถ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ค๊ณ ์คํฌ๋กค์ ๋ด๋ฆฌ๋ฉด ๋ก๋ํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ์ ํด๋์๋๋ฐ ์์ ์๋ฌ๋ฅผ ํด๊ฒฐํ๊ณ ์ ์ด๊ธฐ ๋ฐ์ดํฐ๋ง getStaticProps๋ก ๊ฐ์ ธ์ค๊ณ ๊ทธ ๋ค์ ๋ฐ์ดํฐ๋ ์๋ฒ์์ ์์ฒญํ์ฌ ๋ก๋ํ๋ ์๊ฐ์ด ์ข ๊ฑธ๋ฆฌ๊ฒ ๋์๋ค...(์ด๋ฌ๋ ํ์์์์ด ๋จ์ง...) ๊ทธ๋๋ ์ฐ์ 504๋ ์๋ฌ๋ค. ๊ฐ์ ํด๋๊ฐ ๋ฐฉ๋ฒ์ ๊ณ์ ์ฐพ์๋ด์ผ๊ฒ ๋ค.
7์ 12์ผ ์ถ๊ฐ ๋ด์ฉ
์ด๋ฌ๋ 504๊ฐ ๋ค์๋ฐ์.... ๋๊ฐ์ด 18๊ฐ๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ cold start์ธ ๊ฒฝ์ฐ ๋ฌด๋ ค 28.97์ด๊ฐ ๊ฑธ๋ฆฐ๋ค. ์ดํ์๋ 233ms๐
ํด๊ฒฐ ๋ฐฉ๋ฒ์ Strapi๋ฅผ Heroku๊ฐ ์๋ ๋ค๋ฅธ ๊ณณ์ deployํ๊ฑฐ๋, getStaticProps๋ก ๋ณ๊ฒฝํด์ ๋น๋ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์ ๋ฐ์ ์๋ ๊ฒ ๊ฐ๋ค.
๋ค๋ฅธ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์์๋ ๋ถ์ ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!โ