๋ช ์ฒ ํ์ด์ง์ ์ ์ ๊ฐ์ด๋๋ฅผ ์๋ก ๋ง๋ค๋ฉฐ
๋ช ์ฒ ํ์ด์ง์ ์ ์ ๊ฐ์ด๋๋ฅผ ์๋ก ๋ง๋ค๋ฉฐ ๊ด๋ จ
FEConf2023์์ ๋ฐํํ <๋ช ์ฒ ํ์ด์ง์ ์ ์ ๊ฐ์ด๋๋ฅผ ์๋ก ๋ง๋ค๋ฉฐ>[1]๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๋ฐํ ๋ด์ฉ์ 2ํ๋ก ๋๋์ด ๋ฐํํฉ๋๋ค. 1ํ์์๋ ์ ์ ๊ฐ์ด๋๊ฐ ๋ฌด์์ธ์ง, ์ ์๋กญ๊ฒ ๋ง๋ค๊ฒ ๋์๋์ง์ ๊ทธ ๊ฐ๋ฐ ๊ณผ์ ์์ ๋ง๋ ๋ ๊ฐ์ง ๋ฌธ์ ์ค ํ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๋ค๋ฃน๋๋ค. 2ํ์์๋ ๊ฐ๋ฐ ๊ณผ์ ์์ ๋ง๋ ๋ ๋ฒ์งธ ๋ฌธ์ ๋ฅผ ๋ค๋ฃจ๊ณ ๋ง๋ฌด๋ฆฌํฉ๋๋ค. ๋ณธ๋ฌธ์ ์ฝ์ ๋ ์ด๋ฏธ์ง์ ์ถ์ฒ๋ ๋ชจ๋ ๋๋ช ์ ๋ฐํ์๋ฃ๋ก, ๋ฐ๋ก ์ถ์ฒ๋ฅผ ํ๊ธฐํ์ง ์์์ต๋๋ค. ๋ฐํ์๋ฃ๋ FEConf2023 ํํ์ด์ง์์ ๋ค์ด๋ฐ์ ์ ์์ต๋๋ค.
๋ธ๋ก๊ทธ๋ฅผ ์ง์ ๋ง๋ค๊ณ ๊ธ์ ๊พธ์คํ ์ฐ๊ณ ๊ณ์๋ ๋ถ๋ค ์์ผ์์ฃ ? ์ ๋ ์ฌ์ค ์ ๋ธ๋ก๊ทธ๊ฐ ์๋๋ฐ ๊ธ์ด 20๊ฐ๊ฐ ์ ๋์ต๋๋ค.
ํ๋์ ์ ์ ์ธ ์ฌ์ดํธ๋ฅผ ์ฒ์์๋ ์ฝ๊ณ ์ฌ๋ฏธ์๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ํ์ง๋ง ์ด์ ๋ธ๋ก๊ทธ ๊ธ์ด 1,000๊ฐ๋ฅผ ๋์ด๊ฐ๋ค๋ฉด ํน์ ์ ๊ทผ์ฑ, ์ธ์ ํ๊ฒฝ๊ฐ์ด ์๋์ ์ผ๋ก ๊น๊ฒ ๊ณ ๋ คํด๋ณด์ง ์์๋ ๊ฒ๋ค์ ์ ๊ฒฝ ์ฐ๊ธฐ ์์ํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ ์ฐ๋ฆฌ๋ ์ด๋ค ๋ฌธ์ ๋ฅผ ๋ง๋๊ฒ ๋ ๊น์? ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ฌธ์ ๋ค์ ์ผ๋ง๋ ์ด๋ ค์ธ๊น์?
์๋ ํ์ธ์. ์ ๋ ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ณด๋ก ์ ๋ฌํ๋ ์ผ์ ๊ด์ฌ์ด ๋ง์ผ๋ฉฐ, AB180์ด๋ผ๋ ๋ฐ์ดํฐ ์คํํธ์ ์์ ํ๋ก ํธ์๋ ํ ์์ง๋์ด๋ง ๋งค๋์ ๋ฅผ ๋งก๊ณ ์๋ ์ด์ฐฌํฌ์ ๋๋ค. ์ค๋์ ์ฌ๋ฌ๋ถ๋ค๊ป ๋ค์๊ณผ ๊ฐ์ ์ด์ผ๊ธฐ๋ฅผ ๋ค๋ ค๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค.
์ ์ ๊ฐ์ด๋์ ๊ดํ์ฌ
- ์ ์ ๊ฐ์ด๋๊ฐ ๋ฌด์์ธ๊ฐ์?
- ์ ์ด๋ป๊ฒ ๊ฐ์์์๋์?
- ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ์ ๋ฐฐํ ํ๊ธฐ
๊ฐ๋ฐ ๊ณผ์ ์์ ๋ง๋ ๋ฌธ์ ๋ค
- ์ ํ์ง ์์ฝ๋์ธ์ ๊ฒ์ํ ์ ์๋์?
- ์ ์ ์ฌ์ดํธ ์์ฑ์ ์ ์ ํ ๋ฐฉ๋ฒ์ธ๊ฐ์?
์ ์ ๊ฐ์ด๋๋?
๋ณธ๊ฒฉ์ ์ธ ์์์ ์์, ์ค๋ ์ด์ผ๊ธฐ์ ์ฃผ๋ก ๋์ฌ ์ ์ ๊ฐ์ด๋๊ฐ ์ ํํ ๋ฌด์์ด๊ณ ์ ์๋ก ๋ง๋ค๊ฒ ๋์๋์ง ์งง๊ฒ ์ด์ผ๊ธฐ๋ฅผ ๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค.
์ ํฌ๋ ์์ด๋ธ๋ฆฟ์ง(Airbridge)๋ผ๋ ๋ง์ผํ ์ฑ๊ณผ ๋ถ์ ๋๊ตฌ๋ฅผ ๋ง๋ค๊ณ ์์ต๋๋ค. ์๋ ํ๋ฉด์ ๊ทธ ๋์๋ณด๋์ธ๋ฐ์. ๋ง์ผํ ์ฑ๊ณผ ๋ถ์์ ์ํด์ ์ฌ์ฉ์๋ถ์ด ์์์ผ ํ๋ ๊ฒ๋ ํด์ผ ํ๋ ๊ฒ๋ ๊ต์ฅํ ๋ง์ต๋๋ค.
SDK ์ค์น, ๊ฐ์ข ๊ด๊ณ ๋งค์ฒด์ ์ฐ๋, ์ ํ์ด๋ ๊ตฌ๊ธ์ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ์ ์ฑ ์ ๊ดํ ์ดํด ๊ฐ์ ๊ฒ๋ ์์ ๊ฑฐ๊ณ ์. ์ด๋ฌํ ๋ด์ฉ์ ์ ํ ์์์ ์๋ดํ๊ธฐ์๋ ๋ค์ ํ๊ณ๊ฐ ์์ต๋๋ค. ๊ทธ๋์ ์ ํฌ ํ์ฌ์์๋ ์ด๋ฌํ ๊ณ ๊ฐ๋ค์ ๊ถ๊ธ์ฆ์ ํด์ํ๊ณ ์ฌ์ฉ์๋ค์ ํ๋ค์ ๋ฎ์ถ๊ธฐ ์ํด ์ ์ ๊ฐ์ด๋๋ผ๋ ํ์ด์ง๋ฅผ ์ด์ํ๊ณ ์์ต๋๋ค.
์ด ์ ์ ๊ฐ์ด๋๋ ํ์ฌ ๋ด์ PW(Product Writing, ํ๋ก๋ํธ ๋ผ์ดํ ) ํ์์ ์ด์ํฉ๋๋ค. ์ฒ์์๋ ์ ๋ฐ์คํฌ(Zendesk)๋ผ๋ CMS(Content Management System)๋ก ์ ์ ๊ฐ์ด๋๋ฅผ ์ด์ํ์ต๋๋ค. ๋ณดํต ๋ฌธ์ ์ฐฝ๊ตฌ๋ ๊ฐ์ด๋๋ฅผ ๋ง๋ค ๋ ์ผ๋ฐ์ ์ผ๋ก ์ ๋ฐ์คํฌ๋ฅผ ๋ง์ด ์ฌ์ฉํ์๋๋ฐ์. ํน์ง์ด ์๋ค๋ฉด ๋ ์ด์์๊ณผ ํ ๋ง๋ โHandlebarsโ๋ผ๋ ํ ํ๋ฆฟ ์์ง์ ์ฌ์ฉํ๊ณ , WYSIWYG ์๋ํฐ์ ๊ธ์ ์์ฑํ๋ฉด HTML๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ง์ฝ ๋ธ๋ก๊ทธ๋ฅผ ์ง์ ๋ง๋ค์ด๋ณด์ ๋ถ๋ค์ด๋ผ๋ฉด Ghost, Jekyll, ๊ทธ๋ฆฌ๊ณ ์ปค์คํ ๋ก์ง์ด ์์ธ ๋ฌด์ธ๊ฐ ์ ๋๋ก ์๊ฐ์ ํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ ์ด๋ป๊ฒ ๊ฐ์์์๋?
์ธ์ ๋ ๊ทธ๋ ๋ฏ ์ฒ์์๋ ๋ณ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ง๋ ๋ช ๋ ๊ฐ ์ ๋ฐ์คํฌ๋ฅผ ์ฌ์ฉํด๋ณด๋ฉด์ ๋ถํธํ ์ ์ด ๋ณด์ด๊ธฐ ์์ํ๋๋ฐ์. ๊ฐ์ด๋๋ฅผ ์์ฑํ๋ค ๋ณด๋ ์๊ฐ๋ณด๋ค ์ค๋ณต๋๋ ํ๋ฉด, ๋ด์ฉ์ด ๋ง์์ต๋๋ค. ํ์ง๋ง ์ ๋ฐ์คํฌ์๋ ์ฝํ ์ธ ๋ชจ๋ธ ๋ด์ง๋ ์ปดํฌ๋ํธ์ ๊ฐ๋ ์ด ์์๊ธฐ ๋๋ฌธ์ PW๋ถ๋ค๊ป์๋ ๋น์ทํ ๋ชจ์๊ณผ ๋ด์ฉ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ๋งค๋ฒ HTML ์ฝ๋๋ฅผ ๋ณต์ฌ, ๋ถ์ฌ๋ฃ๊ธฐ ํ์ค ์๋ฐ์ ์์์ต๋๋ค.
์ด๊ฒ ์ ์ ๋ง์์ง๋ค ๋ณด๋ ๋ฐ๋ณต๋๋ ๋ด์ฉ์ ์์ ํ๊ธฐ ์ํด ํ๋์ฉ ๋ค์ ธ๊ฐ๋ฉฐ ์ฐพ๊ธฐ์๋ ์ด๋ ค์์ด ์์๊ณ ์. ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ค์ ์ ์ฅ์์๋ ์ฝํ ์ธ , ์คํ์ผ, ์คํฌ๋ฆฝํธ๊ฐ ๊ฐ๊ฒฐํฉ๋์ด ์ ์ง๋ณด์์์๋ ๊ต์ฅํ ํฐ ์ด๋ ค์์ด ์์์ต๋๋ค.
๊ทธ๋์ ์กฐ๊ธ ์๋ ๋ง๋ก, ๋ฎ์์ง๋ง ์์ฐํ ๋ค๋ฅธ ๊ฒ๋ค์ด ์ ์ ๊ฐ์ด๋๋ฅผ ๊ฝ๊ฝ ์ฑ์ฐ๊ธฐ ์์ํ ๊ฒ์ ๋๋ค. ์ ๋ ์ง์ง ๋ฏธ์ณ๋ฒ๋ฆด ๊ฒ ๊ฐ์์ฃ .
์ ๋ง ๊ทธ๋ฌ์ง๋ ์์์ ๊ฑฐ๊ณ ์. ๋น์ฐํ PWํ์์๋ ์ด๋ฐ ๋ฌธ์ ์ ๋ํด์ ์ธ์์ ํ๊ธฐ ์์ํ์ต๋๋ค. ์์ฑ๋ ๊ฐ์ด๋๊ฐ ์ฒ ๊ฐ๋ฅผ ๋์ด๊ฐ๋ ์์ ์ด ์ฌํด ์ด์ฏค์ด์๋๋ฐ์. ๊ทธ๋ ์ ์ PWํ์ ๋ถํธํจ์ ํด์ํ๊ณ ์๋ก๊ฐ ์๋ก์ ์ผ์ ์ํ๋ ๋ฐ ์ง์คํ๊ธฐ ์ํด ํค๋๋ฆฌ์ค CMS(Headless CMS)๋ฅผ ๋์ ํ๊ธฐ๋ก ๊ฒฐ์ ํฉ๋๋ค.
ํค๋๋ฆฌ์ค CMS๊ฐ ๋ฌด์์ธ์ง ์ฝ๊ฒ ์ค๋ช ํด๋ณด๊ฒ ์ต๋๋ค. PWํ์ โ์ฝํ ํธํ(Contentful)โ์ด๋ผ๋ CMS์์ ๊ตฌ์กฐํ ๊ฐ๋ฅํ ํํ๋ก ์ฝํ ์ธ ๋ฅผ ์์ฑํ๊ณ , ํ๋ก ํธ์๋ ํ์ ์์ฑ๋ ์ฝํ ์ธ ๋ฅผ API๋ก ๋ถ๋ฌ์ ๋ณด์ฌ์ฃผ๋ ์ฌ์ดํธ๋ฅผ ๋ง๋ค๊ธฐ๋ก ํฉ๋๋ค.
์๋๋ ๋๋ต์ ์ธ ์ ๋ฌด ํ๋ฆ ๋ด์ง๋ ์ ๋ฆฌ๋ ์๋ฃ๋ค์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง๋ฅผ ๊ฐ๋จํ ๊ทธ๋ ค๋ณธ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๊ฒ ํด์ ์ ์ ๊ฐ์ด๋๋ฅผ ๋ฐ๋ฅ๋ถํฐ ์ง์ ๋ง๋ค๊ฒ ๋์์ต๋๋ค. ๊ฐ๋ฐ์๋ค์๊ฒ ํญ์ ์ฆ๊ฑฐ์ด ์๊ฐ์ธ, ๊ธฐ์ ์ ํ์ ์๊ฐ์ด ๋ค๊ฐ์จ ๊ฑด๋ฐ์. ๊ฐ๋จํ ํ๋กํ ํ์ดํ์ ์ํด์ ๋ญ ์ฐ๋ฉด ์ข์๊น ๊ณ ๋ฏผํ๋ค๊ฐ, ์ ๊ฐ ๊ฐ์ฅ ์ต์ํ๋ฉด์๋ ๊ฐ์ฅ ๊ถ๊ธํ๋ โ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธโ๋ฅผ ๋ค๋ค๋ณด๊ณ ์ถ์ด์ Next.js์ ์ฑ ๋ผ์ฐํฐ๋ฅผ ์ ํํ์ต๋๋ค.
์ค์ ๋ก ๊ฐ๋ฐ์ ๋ค์ด๊ฐ๊ธฐ์ ์์, ์ ์ ๊ฐ์ด๋์๋ ๋ค์๊ณผ ๊ฐ์ ํน์ฑ ๋ด์ง๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
1. ๋จผ์ , ์ฝ๋ ๋ธ๋ก ์์ฉ๋ ๋ฑ ๋ค์ํ ์ฝํ ์ธ ๋ฅผ ๋ณด์ฌ์ฃผ์ด์ผ ํฉ๋๋ค
์ด๋ก ์ธํด ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋์ด ๋ฒ๋ค์ด ๋ฌด๊ฑฐ์์ง ์๊ฐ ์์ ๊ฑฐ๊ณ ์.
2. ๋ค์์ผ๋ก๋ GraphQL์ ํตํด JSONํํ๋ก ์ฝํ ์ธ ๋ฅผ ๊ฐ์ ธ์จ๋ค๋ ์ ์ ๋๋ค
์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋์๋ ๋ถ๋ค์ mdx๋ ์ด๋ฐ ํฌ๋งท๋ค์ ์ฌ์ฉํ์ จ๊ฒ ์ง๋ง, ์ด๋ค CMS๋ ๋ณ๋์ ํํ๋ก API๋ฅผ ํธ์ถํด JSONํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ผ ํ๊ณ , ๊ทธ์ ๋ํด ๋ ๋๋ง์ ํด์ค์ผ ํ๋ ํํ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ์. ์ด GraphQL์ ์๊ฐํด๋ณด๋ฉด ์ฟผ๋ฆฌ ๋ณต์ก๋์ ํ๊ณ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฌด๊ฒ๊ฑฐ๋ ๋ณต์กํ ๋ฐ์ดํฐ๋ ์ฌ๋ฌ ๋ฒ ์ฟผ๋ฆฌ๋ฅผ ํ ๋ค์ ์ฌ์กฐํฉํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์กฐํฉ์ ํํ BFF(Backend for Frontend)๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๋ง๋ค์ด ๋ด๋ ค์ค๋ค๋ฉด ๋ ๋๋ง ๋ก์ง ์์ฒด๋ ์ฝ๊ฒ ์งค ์ ์๊ฒ ์ง๋ง, ์ฌ์ค BFF๋ฅผ ๋ง๋ ๋ค๋ ๊ฒ ์์ฒด๊ฐ ์กฐ๊ธ์ ๊ท์ฐฎ์ ์ผ์ด๊ธด ํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ ๋ ๊ฐ์ง๋ฅผ ์กฐ๊ธ ๋ ์ฝ๊ฒ ํด๊ฒฐํด ๋ณผ ์๋ ์์๊น์? ๋ง์ฝ ์ ์ ๊ฐ์ด๋์์ ํด๋ฆญ, ์ ๋๋ฉ์ด์ ๋ฑ ํด๋ผ์ด์ธํธ์์ ์ํธ์์ฉ์ด ์ด๋ฃจ์ด์ง๋ ์ปดํฌ๋ํธ์ ๋ก์ง์ ๋ถ๋ฆฌํ๊ณ ๋๋จธ์ง๋ ์๋ฒ์์ ๋ ๋๋ง์ ์ํํด ํด๋ผ์ด์ธํธ๋ก ๊ฒฐ๊ณผ๋ง ์ ์กํ๋ค๋ฉด ์ด๋จ๊น์? ๊ทธ๋ ๋ค๋ฉด ๋ฒ๋ค ํฌ๊ธฐ๋, ๊ทธ๋ฆฌ๊ณ ์ ๊ฐ ํด์ผ ํ ์ผ๋ ์ด์ ์ค์ด๋ค ๊ฒ์ ๋๋ค. ํนํ ์ ๊ฐ ํ ์ผ์ด ์ค์ด๋ ๋ค๋ ๊ฒ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ ๋๋ค. ์ด๊ฒ์ ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ผ๋ก ์ดํดํด ์ฃผ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ค์ ์ ํฌ ์ฌ๋ก๋ก ์ด์ผ๊ธฐ๋ฅผ ํด๋ณด์๋ฉด, ๊ธฐ์กด์ VSCode์ฒ๋ผ ์ฝ๋๋ฅผ ํ์ด๋ผ์ดํ ํด์ฃผ๋ shiki.js๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค. shiki.js๋ฅผ ๊ธฐ์กด์ ์ฌ์ฉํ๋ ค๋ฉด ์ธ์ด ํ์, ์น์ด์ ๋ธ๋ฆฌ ๊ตฌ๋ ๋ก์ง ๋ฑ ์ฝ 1~2๋ฉ๊ฐ ์ ๋์ ๋ฒ๋ค์ด ํฌํจ๋์ด ๋ฒ๋ค ์ฌ์ด์ฆ๊ฐ ๋์ด๋๊ฒ ๋๋๋ฐ์.
์ด๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ด์ ์๋ฒ์ ์์ํ๊ณ ํด๋ผ์ด์ธํธ์์๋ ๊ฒฐ๊ณผ๋ง ๋ฐ๋๋ก ๋ณ๊ฒฝํ์ฌ ๋ฒ๋ค ์ฌ์ด์ฆ๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์์์ต๋๋ค.
๋ํ DB ์ฟผ๋ฆฌ๋ API ํธ์ถ์ ์ปดํฌ๋ํธ ์์์ ์ง์ ํ ์๋ ์์ต๋๋ค.
์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก ๋ ๋๋ง ๊ฒฐ๊ณผ๋ง ์ ์กํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ BFF๋ฅผ ๋ง๋ค์ง ์์๋ ๋๊ณ ๋ง์ฝ์ ์ค๋ ๊ฑธ๋ฆฌ๋ ๋ ๋๋ง ์์ ์ด ์๋ค๋ฉด ํด๋น ๋ ๋๋ง ์์ ์ ์์คํ์ค๋ก ๋ฌถ์ด ์ ์ง์ ๋ ๋๋ง, ์ฆ ์คํธ๋ฆฌ๋ฐ์ ์์ฝ๊ฒ ๊ตฌํํ ์ ์์์ต๋๋ค.
์ ๊ฐ ์ด๊ฒ์ ํ๋กํ ํ์ดํ์ ํ 3์ผ ๋ง์ ๋๋๋๋ฐ์. ์๊ฐ๋ณด๋ค ์ข ์ฝ๊ฒ ๋์ต๋๋ค. ๊ทธ๋์ โ์ด๊ฑฐ ์๋ ํ๋ ๋์ ๋ณด๋ ๋ง๋๋ ์ผ๋ณด๋ค ๋๋ฌด ์ฌ์ด๋ฐ ์ด๊ฑฐ ๊ธ๋ฐฉ ๋๋๊ฒ ๋คโ ์ด๋ฐ ์๊ฐ์ ์ข ํ๋๋ฐ์, ์ค์ ๋ก ๊ทธ๋ฌ๋ค๋ฉด ์ด ๊ธ์ ์ฐ์ง ์์์ ๊ฒ๋๋ค. ๊ฒฐ๊ตญ ๊ทธ ์ ๋ณด๋ฅผ ํธ๋๊ฒ ๋นํ์ฃ .
๊ฐ๋ฐ ๊ณผ์ ์์ ๋ง๋ ๋ฌธ์ ๋ค
1. ์ ํ ์์ฝ๋์ธ์ ๊ฒ์ํ ์ ์๋์?
์ด์ ์ ๊ฐ ๊ฒฝํํ๋ ๋ฌธ์ ๋ค ์ค์์ ์๋์ ์ผ๋ก ๊ฐ๋จํ๊ฒ ํ๋ฆฐ, ํ์ง๋ง ์ข ๊ณ ๋ฏผํด ๋ณผ ์์๊ฐ ์๋ ๋ฌธ์ ๋ ๊ฐ์ง๋ฅผ ๊ผฝ์์ ์ด์ผ๊ธฐํ๋ ค๊ณ ํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ๋ฌธ์ ๋ ์์ธ๋ก ์์ฝ๋์ธ์ ๋ง๋ค๋ฉด์ ๋ฐ์ํ์ต๋๋ค. ๋ด์ฉ์ ์ ์๋ค ํผ ์ ์๋ UI๋ฅผ โ์์ฝ๋์ธโ์ด๋ผ๊ณ ํ๋๋ฐ์.
์ด ์์ฝ๋์ธ์ QA ํญ๋ชฉ์ด ํ ์ค ์ถ๊ฐ๋ฉ๋๋ค.
โCommand+F๋ก ํน์ ๋ด์ฉ์ ๊ฒ์์ ํ์ ๋, ํด๋น ๋ด์ฉ์ด ์์ฝ๋์ธ ์์ ๋ค์ด์๋ค๋ฉด ์๋์ผ๋ก ์์ฝ๋์ธ์ด ํผ์ณ์ก์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.โ ์ด๋ฐ ๋ด์ฉ์ด์ฃ . ์ด QA ํญ๋ชฉ์ด ์ฌ๋ผ์ค์๋ง์ ๋ฐ๋ก ํ ์ค์ ๋ ์ถ๊ฐ๋ฅผ ํ์๋๋ผ๊ณ ์.
๊ฒฝ์์ฌ์์ ๋๋ค๋ ๊ฑฐ์์. ๋ฐ์ ๋ด์ฉ์ด ์ ์์์ ์ด์์ ํ์ต๋๋ค. ์ฌ์ง์ด ์ด์ ๊ฒฝ์์ฌ์์ ๋๋ค๋ ๋ด์ฉ๊น์ง ์์ด์ ์ ๋ ๋๋ง๊ฐ ์๊ฐ ์์์ด์.
์ ๋ง ์ถฉ๊ฒฉ์ ์ธ ์ํฉ์ด์๋๋ฐ์.
๊ทธ๋๋ ๋ญ ์ด๋ ๊ฒ ๋ ๊ฑฐ ๋๋ง์น ์ ์์ผ๋ ์ฆ๊ฒจ์ผ๊ฒ ์ฃ . ๊ทธ๋์ ์ด์ฌํ ์๋ฃ๋ฅผ ์ฐพ์๋ณด๊ณ ๋ ๊ฒฝ์์ฌ ์ฌ์ดํธ๋ ์ข ์ด๊ฒ์ ๊ฒ ๋ฏ์ด๋ณด๋ค๊ฐ HTML ์คํ์ ์ถ๊ฐ๋ ์์ฑ๊ณผ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. ๋ฐ๋ก hidden="until-found"
์์ฑ๊ณผ beforematch
์ด๋ฒคํธ์
๋๋ค.
hidden="until-found"
์์ฑ์ ์ ๋ณด ์ ๊ทผ์ฑ ํฅ์์ ์ํด ์ถ๊ฐ๋์์ผ๋ฉฐ, ๊ฒ์์์ ์ผ์นํ๋ ํญ๋ชฉ์ด ํด๋น ์์ญ ๋ด์ ์์ ๋ beforematch
์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด์ ํด๋น ์ด๋ฒคํธ๋ฅผ ์ ํฌ๊ฐ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ก ๋ฐ์์ ์ปค์คํ
๋์์ ์ํํ ์๋ ์์ ๊ฒ๋๋ค. ์ด ์คํ ์์ฒด๋ ์๋์ ์ผ๋ก ์ต๊ทผ์ ์ถ๊ฐ๋์๊ณ , ๊ธฐ๋ณธ ์คํ์ผ์ด ์ ์ฉ๋์ด ์ด hidden="until-found"
๋ฅผ ์ ์ฉํ๋ฉด ๋๋๋ง ์ํ๋ ์ ์งํ๋ฉฐ ์์๋ ์จ๊ธฐ๋ content-visibility: hidden
์ด ์ ์ฉ๋ฉ๋๋ค. ์ฝ๊ฒ ์๊ฐํ์๋ฉด display: none
๊ณผ visibility: hidden
์ด ํฉ์ณ์ง ์คํ์ผ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฉ๋๋ค๊ณ ์ดํดํด ์ฃผ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด ์์ฑ ํ๋๋ง ์ ์ฉํ๋ฉด ๋ค ๋ ๊น์? ํ๋ฒ ๋ฐ๋ก ์ ์ฉํด๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์ฝ๋๋ก ์ข ๋์ด๊ฐ ๋ณด๋ฉด์. hidden="until-found"
๋ฅผ ๊ทธ ํด๋น ์์ญ์ ์ ์ฉํ๊ณ , ์์ฝ๋์ธ์ ํผ์น๋ ํธ๋ค๋ฌ๋ฅผ ์ ์ธํ ๋ค์ beforematch
์ด๋ฒคํธ์ ๋ํ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋ฑ๋กํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ํ๋ฒ ํด๋ณผ๊น์? ์ด์ฌํ ์ํฐ๋ฅผ ๋๋ฌ๋ณด์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ๋์ํ์ง๊ฐ ์์ต๋๋ค. ๋ด๊ฐ ๋ญ ์๋ชปํ๋, ๋ญ๊ฐ ์๋ชป ์ ์ฉํ ๋ถ๋ถ์ด ์๋ ํด์ ์ด์ฌํ ์ฐพ์๋ณด์๋๋ฐ, ํฌ๋กฌ ์ธ์คํํฐ๋ฅผ ์ผ๋ณด๋๊น JSX์ ๋ฃ์ ํ๋ ์์ฑ์ด ๋ ๋๋ง๋ ๊ฒฐ๊ณผ์์๋ ๋ค๋ฅด๊ฒ ๋ํ๋ฉ๋๋ค.
๋ถ๋ช ์ ๊ฐ ์๋ชป ์์ฑํ ๊ฒ์ ์๋๋ฐ ์ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๊น์? ํ๋ฒ ์ด ๋ฌธ์ ๋ฅผ ๋ ๋๋ง ๋จ๊ณ๋ฅผ ๋๋ ์ ์๊ฐํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ ๋๋ง ๋จ๊ณ๋ฅผ ๋ณด๋ฉด, JSX๋ก ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ๋ฆฌ์กํธ์์ ์ฝ์ด์, ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ก ๋ณํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ํ์ ์ ๋ฐ์ดํธ, ์ดํํธ๊ฐ์ด ๋ ๋๋ง ๋์์ ์ฐ์ฐํ ๋ค์ ReactDOM์ด ์ค์ ๋ก DOM์ ๋ฐ์ํฉ๋๋ค. ๋์์ ์ด์ DOM API๋ฅผ ์ฐ๊ฒฐํด์ ํด๋ฆญ ๊ฐ์ ์ธํฐ๋์ ์ด ํ์ฑํ๋๊ฒ ์ฃ .
์ด๊ฒ ์ ํํ ์ค๋ช
์ ์๋์ง๋ง ๋๋ต์ ์ธ ๋ ๋๋ง ํ๋ฆ์ ๋ณด์๋ฉด ์ด๋ ๊ฒ ๋ง์๋๋ฆด ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ๋ฐ๋ก ReactDOM์ ์ฃผ๋ชฉํ ํ์๊ฐ ์์ต๋๋ค. hidden
์์ฑ์ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ฐ๊พผ ๊ณณ์ด ๋ฐ๋ก ์ด๊ณณ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ทธ๋์ ๋ค์ ์ฝ๋๋ ReactDOM์ ์ฝ๋ ์ค ํ ๋ถ๋ถ์ ๊ฐ์ ธ์๋๋ฐ์. ์ฌ๊ธฐ์ ํ์ด๋ผ์ดํ ํ ๋ถ๋ถ์ ๋ณด์๋ฉด ์ผ์ด์ค ์ ์ ์๋ ์์ฑ๋ค์ function์ด๋ symbol์ด ์๋๋ฉด ๋ชจ๋ ๋น ๋ฌธ์๋ก ๋ณํ๋ฉ๋๋ค.
์ด๋ ํ๋ก๋์ ์์ ๋ฐ์ ๊ฐ๋ฅํ ๋ณด์ ๊ด๋ จ ๋ฌธ์ ๋ ์ถฉ๋์ ์ต์ํํ๊ธฐ ์ํด์ ReactDOM์ด ๊ฐ๊ณ ์๋ ์์ฑ ๊ฐ ๊ฒ์ฆ ๋ก์ง์ธ๋ฐ์. ์ด ์์ฑ๊ฐ ๊ฒ์ฆ ๋ก์ง์ด ์ฐ๋ฆฌ๊ฐ ์ฃผ์๋ ํ๋ ์์ฑ์ ๋ฐ๊ฟจ๋ค๊ณ ์์์ ํด๋ณผ ์ ์์ต๋๋ค.
๋ฆฌ์กํธ ํ๋ ์ด๊ฑธ ์ด๋ฏธ ์๊ณ ์์ต๋๋ค. ์ด๋ฏธ ์ฝ์ด ์ปจํธ๋ฆฌ๋ทฐํฐ์ ์ํด์ 1๋ ์ ์ ์ด์๊ฐ ์ฌ๋ผ์๋๋ฐ์. 1๋ ์งธ ์ ๋ฐ์ดํธ๋ ์๊ณ ๊ทธ๋์ ๋ฆฌ์กํธ๊ฐ ์๋ฒ ์ปดํฌ๋ํธ ์ค๋นํ๋ค๊ณ ๋ด๋ถ์ ์ผ๋ก ์ฝ๋๊ฐ ์์ฒญ ๋ง์ด ๋ฐ๋์ด์ ์ด PR์ด ์ฌ์ค์ ๋ฌด์ฉ์ง๋ฌผ์ด ๋์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ํฌ๊ฐ ์ด๋ฐ ๋น์ทํ ๊ฒ๋ค์ ๋ ์ ์ ๊ฐ์ด๋ ๋ง๋ค๋ฉด์ ๋ช ๊ฐ ์์ ์ ํด์ผ ๋๊ธฐ ๋๋ฌธ์, ์ ์คํธ๋ฆผ์ ๋ฏ์ด์ ํจ์น ํจํค์ง ๊ฐ์ ๊ฑธ๋ก ์ฝ๋๋ฅผ ์์ ํ๋ ๋ฐฉํฅ์ ์๊ฐํ์ง ์๊ธฐ๋ก ํ์ต๋๋ค.
์ ๋ฆฌ๋ฅผ ํ์๋ฉด, ์ ๊ฐ ์ฃผ์๋ hidden="until-found"
์์ฑ์ ์ฌ๋ฐ๋ฅธ HTML์ ์คํ์
๋๋ค. ํ์ง๋ง ํฌ๋กฌ 12๋ถํฐ ์ ์ฉ ๊ฐ๋ฅํ, ์๋์ ์ผ๋ก ์ต์ ์คํ์ด๊ธฐ ๋๋ฌธ์ ๋ฆฌ์กํธ์์๋ ๋ฐ์๋์ง ์์๊ณ , ๋ฆฌ์กํธ๋ ์ด๋ฅผ ์๋ชป๋ ๊ฐ์ผ๋ก ์ธ์ํด์ ๋น ๋ฌธ์๋ก ๋ณํ์ ํ ๊ฒ์
๋๋ค.
๊ทธ๋์ ์๋ ์์ฒด๋ ์๊ฒ ์ง๋ง ๊ฒฐ๋ก ๋ง ๋๊ณ ๋ณด์๋ฉด ์ฝ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๊ทผ์ฑ์ ์ํ ๊ธฐ๋ฅ์ ์ ํํ๋ค๊ณ ๋ณผ ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด๋ฌํ ์ํฉ์์๋ ์ด๋ป๊ฒ ํด์ผ ๋ ๊น์? ๊ด์ ์ ํ๋ฒ ๋ฐ๊ฟ๋ด ์๋ค.
๊ทธ๋์ ์๊น์ ๋ ๋๋ง ๋จ๊ณ๋ฅผ ๋ค์ ๋ณด๊ฒ ์ต๋๋ค.
๋ง์ฝ์ ์ ํฌ๊ฐ ReactDom์ ๊ฑด๋๋ฆด ์ ์๋ค๋ฉด ๋ ๋๋ง์ ๊ด์ฌํ๋ ๋ค๋ฅธ ์์๋ฅผ ์์ด๋ฉด ๋ฉ๋๋ค. ์ ๋ ๊ทธ์ค์์ ๋ธ๋ผ์ฐ์ , ์ ํํ๋ HTML ์ชฝ์ ์ฌ์ฉํด์ ReactDom์ ์์ฌ๋ณด๊ธฐ๋ก ํฉ๋๋ค.
์ฌ๋ฌ๋ถ๋ค๊ป ํ ๊ฐ์ง ์ง๋ฌธ์ ์ข ๋๋ ค๋ณด๊ฒ ์ต๋๋ค. ๋ค์ ์ฝ๋๋ ๋์ํ ๊น์?
์ฌ๋ฌ๋ถ๋ค์ด ์ด์ ๋ณดํต JSX์์ ์คํ์ผ์ ์ค ๋์๋ ์ค๋ธ์ ํธ๋ก ๋ฃ์ด์ฃผ์ จ์ ๊ฒ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ง๊ธ ์ฝ๋๋ ๋ฌธ์์ด๋ก ์คํ์ผ์ ์ฃผ๊ณ ์์ฃ ์ด ์ฝ๋๋ ๊ณผ์ฐ ๋์์ ํ ๊น์? ์ ๋ต์ โ๋์ํ๋คโ์ ๋๋ค.
์์ STYLE์ด ๋๋ฌธ์์ธ ๊ฒ์ ํ์ธํ ์ ์์ ํ
๋ฐ์. ์ฌ์ค ๋ชจ๋ HTML ์์ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก HTML์ด ๋ง๋ค์ด์ก์ ๋๋ถํฐ ๊ทธ๋ฌ๊ณ ์. ๊ทธ๋ฆฌ๊ณ ReactDom์ ์ ์๋ ์๋ฌธ์ ์์ฑ๋ค, ๊ทธ๋ฆฌ๊ณ ๋์๋ฌธ์ ๊ตฌ๋ถ ์์ด on
์ผ๋ก ์์ํ๋ ์์ฑ๋ค์ ๊ฒ์ฆํฉ๋๋ค.
์ด๋ฅผ ํ์ฉํด์ JSX์ ๋๋ฌธ์๋ก ์์ฑ์ ์ ๋ ฅํ๋ฉด JSX๋ ๊ทธ๋๋ก ํ์ํ ๊ฒ์ด๊ณ , ReactDom์ ๋ณ๋์ ๊ฒ์ฆ ๋ก์ง์ ๊ฑฐ์น์ง ์์ ๊ฒ์ด๋ฉฐ, ๊ทธ๋ ๊ฒ ํด์ ์ด์ ๋๋ฌธ์ ์์ฑ์ด ์ ์ฉ๋ DOM์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ ฅํ ๊ฒ๊ณผ ๋์ผํ๊ฒ ๋์ํ ๊ฒ์ ๋๋ค.
๊ทธ๋ผ ์ด์ ์ฐ๋ฆฌ๋ ์๊น์ beforematch
์ด๋ฒคํธ ๋ฆฌ์ค๋๋ง ์ถ๊ฐํ๋ฉด ์ ์์ ์ผ๋ก ๋์์ด ๋๊ฒ ์ฃ . ๋ฐ๋ก ํ๋ฒ ์ฝ๋์ ์ ์ฉ์ ํด๋ณด๊ฒ ์ต๋๋ค. ์๊น์ ์ฝ๋๋ก ๋์์์, ์๋ฌธ์ hidden
์ ๋๋ฌธ์๋ก ๋ฐ๊พธ๊ณ , ์คํํด๋ณด๊ฒ ์ต๋๋ค.
๋ณด์๋ ๊ฒ์ฒ๋ผ ์ ๋์ํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์๊น ์ ์ ์ ํฌ๊ฐ ํฌ๋กฌ์ธ์คํํฐ(chrome inspector)๋ฅผ ์ผฐ์ ๋ ๋ ๋๋ง๋ ๊ฒ ์กฐ๊ธ ์ด์ํ๊ฒ ๋์๋๋ฐ ์ ๋๋ก ์ด๋ฒ์๋ ํ์๊ฐ ๋ ๊น์? ์ ๋๋ก ํ์๋ฉ๋๋ค.
์ด๋ ๊ฒ ์ฐํ๋ฅผ ํตํด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ง์ํ์ง ์๋ ์ต์ HTML ์คํ์ ์ฌ์ฉํ ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฌ๊ธฐ์ ํ ๋ฐ์ง ๋ ๋์๊ฐ, ๋ง์ฝ์ ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ๊ณ ์ถ๋ค, ๋ญ๊ฐ ์ ํ๋ค ํผ์ณ์ก๋ค ํ๋ฉด์ ๋์ด๊ฐ ์์ ๋กญ๊ฒ ๋ณํ๋ ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ๊ณ ์ถ๋ค๋ฉด, ์ด๋ป๊ฒ ํ๋ฉด ์ข์๊น์? ์ ๋๋ฉ์ด์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก DOM์ ์์ญ์ด๊ณ ์ ๋๋ฉ์ด์ ์คํ ๊ด๋ จ ์ ์ด๋ฅผ ์ํด์๋ ๋ฆฌ์กํธ ๋์์ด ์ข ํ์ํ ๊ฒ ๊ฐ๊ธด ํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด ๋ถ๋ถ๋ ๋ฐ๋ก ์ฝ๋๋ก ์๊ฐํด๋ณด๋ฉด, ์ฐ์ hidden="until-found"
์๋ ์๊น ๋ง์๋๋ ธ๋ ๊ธฐ๋ณธ ์คํ์ผ์ธ content-visibility: hidden
์ด ์์ต๋๋ค. ์ด ์คํ์ผ์ด ์ ์ฉ๋๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋๋ฉ์ด์
์์ฒด๊ฐ ์ ๋๋ก ๋์ํ์ง ์์ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ์ด๊ฑธ ์ ๋๋ฉ์ด์
์คํ ์ค์๋ ์ ๊ฑฐํด์ผ ํ๊ณ ์. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ๋๋ฉ์ด์
์คํ์ ์ํ ์ํ๋ฅผ ์ถ๊ฐํ๊ณ , ์์ฝ๋์ธ์ด ํผ์ณ์ ธ ์๊ฑฐ๋ ์ ๋๋ฉ์ด์
์ด ์คํ ์ค์ผ ๋ hidden
์์ฑ์ ๋น์์ผ๋ก์จ ์ ๋๋ฉ์ด์
์คํ์ ๋ฌธ์ ๊ฐ ์๋๋ก ๋ง๋ค๋ฉด ๋ฉ๋๋ค.
์ฐธ๊ณ ๋ก ์ ์ ๋๋ฉ์ดํธ๋ ํ๋ ์ด๋จธ ๋ชจ์ ์์ ์ ๊ณตํ๋ ํจ์์ด๊ณ ์. ํ๋ ์์ํฌ๋ฅผ ๋ฑํ ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ๋ถ๋ค์ด ๋ง์ฝ์ vue๋ ๋ค๋ฅธ ๊ฒ๋ค์ ์ฌ์ฉํ์ ๋ค๋ฉด, ๊ธฐ๋ณธ์ ์ธ ๋ฉ์ปค๋์ฆ ์์ฒด๋ ๋น์ทํ๊ธฐ ๋๋ฌธ์ ๊ฑฐ๊ธฐ์๋ ์ฌ์ฉํ์ค ์ ์์ ๊ฒ๋๋ค. ๊ทธ๋ผ ํ๋ฒ ๋ ๋ณด๊ฒ ์ต๋๋ค.
์ ๋๋ฉ์ด์ ๋ ์ ๋์์ ํ๊ณ ์. ๊ฒ์ํ์ ๋ ๋ด์ฉ๋ ์ ํผ์ณ์ง๋๋ค. ์ด์ ์ข ๋ฟ๋ฏํฉ๋๋ค. ์ด์ ๊ฒฝ์์ฌ์์ ๋๋ ๊ธฐ๋ฅ ์ฐ๋ฆฌ๋ ๋๋ค๊ณ ๋งํ ์ ์๊ฒ ๋๋ค์.
2. ์ ์ ์ฌ์ดํธ ์์ฑ์ ์ ์ ํ ๋ฐฉ๋ฒ์ธ๊ฐ์?
๋ ๋ฒ์งธ ๋ฌธ์ ๋ ๊ฐ์ด๋๋ฅผ ์ด์ ํ๋ฉด์ ๋ฐ์ํ์ต๋๋ค. ์ฌ๋ฌ๋ถ๋ ์ ๋ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ํ ๋ ๋ณดํต ๋ณด์ผ๋ฌ ํ๋ ์ดํธ๋ฅผ ๋ง์ด ํ์ฉํ์ค ๊ฒ๋๋ค. ์ ๋ ์ ์ ๊ฐ์ด๋๋ฅผ ๋ง๋ค๋ฉฐ CMS ์์๋ฅผ ๋ด์ ๋ณด์ผ๋ฌ ํ๋ ์ดํธ(Boiler Plate)๋ฅผ ๋ง์ด ์ฐธ๊ณ ํ๋๋ฐ์. ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ๋๋ถ๋ถ์ด ์ ์ ์ฌ์ดํธ ์์ฑ(Static Site Generation, SSG)์ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค. ์๋ง ์ฝํ ์ธ ์ ๋ณ๊ฒฝ์ด ์์ฃผ ์์ง ์๊ณ , ์ด๊ธฐ ๋ก๋ฉ ์๋๋ SEO ๊ด๋ จ ์งํ ํฅ์์ ์ํด์ SSG๋ก ์ค์ ํ์ ๊ฒ๋๋ค. ์ ๋ ๊ทธ ๋ถ๋ถ์ ์์ด์ ๋ณ๋ก ๊น๊ฒ ์๊ฐํ์ง๋ ์์์ต๋๋ค. ๋น์ฐํ ์ ์ ๊ฐ์ด๋๋ ๋ณ๊ฒฝ์ด ์ ์ผ๋ ์ ์ ์ฌ์ดํธ๊ณ , ๋ง์ฝ ์์ ์ด ์ฆ์์ง๋ค๋ฉด Next.js์ ์๋ ๋ณ๊ฒฝ๋๋ ํ์ด์ง๋ง ์ฌ์์ฑํ๋ ISR(Incremental Static Regeneration)์ ์ ์ฉํ๋ฉด ๋๋ค๊ณ ์๊ฐํ์ต๋๋ค.
๊ทธ๋ ๊ฒ ๋ณ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํ๋๋ฐ, ์ฌ๊ธฐ์๋ ์ ๊ฐ ํ ๊ฐ์ง ๊ฐ๊ณผํ ๊ฒ ์์์ต๋๋ค. ๋ฐ๋ก ์ฌ๋์ ํ ๋ฒ์ ์ด์ฌ๋ฅผ ๋ฐ๋ก ๊ฐ์ง ์๋๋ค๋ ์ ์ด์์ต๋๋ค.
์ด๋ ๊ฒ ์ด์ฌ ๊ฐ๋ฉด ํฐ์ผ ๋์ฃ . ์ด์ ๋๋ก๊ฐ ์นดํธ๋ผ์ด๋๊ฐ ๋๊ณ ๋ง ๋์ฅํ์ด ๋ฉ๋๋ค.
์ ๋ ์ ์ง์ ์๊ฒ ์ฃ .
PWํ์์๋ ๋ช ์ฒ ๊ฐ์ ๊ธฐ์กด ๊ฐ์ด๋๋ฅผ ํ๋ํ๋ ๊ฒ์ํ๊ณ ์์ ํ ๋ค์ ํ๋์ฉ ์๋ก์ด CMS๋ก ์ด ๊ฐ์ด๋ ์ฝํ ์ธ ๋ฅผ ์ด์ ํ์ต๋๋ค. ๊ทธ๋์ ๊ทธ์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ด ์๊ฐ์ ๋ฐ๋ผ ์ด์ ๋๋ ๊ฐ์ด๋์ ์์ด ๋์ด๋ฌ์ฃ . ๊ทธ๋ฆฌ๊ณ ์์ด ๋์ด๋ ์๋ก ๋น๋ ์๋ ์ญ์ ๊ฐ์ด ๋์ด๋์, ์ฒ์์ 1๋ถ ์ ๋ ๊ฑธ๋ ธ๋ ๋น๋๊ฐ 5์ ์ค์์ ๋ณด์๋ฉด 7 8๋ถ์ ๋๋ ๊ฒ์ ํ์ธํ์ค ์ ์์ ๊ฒ๋๋ค.
์ด๊ฒ ๋๋ฌธ์ ์ ๋ฐ์ดํธ๊ฐ ๋๋ฆฐ ๊ฒ ๊ฐ๋ค๋ PW ๋ถ๋ค์ ๋ฆฌํฌํธ ์ญ์ ๋ง์ด ๋์ด๋๊ธฐ ์์ํ๊ณ ์. ์ด๋๋ถํฐ ๊ฐ์ด๋์ ๋ฐฐํฌ์ ๋ฐ์๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ค์ผ ์๋ ์์๊น ๊ทธ๋ฐ ๊ณ ๋ฏผ์ ํด๋ณด๊ธฐ ์์ํ์ต๋๋ค.
์ฐ์ ์ ๊ฐ ์์ ๋ณด์ผ๋ฌ ํ๋ ์ดํธ๋ฅผ ํ์ฉํ์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก SSG๋ฅผ ํ๊ณ ์์๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก ์ด์ CMS์์ ๊ฐ์ด๋ ์์ฑ, ์์ , ์ญ์ ๊ฐ ์ผ์ด๋๋ฉด ๋ฌด์กฐ๊ฑด ์นํ ์ ๋ณด๋ด ์๋ก ๋น๋๋ฅผ ๋๋ฆฌ๋ ๊ตฌ์กฐ๋ฅผ ์ทจํ๊ณ ์์์ต๋๋ค.
์๊น ๋ง์๋๋ ธ๋ ๊ฒ์ฒ๋ผ ISR์ ํ์ฑํํ์ฌ ํน์ ํ์ด์ง๋ง ์ฌ์์ฑํ๋๋ก ๋ณ๊ฒฝํ์ฌ ๋น๋ ํ์ ์์ฒด๋ ์ค์ผ ์ ์์์ต๋๋ค. ํ์ง๋ง ์ฌ์ ํ ๋น๋ ์๋๋ ๋๋ ธ๊ณ ๋ฌด์๋ณด๋ค ์์ง ํด๊ฒฐํ์ง ๋ชปํ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
์ ๊ฐ ์ ํฌ ์ ์ ๊ฐ์ด๋์์ ์ฝํ ์ธ ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ ๊ณณ์ ํ๋ฒ ์์ผ๋ก ์น ํด๋ณด์๋๋ฐ์.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ ์ด์ ๋ ์กฐ๊ธ ์ด์ด์๊ฒ๋ ๋ ธ๋๊ฒ ์น ํ ์ผ์ชฝ์ ์ฌ์ด๋ ๋ฐ ๋๋ฌธ์ ๋๋ค. โ์ฌ์ด๋ ๋ฐ๊ฐ ๋ฌด์จ ์๋ชป์ ํ๊ธธ๋ ์ด๊ฒ ์ํฅ์ ์ฃผ๋โ ์๊ฐํ์ค ์๋ ์๋๋ฐ์. ๋ง์ฝ ๊ฐ์ด๋๊ฐ ์ญ์ ๋๊ฑฐ๋ ์ ๋ชฉ์ด ๋ฐ๋๋ฉด ํน์ ๊ฐ์ด๋ ๊ฐ์ ์์๊ฐ ๋ฐ๋๋ฉด, ์ ์ ๊ฐ์ด๋์ ๋ชจ๋ ํ์ด์ง์ ๋์ผํ ์ฌ์ด๋ ๋ฐ๋ฅผ ๋ ธ์ถํ๊ธฐ ์ํด ์ ๋ฐ์ดํธ๊ฐ ํ์ํด์ง๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ชจ๋ ํ์ด์ง์ ์ฌ์ด๋ ๋ฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ์ฐ์ ๊ฐ์ด๋ ์ซ์ ๊ณฑํ๊ธฐ ์ง์ ์ธ์ด ์๋งํผ ์ฌ์์ฑ ์์ฒญ์ ๋ณด๋ผ ์ ์์ ๊ฒ๋๋ค. ์ ํฌ ๊ฐ์ด๋๋ ๋๋ต ํ 1์ฒ ๊ฐ๊ฐ ๋๊ณ ์ง์ํ๋ ์ธ์ด๋ก๋ ํ๊ตญ์ด ์์ด, ์ผ๋ณธ์ด, ์ค๊ตญ์ด๊ฐ ์์ต๋๋ค. ๊ทธ๋ผ ์ฒ ๊ณฑํ๊ธฐ 4๋ฅผ ํด ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๋ฉด ์๋ฒ๊ฐ ๋ฒํธ ์ ์์๊น์? ๋น์ฐํ ๋ชป ๋ฒํ๋๋ค. ์๋ฒ๊ฐ ๊ณผ๋ถํ๋ก ์ ์์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ๋ ๋๋ฌผ์ ํ๋ฆฌ๋ฉด์ ๋๋ฆฌ์ง๋ง ํ์คํ ์๋ก์ด ๋น๋ ๋๋ฆฌ๊ธฐ๋ฅผ ํ ์๋ฐ์ ์๋ ์ํฉ์ด์๊ณ ์. ์ด๊ฒ ๊ต์ฅํ ์ข ๋ง์์ด ๊ทธ๋ฌ์ต๋๋ค. ์ด๊ฒ ๋ง์ฝ์ ์ ์ ๊ฐ์ด๋ ์ด์ ๊ณผ์ ์์๋ง ๋ฐ์ํ๋ ๋ฌธ์ ๋ผ๋ฉด ๊ทธ๋ฅ ๋์ด๊ฐ ์๋ ์์์ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ง๋ง ์ ํฌ๊ฐ ๊ธฐ์กด ์ ์ ๊ฐ์ด๋๋ฅผ ๊ด๋ฆฌํ๋ ์ ๋ฐ์คํฌ์ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ํ์ธํด ๋ณด๋, ๋ชป ํด๋ ํ๋ฃจ์ 3๋ฒ์ ์์ ์ด ์ด๋ฃจ์ด์ง๊ณ 4์ผ๋ง๋ค ์ต์ 2๊ฐ์ ๊ฐ์ด๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
๋ฌผ๋ก ์ฐธ์ ์๋ ์๊ฒ ์ง๋ง โ์กฐ๊ธ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ง ์์๊นโ ์ด๋ฐ ์๊ฐ์ด ๋ค์ด์ ์ข ๊น๊ฒ ๊ณ ๋ฏผ์ ํ๊ณ ์์๋๋ฐ์. ๊ทธ๋ฐ ๊ณ ๋ฏผ์ ํ๋ค๊ฐ ์ฐ์ฐํ ํ๋์ ์์์ ๋ณด๊ฒ ๋ฉ๋๋ค.
Next.js App Router๊ฐ Pages Router๋ณด๋ค ๋๋ฆฌ๋ค๋ ๊ฒ์ ๋ฐ๋ฐํ๋ ์์์ธ๋ฐ์. ์ฐธ๊ณ ๋ก ์ด ์ธ๋ค์ผ์ ๋์ค๋ ์ด ๋ถ์ ํ ์ค ๋ธ๋ผ์ด(Theo Browne)์ด๋ผ๋ ๋ถ์ธ๋ฐ์. ํธ์์น์์ ์๋์ด ํ๋ก ํธ์๋ ์์ง๋์ด๋ก ์ผํ๋ค๊ฐ ์ง๊ธ์ ์คํํธ์ CEO ๊ฒธ ๊ฐ๋ฐ ๊ด๋ จ ์ ํ๋ฒ๋ฅผ ํ๋ ๋ถ์ ๋๋ค. ์์์ ๋ด์ฉ ์ค์์ ์ค๋ณต๋ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์ด ์์์ต๋๋ค.
์ ๋ณด์ด์ค์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง, ํฌ์ผ๋ชฌ ํฌ์ผ๋ชฌ 1, ํฌ์ผ๋ชฌ 2์ ๊ฐ์ด ์ค๋ณต๋ ์์ฒญ์ด ์์ ๋ ์ฑ ๋ผ์ฐํฐ๋ ๋ฐ์ดํฐ ์บ์๋ฅผ ์ด์ฉํ๊ธฐ์ ์ฑ๋ฅ์ ์ผ๋ก ๋ ๋น ๋ฅด๋ค๋ ๋ด์ฉ์ ์ด์ผ๊ธฐํ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด์ ์ค์ ๋ก oha๋ผ๋ ๊ฒ์ผ๋ก ๋ฒค์น๋งํฌ๋ฅผ ๋๋ ค๋ดค์ ๋, ์๋ ๋ณด์๋ ๊ฒ์ฒ๋ผ ํ์ด์ง์ค ๋ผ์ฐํฐ ๋๋น ์ฑ ๋ผ์ฐํฐ๊ฐ 3๋ฐฐ ์ด์ ๋น ๋ฅด๋ค๊ณ ์ฃผ์ฅํ์ฃ .
์ ๋ ์ด ๋ถ๋ถ์ ๋ณด๊ณ , ๋ด์ฉ์ด ์ณ๊ณ ๊ทธ๋ฆ์ ๋ ๋์ ์ ๊ฐ ์๊ฐํ๋ ๋๋๋ง์ ๋จ์๋ฅผ ๋ฐ๊ฟ๋ณผ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ์ ๋ SSR, SSG, ISR ๊ฐ์ด ํ์ด์ง ๋จ์๋ฅผ ์ค์ฌ์ผ๋ก ๋ ๋๋ง์ ์๊ฐํ์ต๋๋ค. ํ์ง๋ง ํ์ด์ง์ ๊ตฌ์ฑ ์์๋ฅผ ํ๋ํ๋์ฉ ๋ฏ์ด๋ณด๋ฉด ๋ถ๋ช ๋์ ์ธ ์์๋ ์์ ๊ฒ์ด๊ณ ์ ์ ์ธ ์์๋ ์์ ๊ฒ์ ๋๋ค.
๋์ ์ธ ๊ฒ๊ณผ ์ ์ ์ธ ๊ฒ์ ๊ธฐ์ค์ ๋๋๋ ๊ฒ์ ์ข ๋ค์ํ๊ฒ ์ง๋ง ๋ง์ฝ ์ด๋ฅผ ๋คํธ์ํฌ ์์ฒญ ๋จ์ ๊ฐ์ ๊ฑธ๋ก ๋ฐ๊ฟ๋ณด๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๊ทธ๋ ๋ค๋ฉด ๊ธฐ์กด์ ๊ด์ ์ด ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๋ ๊ฒ์ ๋๋ค.
ํ๊ทธ์ ๊ทธ๋ฃจํ, ์บ์ฑ ๊ทธ๋ฆฌ๊ณ ์คํธ๋ฆฌ๋ฐ์ผ๋ก์. ์ค์ ๋ก ์ต๊ทผ Next.js์ ๊ณต์ ๋ฌธ์์์๋ SSG, SSR, ISR ๊ฐ์ ์ฉ์ด๋ค๋ณด๋ค๋ ์คํ ํ ๋๋๋ง, ๋ค์ด๋๋ฏน ๋ ๋๋ง ๊ฐ์ ์ฉ์ด๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ณ ์์๊ณ ์. ISR์ ๊ฒฝ์ฐ์๋ ๋คํธ์ํฌ ์์ฒญ์ ์ ์ฉ๋ ์บ์, ๋ฆฌ๋ฐธ๋ฆฌ๋ฐ์ดํธ, ํ๊ทธ ์ต์ ์ ์ฌ์ฉํ static ๋ ๋๋ง์ ํ๋๋ก ์ค๋ช ํ๋ ๊ฒ์ ํ์ธํ ์ ์์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ํ๋ฒ ์๊ฐํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์๋ฐ์. ์ฐ๋ฆฌ๊ฐ ๋ณดํต ๊ฐ๋ฐํ๋ ์๋น์ค๋ ์ ์ ์ธ ํ์ด์ง๋ผ๋ ๋์ ์ธ ์์๊ฐ ์๊ณ ๊ทธ ๋ฐ๋๋ ์์ต๋๋ค. ๋ง์น ์คํํธ๋ผ์ฒ๋ผ์.
๊ทธ๋ฆฌ๊ณ ์ ์ ๊ฐ์ด๋๋ CMS์ ์์ฑ๋ ์ฝํ ์ธ ๋ฅผ ๋คํธ์ํฌ๋ก ๊ฐ์ ธ์ค๋ ๋งํผ ๋คํธ์ํฌ ์์ฒญ์ด ์ฐจ์งํ๋ ๋น์ค์ด ์๊ฐ๋ณด๋ค ํฝ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ํ๋์ ์๋น์ค์์ ์๋์ ์ผ๋ก ์ ์ ์ธ ๋ถ๋ถ๊ณผ ๋์ ์ธ ๋ถ๋ถ์ ๋๋๊ณ , ์ ์ ์ธ ๋ถ๋ถ์ด ๋ฐ์ดํฐ ์บ์๋ฅผ ๋ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๋๋ก ๋ฐ๊พผ๋ค๋ฉด, ์ด๊ธฐ ๋น๋ ์๊ฐ์ ์ค์ด๋ค๋ฉด์ ์ ๋ฐ์ดํธ๊ฐ ๋น ๋ฅด๊ฒ ๋ฐ์๋๋ ํ๊ฒฝ์ ๋ง๋ค์ด๋ณผ ์ ์์ง ์์๊น์?
๊ทธ๋์ ํ๋ฒ ํ ์คํธํด๋ดค์ต๋๋ค. ๋์ฐ๋ฏธ๊ฐ ์์ผ์ ๋ถ๋ค์ ์ข ๋์น์ฑ์ จ๊ฒ ์ง๋ง, ์ ๊ฐ ๋์ ์ธ ๊ฒ์ ๋ ธ๋์์ผ๋ก, ์ ์ ์ธ ๊ฒ์ ๋ณด๋ผ์์ผ๋ก ํ์ํ๊ณ ์์์ต๋๋ค.
๊ธฐ์กด์ ์ ์ ์์ฑ ๋ก์ง์ ๋ชจ๋ ๋ค ์ง์ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์ด๋ ๋ฐ์์ ์ฌ์ฉํ๋ ์์ฒญ์ ํ๋ฒ ๋งค๋ฒ ์๋ก ๋ฐ์์ค๊ฒ๋ ๋ฐ์ดํฐ ์บ์๋ฅผ ๊บพ์์ฃ .
๋ฐ๋๋ก, ์ฝํ ์ธ ๋ฅผ ๋ถ๋ฌ์ค๋ ์์ฒญ์ ์ฌ์์ฑ ์ฃผ๊ธฐ๋ฅผ 1๊ฐ์๋ก ์ค์ ํด๋ณด์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฒ ๋๋ ค๋ณธ ๊ฒฐ๊ณผ, ๋ค์์ ๋ ํ๊ฒฝ์์์ ํ์ด์ง ์คํผ๋ ์ธ์ฌ์ดํธ ๊ฒฐ๊ณผ์ ๋๋ค.
์ผ์ชฝ์ด ๊ธฐ์กด SSG๋ฅผ ํ์ ๋, ๊ทธ๋ฆฌ๊ณ ์ค๋ฅธ์ชฝ์ด ๋ฐ์ดํฐ ์บ์๋ฅผ ์ ์ฉํ ๋ค์ด๋ด๋ฏน ๋ ๋๋ง ์ํ์ธ๋ฐ์. ๋ณด์๋ค์ํผ ํฐ ์ฐจ์ด๊ฐ ์๊ณ ์. ์ฌ์ง์ด ๋ฐ์ดํฐ ์บ์๋ฅผ ์ ์ฉํ ๋ถ๋ถ์ด ์กฐ๊ธ ๋ ์ฑ๋ฅ์์ผ๋ก ๋๊ฒ ๋์ค๊ธด ํ๋๋ฐ, ์ด ๋ถ๋ถ์ ๊ฐ์ด๋ ํ์ด์ง๋ง๋ค ์ผ๋ถ ํธ์ฐจ๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์ง๋ง ์ฌ์ฉ์ ๊ฒฝํ ๊ด๋ จ ์งํ์ ํฐ ์ฐจ์ด๋ ์๋ ์ํฉ์์, ๋น๋ ์๋๋ฅผ ๋น๊ตํด๋ณด๋ฉด ๋น๋ ์๋๋ 8๋ถ์์ 1๋ถ 20์ด๋๋ก ์ค์ด๋ ๊ฒ์ ๋ณผ ์ ์์์ต๋๋ค.
๋ง์ฝ ์ฝํ ์ธ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ๋ฉด ํ๊ทธ๋ฅผ ํ์ฉํด ๋ฌถ์ฌ ์๋ ์์ฒญ๋ค์ ์บ์๋ฅผ ์ด๊ธฐํํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ฌ๊ธฐ์ ๋ ํ ๊ฐ์ง ์ง๋ฌธ์ ํด๋ณผ ์๋ ์์ต๋๋ค. โ์บ์๊ฐ ๋์์ ํ๋ ค๋ฉด ์บ์ํํธ๊ฐ ํ์ํ์ง ์๋์? ๊ทธ๋ฌ๋ฉด ์ต์ํ ํ ๋ฒ์ ํ์ด์ง์ ์ ์ํด์ผ ๋์ง ์๋์?โ ์ข์ ์ง๋ฌธ์ ๋๋ค.
์บ์ํํธ๋ฅผ ์ํด์ ํ ๋ฒ์ ์ ์์ด ํ์ํฉ๋๋ค. ํ์ง๋ง ์ ๋ ์ด๋ฅผ ์ํ ๋ณ๋์ ์์ ์ ํ์ง ์์๋๋ฐ์. ์ด ๋ถ๋ถ์ ์ ํ์ ํน์ฑ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ง๋ง ์ ์ ๊ฐ์ด๋๋ ์ผ์ข ์ ๋ฌธ์์ด๋ฉฐ, ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฌ์ดํธ ๋งต์ด ์กด์ฌํฉ๋๋ค. sitemap.xml ์ด๋ฐ ๊ฒ๋ค ์๋ง ๋ค์ด๋ณด์ จ์ ๊ฑฐ์์. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ฌ์ดํธ ๋งต์ ์ฃผ๋ฉด ๋ชจ๋ ๋ชจ๋ ํ์ด์ง์ 1ํ ์ด์ ์ ์ํ๋ ์น๊ตฌ๋ฅผ ์๊ณ ์์ต๋๋ค. ๋ฐ๋ก โ์น ํฌ๋กค๋ฌโ์ ๋๋ค.
์ด๊ฑด ์ธ๋ผ์ดํธ ํ์ฐ์ค๋ผ๊ณ , ์ฌ์ดํธ ๋งต์ ์ฝ์ด์ ๋ชจ๋ ํ์ด์ง์ ๋ผ์ดํธํ์ฐ์ค๋ฅผ ์ธก์ ํด์ฃผ๋ ๋๊ตฌ๊ฐ ์๋๋ฐ ์ ๊ฐ ๊ทธ๊ฑธ ์ฌ์ฉํด๋ณด๋ฉด์ ์์ด๋์ด๋ฅผ ์ป์์ด์. ์ด์ฐจํผ ์น ํฌ๋กค๋ฌ๊ฐ ๋ชจ๋ ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ ๊ฒ์ด๊ณ ์ด ๋ฐฉ๋ฌธ ์์ ์ ๋ฐ์ดํฐ ์บ์๊ฐ ์๋์ผ๋ก ํ์ฑํ๋ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ ํ์ฃ . ๊ทธ๋ ๋ค๋ฉด ์ ํฌ๊ฐ ํด์ผ ๋ ๊ฑฐ๋ ๋ณ๋์ ํฌ๋ก ์ก(CronJob)์ ๋ง๋ค์ง ์๋๋ผ๋ ๋จ์ํ ์ฌ์ดํธ ๋งต์ ๊ตฌ๊ธ ์์น ์ฝ์์ ๋ฑ๋กํ๊ณ ์น ๋ฐ์ดํ์ ํ์ธํ๋ฉฐ ๋ชจ๋ํฐ๋งํ๋ ์ ๋๋ก๋ง ํด๋ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค.
์ด๋ ๊ฒ ํด์ ์ ๊ฐ ๋ง๋ฌ๋ ๋ฌธ์ ๋ค ์ค์ ๊ธฐ์ต์ ๋จ์ ๋ฌธ์ ๋ ๊ฐ์ง๋ฅผ ๊ผฝ์์ ์ด์ผ๊ธฐ๋ฅผ ๋๋ ธ์ต๋๋ค. ์ฌ์ค ์ด์ธ์๋ ์ ์ ๊ฐ์ด๋ ๊ฐ๋ฐ ๊ณผ์ ์์ ๋ง์ ์ด์ผ๊ธฐ๊ฐ ์์๋๋ฐ์. ํ์ง๋ง ์ค๋์ ๋ฌด์๋ณด๋ค๋ ์์ ๋ง์๋๋ ธ๋ ๋ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ์ฌ๋ฌ๋ถ๋ค๊ป ์ข ์ ํด๋๋ฆฌ๊ณ ์ถ์์ต๋๋ค. ์ค๋ ๋ชป๋ค ํ ์ด์ผ๊ธฐ๋ ์ธ์ ๊ฐ ๋ค๋ฅธ ํํ๋ก ๋ ์ด์ผ๊ธฐ๋ฅผ ๋๋ฆด ์ ์์ ๊ฒ ๊ฐ๊ณ ๊ทธ๋ฌ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
๋ง์น๋ฉฐ
์ค๋ ์ ๊ฐ ๋ง์๋๋ฆฐ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋์ ํ๊ฒ ๋์๋ณด๋ฉด ๊ต์ฅํ ๋จ์ํ๊ณ , ์ฌ์ง์ด๋ ํ๋ง๋ฒ ๊ฐ์ ๋ถ๋ถ๋ค์ด ๋ง์์ต๋๋ค. ์์ฝ๋์ธ์์ hidden="until-found"
์์ฑ์ ์ธ ์ ์๋ ๋ฌธ์ ๋ ์์ฑ์ ๋๋ฌธ์๋ก ์ฃผ์ด์, ๊ฐ์ด๋์ ์ ๋๋ฌธ์ ์ ์ ํ์ด์ง ์์ฑ์ด ๋๋ ค์ก๋ ๋ฌธ์ ๋ โSSG ์ต์
์ ๋๊ณ ๋งค๋ด์ผํ๊ฒ ์บ์๋ฅผ ์ ์ดํ๋คโ๊ฐ ๋์ด์์ผ๋๊น์.
ํ์ง๋ง ์ ๋ ๊ฐ ๋ฌธ์ ๋ค์ด ํจ์ํ๋ ๋ฐ๊ฐ ์๊ฐ๋ณด๋ค ํฌ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์์ฝ๋์ธ ๋ฌธ์ ๋ฅผ ํตํด ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ ํน์ ์ ๊ทผ์ฑ์ ๊ตฌํ์ ์ ํํ ์ ์์์ ํ์ธํ์ต๋๋ค. ์ฌ์ค ์ด๋ฌํ ๋ฌธ์ ๋ ๋ฆฌ์กํธ๋ง์ ๋ฌธ์ ๋ ์๋๋๋ค. vue๊ฐ์ด ์์ฑ๊ฐ์ ๊ฒ์ฆํ๋ ํ๋ ์์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ, ๋ฐ๋๋ก ์ต๊ทค๋ฌ ์ค๋ฒจํธ, ์๋ฆฌ๋, ํต ๊ฐ์ด ๊ฒ์ฆ ๋ก์ง์ด ์๋ ํ๋ ์์ํฌ๋ค์ ๋ณด์๊ณผ ์ถฉ๋ ๊ด๋ จ ๊ณ ๋ฏผ์ ๊ฐ๋ฐ ๋จ๊ณ์์ ์ข ๋ ํด์ผ ๋ ์๋ ์์ต๋๋ค.
๋น์ฅ ์๊ฐ๋๋ ๊ฒ์, ์ ์์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์์ ์ธ ์์ฑ์ ์ฃผ์ ํ์ง๋ ์์๋์ง๋ฅผ ํ์ธํ๋ ๋ฑ์ ๋ฐฉ๋ฒ์ด ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์จ๋ ์ด๋ฌํ ์ํฉ์์ ๊ฐ๋ฐ์๋ ์ด๊ฒ์ ๊ตฌํ์ ํ ๊ฒ์ธ์ง, ํ๋ค๋ฉด ์ด๋ป๊ฒ, ์ด๋๊น์ง ํ ๊ฒ์ธ์ง๋ฅผ ์ ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ฝ์ ๊ฐ๋ฐ์ ํ๋ ๋ฐฉํฅ์ผ๋ก ์ ํ๋ค๋ฉด, ๋ฌธ์ ์ ๊ด์ฌํ๋ ์ฃผ์ฒด์ ๋์, ์ํฅ์ ๋๋์ด ํ๋จํจ์ผ๋ก์จ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ด์ค ์ ์์ ๊ฒ๋๋ค.
์์ฝ๋์ธ ๋ฌธ์ ์ ๊ฒฝ์ฐ์๋ ๋ ๋๋ง ๋จ๊ณ๋ฅผ ๋๋์ด ์ด ๋ฌธ์ ์ ๋ฆฌ์กํธ ๋์์ด ์ํฅ์ ์ฃผ๋ ๊ฒ์ ํ์ธํ์๊ณ , HTML ํ๊ทธ ๋ฐ ์์ฑ์ด ๋์๋ฌธ์๋ฅผ ๊ฐ๋ฆฌ์ง ์๋๋ค๋ ํน์ฑ์ ํ์ฉ, ๋ฌธ์ ๋ฅผ ์ฐํํจ์ผ๋ก์จ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ด๋ผ ์ ์์์ต๋๋ค. ๋ํ ์ ์ ํ์ด์ง ์์ฑ์ด ๋๋ ค์ก๋ ๋ฌธ์ ๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ๋จ์ํ ๋ฌธ์ ๋ผ๋ ์, ์ฆ ์ค์ผ์ผ์ด ์ปค์ง๋ฉฐ ์์ง๋์ด๋ง์ ๋ณต์ก๋๊ฐ ๋์ด๋ ์ ์์์ ํ์ธํ์ต๋๋ค.
์ด๋ ๊ฒ ์ค์ผ์ผ๋ก ์ธํด ๋ณต์ก๋๊ฐ ๋์ด๋ ์ํฉ์์๋ ๊ธฐ์กด์ ๋ฐฉ๋ฒ๋ก ์ ๋ ์ด์ ์ ํจํ์ง ์์ ์๋ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ์ ๊ฐ๋ฐ์๋ ์ฌ์ ํ ํด๋น ๋ฐฉ๋ฒ์ด ์ ํจํ์ง ํญ์ ํ๋จํ๊ณ ๋ ํญ์ ๊ฒ์ฆํด์ผ ํฉ๋๋ค.
์ด๋ฒ ๋ฌธ์ ์ํฉ์์๋ ๋ ๋๋ง์ ๊ด์ ์ ํ์ด์ง ๋จ์์์ ๋คํธ์ํฌ ์์ฒญ ๋จ์๋ก ๋ฐ๊ฟ์ ์๊ฐํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ ์ ๊ฐ์ด๋๋ SSG๊ฐ ์๋๋ผ ์คํํฑ ๋ ๋๋ง(Static Rendering)์ด ์ ํฉํ๋ค๋ ๊ฒ์ ํ์ธํ๊ณ ์ ์ฉํ ์ ์์์ต๋๋ค.
์ฌ๋ด์ด์ง๋ง ์ด์ ์ด๋ฐ ํ์ด์ง ๋จ์๋ฅผ ๋ค๋ฅธ ๋จ์๋ก ๋ฐ๋ผ๋ณด๋ ์์ง์์ ํ์ ํ์ด๋๋ ์ด์ (Partial Hydration)์ด๋ผ๋ ๊ฐ๋ ์ผ๋ก ์ฌ๋ฌ ํ๋ ์์ํฌ๋ค์์ ๊ตฌํํ๊ณ ์๋ ๊ฒ๋ค์ ํ์ธํด๋ณด์ค ์ ์์ ๊ฒ๋๋ค. ์์คํธ๋ก๋ ์๋ฆฌ๋ ์คํํธ๋ ์ด๋ฐ ๊ฒ๋ค ๋ง์ด์ฃ . ๊ฑฐ๊ธฐ์ ์๋ ์์ผ๋๋ ์ํคํ ์ฒ ๊ฐ์ ๊ฒ๋ค์ ํ์ธํ์๋ฉด ์ข ๋ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ผ์ค ์๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๋ ๊ฒ ํด์ ์ ์ ๊ฐ์ด๋๋ฅผ ๋ง๋ค๋ฉฐ ๊ฒช์ ์ด๋ฐ์ ๋ฐ ์ด์ผ๊ธฐ๋ฅผ ์ฌ๋ฌ๋ถ๋ค๊ป ์ ํด๋๋ ธ์ต๋๋ค. ๋ง์น๋ฉด์ ๋ง์ง๋ง์ผ๋ก ์ฌ๋ฌ๋ถ๋ค๊ป ์ด ๋ง์์ ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. ์ ๊ฐ ํญ์ ์๊ฐํด์ค๋ ๊ฑด๋ฐ์.
์ ๋ ์ ํ์ ํน์ฑ์ ํ์ ํ๊ณ ๋ฌธ์ ์ ์ํฅ์ ์ฃผ๋ ์์ธ์ ์ฐพ์ ๋ณต์ก๋๋ฅผ ์ ์ดํจ์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋จ์ํ๊ณ ๊ฐ๋จํ ํด๋ต์ ๊ฐ๊น์์ง ์ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ณผ์ ์์์ ๊ฐ์ ์์ง๋์ด๋ก์ ๋ ๋์ ๊ด์ ์ ๊ฐ๊ณ ๋ค์ํ ๊ฒฝํ์ ํด๋ณผ ์ ์์ ๊ฒ์ ๋๋ค. ์ค๋ ์ ์ ์ด์ผ๊ธฐ๊ฐ ์ฌ๋ฌ๋ถ์ ๊ธฐ์ต ํํธ์ ์กฐ๊ธ์ด๋ผ๋ ๋จ์ ์์ ์ ์๋ค๋ฉด ๊ต์ฅํ ๊ธฐ์ ๊ฒ ๊ฐ์ต๋๋ค.
FEConf2023์์ ๋ฐํ๋ โ๋ช ์ณ ํ์ด์ง์ ์ ์ ๊ฐ์ด๋๋ฅผ ์๋ก ๋ง๋ค๋ฉฐโ / AB180 ์ด์ฐฌํฌ ํ๋ก ํธ์๋ ํ ์์ง๋์ด๋ง ๋งค๋์ โฉ๏ธ