์์ธํ ์ดํด๋ณด๊ธฐ ์ ์ ์ ์ "์ ๋๋ฒ์ค" ์ฝ๋, ์ฆ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ชจ๋์์ ์คํ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ์ ์ ์ฝ์ฌํญ์ ๊ดํ์ฌ ์ดํด๋ด ๋๋ค. ์ ์ฆ์ผ์ด์ค ๋ฐ ํ๋ซํผ API์ ์ฐจ์ด์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ํ๊ฒฝ์์ ์คํํ ๋ ์ฝ๋์ ๋์์ด ์ ํํ ๋์ผํ ์๋ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๊ผญ ์์์ผํ ์ค์ํ ๊ฒ๋ค์ ๋ค๋ฃน๋๋ค.
ํด๋ผ์ด์ธํธ๋ง ์กด์ฌํ๋ ์ฑ์์๋ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์ฑ์ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๊ฒ๋ฉ๋๋ค. ์๋ฒ ์ธก ๋ ๋๋ง์ ๊ฒฝ์ฐ์๋ ๋์ผํ ์์ฒญ์ด ํ์ํฉ๋๋ค. ๊ฐ ์์ฒญ์๋ ๊ต์ฐจ ์์ฒญ ์ํ(Cross Request State) ์ค์ผ์ด ์๋๋ก ๊ฒฉ๋ฆฌ ๋ ์ ์ฑ ์ธ์คํด์ค๊ฐ ์์ด์ผํฉ๋๋ค.
์ค์ ๋ ๋๋ง ํ๋ก์ธ์ค๋ ๊ฒฐ์ ์ ์ด์ด์ผํ๋ฏ๋ก ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ "๋ฏธ๋ฆฌ ๊ฐ์ ธ(pre-fetching)"์ต๋๋ค. ๋ ๋๋ง์ ์์ํ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๋ ์ด๋ฏธ ์๋ฃ๋์ด ์์ด์ผ ํฉ๋๋ค. ์ฆ, ์๋ฒ์์ ๋ฐ์ดํฐ ๋ฐ์์ฑ์ด ํ์ํ์ง ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ ๋์ด ์์ต๋๋ค. ๋ฐ์ดํฐ ๋ฐ์์ฑ์ ๋นํ์ฑํํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ํ ๊ฐ์ฒด๋ก ๋ณํํ๋ ์ฑ๋ฅ ๋น์ฉ์ ํผํ ์ ์์ต๋๋ค.
๋์ ์ธ ๊ฐฑ์ ์ด ์์ผ๋ฏ๋ก ๋ชจ๋ ๋ผ์ดํ์ฌ์ดํด ํ
์ค beforeCreate
๋ฐ created
๋ง SSR ์ค์ ํธ์ถ๋ฉ๋๋ค. ์ฆ, beforeMount
๋๋ mounted
์ ๊ฐ์ ๋ค๋ฅธ ๋ผ์ดํ์ฌ์ดํด ํ
์์ ๋ชจ๋ ์ฝ๋๋ ํด๋ผ์ด์ธํธ์์๋ง ์คํ๋ฉ๋๋ค.
๋ ๋ค๋ฅธ ์ฃผ์ ์ฌํญ์ beforeCreate
์ created
์์ ์ ์ญ์ ์ธ ์ฌ์ด๋์ดํํธ๋ฅผ ๋ง๋๋ ์ฝ๋ (์: setInterval
๋ก ํ์ด๋จธ ์ค์ ) ํด๋ผ์ด์ธํธ ์ธก ์ฝ๋์์๋ง ํ์ด๋จธ๋ฅผ ์ค์ ํ ๋ค์ beforeDestroy
๋๋ destroyed
์์ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ SSR ์ค destroy ํ
์ด ํธ์ถ๋์ง ์๊ธฐ ๋๋ฌธ์ ํ์ด๋จธ๊ฐ ์์ํ ๊ณ์ ์ด์์์ต๋๋ค. ์ด๋ฅผ ํผํ๋ ค๋ฉด ์ฌ์ด๋์ดํํธ๋ฅผ ๋ฐ์ํ๋ ์ฝ๋๋ฅผ beforeMount
๋๋mounted
๋ก ์ฎ๊ฒจ์ผ ํฉ๋๋ค.
์ ๋๋ฒ์ค ์ฝ๋๋ ํน์ ํ๋ซํผ์ API ์ ๊ทผ์ ๊ฐ์ ํ ์ ์์ผ๋ฏ๋ก ์ฝ๋๊ฐ window
๋๋ document
์ ๊ฐ์ ๋ธ๋ผ์ฐ์ ์ ์ฉ ์ ์ญ ๋ณ์๋ฅผ ์ง์ ์ฌ์ฉํ๋ฉด Node.js์์ ์คํํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง ์
๋๋ค.
์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๊ณต์ ๋์ง๋ง ๋ค๋ฅธ ํ๋ซํผ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ๋ซํผ ๋ณ ๊ตฌํ์ ๋ฒ์ฉ์ ์ธ API๋ก ๋ํํ๊ฑฐ๋ ์ด๋ฅผ ์ํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋ฅผ ๋ค์ด axios๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ชจ๋์์ ๋์ผํ API๋ฅผ ์ ๊ณตํ๋ HTTP ํด๋ผ์ด์ธํธ ์ ๋๋ค.
๋ธ๋ผ์ฐ์ ์ ์ฉ API์ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ ํด๋ผ์ด์ธํธ ์ ์ฉ ๋ผ์ดํ์ฌ์ดํด ํ ์ ๊ฒ์ผ๋ฅธ ์ ๊ทผ(Lazyily Access)์ ํ๋ ๊ฒ ์ ๋๋ค.
์จ๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฒ์ฉ์ ์ธ ์ฌ์ฉ์ ๊ณ ๋ คํ์ง ์๊ณ ์์ฑ๋ ๊ฒฝ์ฐ ์๋ฒ์์ ๋ ๋๋ง ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํตํฉํ๋ ๊ฒ์ด ๊น๋ค๋ก์ธ ์ ์์ต๋๋ค. ์ผ๋ถ ์ ์ญ ๋ณ์๋ฅผ ๊ฐ์ง๋ก ๋ง๋ค์ด(mocking) ์๋์ํฌ ์ ์์ผ๋ ์ด๋ ํธ๋ฒ์ด๋ฉฐ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๊ฒฝ์ค์ ๊ฐ์ง ์ฝ๋๋ฅผ ๊ฑด๋๋ฆด ์ ์์ต๋๋ค.
๋๋ถ๋ถ์ ์ฌ์ฉ์ ์ง์ ๋๋ ํฐ๋ธ๋ DOM์ ์ง์ ์กฐ์ํ๋ฏ๋ก SSR์ค ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋๊ฐ์ง ์ ๋๋ค.
- ์ถ์ํ ๋ฉ์ปค๋์ฆ์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๊ณ ๊ฐ์ DOM ์์ค์์ ์์ ํด์ผํฉ๋๋ค. (์ : ๋ ๋๋ง ๊ธฐ๋ฅ ์ฌ์ฉ)
- ์ปดํฌ๋ํธ๋ก ์ฝ๊ฒ ๋ฐ๊ฟ ์ ์๋ ์ฌ์ฉ์ ์ ์ ๋๋ ํฐ๋ธ๊ฐ ์๋ ๊ฒฝ์ฐ ์๋ฒ ๋ ๋๋ฌ๋ฅผ ๋ง๋ค ๋
directives
์ต์ ์ ์ฌ์ฉํด "์๋ฒ์ฉ ๋ฒ์ "์ ์ ๊ณตํ ์ ์์ต๋๋ค.