Mr.Chu
๐ 2025๋ ์ Next.js๋ฅผ ๋์ ํ๋๊ฐ?
์ด์ ๊น์ง ์ ๋ CSR ๋ฐฉ์์ผ๋ก๋ง ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ, ๋ถ์กฑํ SEO๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ฌ๋ฌ ์๋๋ฅผ ํด์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋๋ฏธ ํ์ด์ง๋ฅผ ๋ง๋ค์ด ๊ฒ์์์ง์ ๋
ธ์ถ๋๋๋ก ์ ๋ํ ๋ค, ์ค์ ์ฝํ
์ธ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธํ๋ ๋ฐฉ์์ผ๋ก ์ฐํ์ ์ธ SEO ์ต์ ํ๋ฅผ ์๋ํ๊ธฐ๋ ํ์ต๋๋ค.
ํ์ง๋ง ์๊ฐ์ด ์ง๋ ์๋ก ํ๋ก์ ํธ์ ๋ด๊ธฐ๋ ๊ฒฝํ ๊ธ๊ณผ ์ฝํ
์ธ ์์ด ๋์ด๋ฌ๊ณ , ๋๋ถ๋ถ์ ๊ธ์ Notion์ ์์ฑํ ๋ค ์ด๋ฅผ ๋์ ์ผ๋ก ๋ถ๋ฌ์ค๋ ๊ตฌ์กฐ๋ก ๋ฐ์ ํ์ต๋๋ค. ์ด๋ก ์ธํด ๊ธฐ์กด์ CSR ๋ฐฉ์๋ง์ผ๋ก๋ ํ๊ณ๊ฐ ๋ช
ํํ๊ณ , ์ ๊ธ์ด ์กฐ๊ธ ๋ ๊ฒ์์์ง์ ๋
ธ์ถ ๋ ์ ์๊ฒ ํ๋๋ฐ์ ์๊ตฌ๊ฐ ์ปค์ ธ๊ฐ์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ๊ธฐ ์ํด ์ ํํ ๊ฒ์ด ๋ฐ๋ก Next.js์์ต๋๋ค. Next๋ ํ๋ ์ ์ํฌ๋ผ์ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ ์ผ๋ก ์ฌ์ ๋ ๋๋ง(SSG)ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ, ์ฝํ
์ธ ๊ฐ ๊ฒ์์์ง์ ์ ๋
ธ์ถ๋๋๋ก ๋ง๋ค ์ ์์ต๋๋ค.
โ Sitemap ์์ฑ
์ด์ ์๋ page router ๊ธฐ๋ฐ์์ getStaticProps, getStaticPaths๋ฅผ ์ฌ์ฉํ์ง๋ง, app router ๊ตฌ์กฐ์์๋ ์ด๋ฅผ ๋์ ํด
generateStaticParams()๋ฅผ ํ์ฉํ์ฌ ์ ์ ํ์ด์ง๋ฅผ ์์ฑํ๊ณ ์์ต๋๋ค.๋ํ, ๊ณผ๊ฑฐ์๋ sitemap ์์ฑ์ ์ํด next-sitemap ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง๋ง, ์ต๊ทผ์๋ Next.js ์์ฒด์ ์ผ๋ก ์ ๊ณตํ๋
generateSitemaps() ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ด ํจ์ฌ ๊ฐ๋จํ๊ฒ SEO ์ค์ ์ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์์ต๋๋ค.๐ generateSitemaps()๋ Next.js 14๋ถํฐ ์ ์ ๋์ ๋์์ผ๋ฉฐ, app ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์์ metadata API์ ํจ๊ป ์๋ํด ๋ณ๋ ์ค์ ์์ด ์๋์ผ๋ก sitemap.xml์ ์์ฑํด์ค๋๋ค.

ย
ย
ย
โ ํฉ์ฑ ์ปดํฌ๋ํธ ํจํด ๋์
- ์ต๊ทผ์ ์๊ฒ ๋ ํฉ์ฑ ์ปดํฌ๋ํธ(Compound Components) ํจํด์ด ๊ตฌ์กฐ์ ์ผ๋ก ๊น๋ํ๊ณ ํ์ฅ์ฑ์ด ๋์ ๋ณด์ฌ ๋ชจ๋ฌ ์ปดํฌ๋ํธ์์ ์๋ํด๋ดค์ต๋๋ค.
ย
โ ์คํ์ผ๋ง & ์ํ ๊ด๋ฆฌ ๋ฐฉ์ ๋ณ๊ฒฝ์ ์ด์
์ด๋ฒ ๋ฆฌํฉํ ๋ง ๊ณผ์ ์์ ์คํ์ผ๋ง ๋ฐฉ์๊ณผ ์ ์ญ ์ํ ๊ด๋ฆฌ ๋ฐฉ์๋ ์ต๊ทผ ํธ๋ ๋์ ๋ง์ถฐ ์ ์ง์ ์ผ๋ก ๋ณ๊ฒฝํ๊ณ ์์ต๋๋ค.
์คํ์ผ๋ง: styled-components โ SCSS
์ํ ๊ด๋ฆฌ: atom ๊ธฐ๋ฐ โ Redux Toolkit
- ๋ ๊ฐ์ง ๋ชจ๋ ํ์ฌ๋ ์ ๊ณ์์ ์ ์ ๋ ์ฌ์ฉ๋๋ ์ถ์ธ์ด๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ์ ๊ฒฐ์ ํ๊ฒ ๋์์ต๋๋ค.
๐ styled-components โ SCSS styled-components๋ ํ๋ ๋งค์ฐ ์ธ๊ธฐ ์์์ง๋ง, ์ต๊ทผ์๋ CSS Modules, SCSS, Tailwind CSS ๋ฑ ๋ ๊ฐ๋ณ๊ณ ๋จ์ํ ์คํ์ผ๋ง ๋ฐฉ์๋ค์ด ์ฃผ๋ก ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ํนํ Next.js์์๋ ๋ณ๋ค๋ฅธ ์ค์ ์์ด SCSS๋ฅผ ์ฌ์ฉํ ์ ์์ด ๋ง์ด๊ทธ๋ ์ด์ ์ด ๊ฐํธํ๊ณ , ๊ฐ์ธ์ ์ผ๋ก๋ SCSS๊ฐ ๋ ์ต์ํ๊ณ ๋น ๋ฅด๊ฒ ์์ ํ ์ ์์ด ์ ํ์ ๊ฒฐ์ ํ์ต๋๋ค.
ย
๐ atom โ Redux Toolkit atom์ ์ด๊ธฐ์๋ ์ฌ์ฉ ํ์ง๋ง, ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํต์ฌ ๊ฐ๋ฐํ์ด ํด์ฒด๋์๊ณ ์ด๋ฒ ๋ฆฌํฉํ ๋ง์์๋ Redux Toolkit์ ํ ๋ฒ ์ ์์ผ๋ก ๋ค์ ์จ๋ณด๋ฉฐ ๊ตฌ์กฐ์ ์ผ๋ก ์ ๋ฆฌํ๊ณ ์ ํ์ต๋๋ค.
ย
โ vite ํ๋ ์์ํฌ๋ก ๋ณ๊ฒฝ
(2024/01/18) Vite ์ถ๊ฐ
โ Notion API๋ก ๋ณ๊ฒฝ, ๋ฐฑ์๋ ๊ตฌ์ถ
(2023/11/16) ๊ฒ์๊ธฐ๋ฅ ์ถ๊ฐ
๋งค๋ฒ ํํ์ด์ง๋ฅผ ๊ด๋ฆฌํ๊ธฐ์ ๋ถ๋ด์ ๋๊ผ์ต๋๋ค. ๋ ธ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค api ํ์ฉํ๊ธฐ๋ก ํ์์ต๋๋ค. Node.js + koyeb๋ก ๋ฐฐํฌ
Swagger UI ((https://developed-heath-mr-chu.koyeb.app/api-docs/)
ย
โ ๋ทํ๋ฆฌํ์ด ๋ฐฐํฌ๋ก ๋ณ๊ฒฝ
(2023/06/03) ๋ทํ๋ฆฌํ์ด ๋ฐฐํฌ๋ก ๋ณ๊ฒฝ, ๋ค์ด๋ฒ ์ฌ์ดํธ๋งต ์ถ๊ฐ
ย
โ ํฌํธํด๋ฆฌ์ค ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ณ๊ฒฝ
(2022/10/20)
ย
โ ํฌํธํด๋ฆฌ์ค ํํ์ด์ง๋ฅผ ๋ฆฌ์กํธ๋ก ๋ณ๊ฒฝํด๋ณด๊ธฐ
(2022/05/28) react ํ์ฉ
ย
โ ํฌํธํด๋ฆฌ์ค ํํ์ด์ง ๋ง๋ค๊ธฐ
(2021/09/25)
- html/css/js๋ก๋ง ๋ง๋ ํฌํธํด๋ฆฌ์ค ํํ์ด์ง
ย

