Notion์ ์ด์ฉํ์ฌ ํธ๋ฆฌํ ๋ธ๋ก๊ทธ CMS๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ
๋ฉ์ฉกํ ํ๋ซํผ์ ๋๋๊ณ ๋๋ง์ ์๋ก์ด ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋ ํ๊ธฐ
React Query Maintainer์ธ Tkdodo๊ฐ ์๋ ค์ฃผ๋ ๋ฆฌ์กํธ ์ฟผ๋ฆฌ์ ์ผ๋ก ์ฌ๊ณ ํ ์ ์๋ 3๊ฐ์ง ์์๋ค์ ๋ค๋ฃจ์ด๋ด ๋๋ค.
React 18์ด ์ ๋ณด์ด๋ Concurrent ๊ธฐ๋ฅ๋ค์ ์์๋ณด๋ฉฐ ์ค์ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณธ ๊ฒฝํ์ ์์ฑํด๋ณด์๋ค.
Suspense๋ฅผ ๋์ ํ๋ ๊ณผ์ ๊ณผ ์ด๋ ๋ฐ์ํ Waterfall ํ์์ ํด๊ฒฐํด๋ณธ ๊ณผ์ ์ ๋ํด์ ์์ฑํด๋ณด์์ต๋๋ค.
๊ฐ๋ ์ฑ๊ณผ ํ์ฅ์ฑ์ด ๋์ ์ฝ๋๋ฅผ ์ํด ์ปดํฌ๋ํธ์ ๊ฐํ๊ฒ ๊ฒฐํฉ๋ ๋ชจ๋ฌ์ ๋ถ๋ฆฌ ์์ผ๋ณด์.
Next.js SSR ํ๊ฒฝ์์ Emotion ๊ธฐ๋ฐ์ ๋คํฌ๋ชจ๋๋ฅผ ์ ์ฉํ์๋ ๋ฐ์ํ๋ ๊น๋นก์ ํ์์ ํด๊ฒฐํด ๋ณด์!
์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ค๋ฅธ ์์ ๊ธฐ๋ฐ์ ์ธ์ด์ ๋ฌ๋ฆฌ, prototype(์ํ) ๊ธฐ๋ฐ์ ์ธ์ด๋ก, ๋ชจ๋ ๊ฐ์ฒด๋ ํน์ ๊ฐ์ฒด๋ฅผ ์ํ(prototype)์ผ๋ก ์ผ๊ณ ์ด๋ฅผ ๋ณต์ (์ฐธ์กฐ)ํ๋ ๋ฐฉ์์ ํตํด ์์๊ณผ ๋น์ทํ ํจ๊ณผ๋ฅผ ๊ฐ์ง๊ฒ ํ๋ค.ํ๋กํ ํ์ ์ ์ถ์ํ ํ๋ฉด ์์ ๊ฐ์ ๊ทธ๋ฆผ์ด ๋์ค๋
์๋ฐ์คํฌ๋ฆฝํธ ์์ง ์์ฒด๋ ์ฑ๊ธ ์ค๋ ๋๋ก ๋์ํ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ตฌ๋ํ๋ ํ๊ฒฝ์ด ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ๋์ํ๊ฒํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ธํฐํ๋ฆฌํฐ์ธ์ด์ด๋ค. ๊ทธ๋ฐ๋ฐ ์ปดํ์ผ๋ฌ๋ฅผ ์น์.
Context API๋ฅผ ์ปดํฌ๋ํธํํ์ฌ ๊ฐ๊ฒฐํ๊ฒ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณธ๋/
ISR๊ณผ On-demand revlidation์ ์ด์ฉํ๋ฉด ์ ์ ์์ฑ์ผ๋ก๋ ์ฌ์ฉ์์๊ฒ ์ค์๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ๋ ํ์ด์ง๋ฅผ ์ ๊ณตํ ์ ์๋ค!
์ด๋ฒ ํฌ์คํธ์์๋ ํ๋ก ํธ์๋์ ๋ํ์ ์ธ ๋ ๋๋ง ๋ฐฉ์์ธ CSR(Client Side Renering)๊ณผ SSR(Server Side Rendering)์ ํน์ง๊ณผ ์ด๋ค ์๊ธฐ์ ์ฌ์ฉํด์ผ ๊ฐ์ฅ ์ข์์ง์ ์์๋ณด๊ฒ ๋ค.
์ด๋ฒ ํฌ์คํธ์์๋ ํ์ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ NextJS ํ๋ก์ ํธ์์ ์ค์ ๋ ESLint์ Prettier๋ฅผ Websotrm ์๋ํฐ์์๋ ์ ์ฉํ ์ ์๋๋ก ํ ๊ฒ์ด๋ค.
ํ๋ก์ ํธ ๊ฐ๋ฐ์ ์ํด์ NextJS + Typescript + Emotion ๊ธฐ๋ฐ ํ ํ๋ฆฟ์ ๋ง๋ค๋ฉด์ ์ด์ ๋ํ ์ค๋ช ์ ๋ค๋ฃฌ ๋ด์ฉ๋ค์ ๊ณต์ ํ๊ธฐ ์ํด ์ด ํฌ์คํธ๋ฅผ ์ฌ๋ฆฝ๋๋ค.
Lexical Environment Record์ Outer Environment Reference์ ๋ํด ์ดํดํ๊ณ ํธ์ด์คํ ๊ณผ ์ค์ฝํ์ ๋ํด์๋ ์ดํดํ๋ค.
ํ๋ก ํธ์๋์์ ๋ฐฑ์๋์๋ฒ๋ก api ์์ฒญ์ ๋ณด๋ผ ๋ ํํ ๋ณผ ์ ์๋ ์๋ฌ๋ค ์ค ํ๋์ด๋ค.
์ง๋ ํฌ์คํธ์ ์ด์ด์ ToastUI Viewer๋ฅผ ์ ์ฉํด๋ณด๋ ค๊ณ ํ๋ค. ์ฌ๊ธฐ์ Viewer๋ Editor์์ ๋ง๋ ๊ฒ์๊ธ์ ๋ด์ฉ์ ๋ณด์ฌ์ฃผ๋ ๋๊ตฌ์ด๋ค. Editor์์ ์๊ฐํ ๋ฐฉ๋ฒ๊ณผ ๋น์ทํ๊ฒ dynamic import๋ฅผ ์ด์ฉํด์ ์ ์ฉํ๋ฉด ๋๋ค! ๊ฐ๋จํ์ง๋ง ๊ณต์๋ฌธ์๋ง ๋ณด์์
NextJS์ React๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๊ฒ์๊ธ์ ์์ฑํ๊ณ ์ฝ๋ ๊ธฐ๋ฅ์ด ํ์ํด์ก๋ค. ์ด๋ฅผ ์ํด ์ฐพ์๋ณธ ๊ฒฐ๊ณผ ToastUI์์ ์ ๊ณตํ๋ Editor๊ฐ ์์ด์ ์ฌ์ฉํด๋ณด์๋ค. ๊ทธ๋ฐ๋ฐ ๊ณต์๋ฌธ์๋๋ก ์ ์ฉํด๋ณด์์ผ๋ ์ค๋ฅ(~ is not defined)๊ฐ ๋ฐ์ํ๋ฉฐ