- Published on
๐ | ๊ฐ์ธ ๊นํ๋ธ ๋ธ๋ก๊ทธ/๊น๋ธ๋ก๊ทธ ๊ฐ๋ฐ ํ๊ธฐ
๊ฐ์ธ ๋ธ๋ก๊ทธ ๊ฐ๋ฐ ํ๊ธฐ
๋ธ๋ก๊ทธ์ ํฌํธํด๋ฆฌ์ค๊น์ง ํ ๋ฒ์!

Background
๋ด ๋ธ๋ก๊ทธ๊ฐ ๋๋ฌด ์ง๋ฃจํด์ ธ๊ฐ ์ฐฐ๋์ 2์ ์ด์ค์ ๋ด๋ด ๊ฐ๋ฐํ๊ฒ ๋์๋ค.
์ฌ์ค ์ด ๋ธ๋ก๊ทธ๊ฐ ์ฒ์์ ์๋๊ณ Chirpy theme์ผ๋ก ๋ธ๋ก๊ทธ ํ
๋ง๋ก ์ง๋์์๋ค. ๋์ถฉ ์๋์ ๊ฐ์ด ์๊ฒผ์๋ค.

์ด ๋ธ๋ก๊ทธ๋ฅผ ๋ณด๋ฉด ์๊ฒ ์ง๋ง, ๊ฒ์ ๊ธฐ๋ฅ๊ณผ Table์ ํฌ์คํธ๋ง๋ค ์ ๊ณตํด์ฃผ์ด์ ์ง๊ด์ ์ด๊ณ ๋๋ฆ ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์ฒ๋ผ ๊ฐ๋ ์ฑ๋ ํธํ ํ ๋ง๋ค.
๋ฌธ์ ๋ ์ด ์ฝ๋๋ฅผ ๋ฏ์ด๋ณด๋ ค๊ณ ํ ์ฌ๋๋ค์ ์๊ฒ ์ง๋ง ์ฌ์ฌ์ฉ์ฑ์ด ์ฝ์ง ์๊ณ , ๋ฌด์๋ณด๋ค ์ฉ html๊ณผ js๋ง ์ฐ๊ธฐ์๋ ๋์๊ฒ๋ ๋๋ฌด ๋ถํธํ๋ค..ใ ใ ์์ ์ด๋ฏธ์ง์์ ๋ดค๋ฏ ๊ณ ์ ๋ด๊ฐ ๋ฐ๊ฟ ์ ์๋ ๊ฑฐ๋ ๋ฐฐ๊ฒฝ ์ฌ์ง๊ณผ ํฐํธ ์ด ์ ๋์๋ค.
๊ทธ๋์ ๋ค๋ฅธ ํ ๋ง ๋ค์ ธ๋ณด์๋๋ฐ๋ jekyll ์์ฒด๊ฐ ๋ญ๊ฐ ๋ด๊ฐ ์ํ๋ ๋ธ๋ก๊ทธ ํ ๋ง๋ ์๊ณ ..hexo๋ ์์ด์ ์์ ๋ฐ๋ฅ๋ถํฐ ๋ด๊ฐ ๋ง๋ค์ด๋ณด์๋ ์ฌ์ ์ ์๊ฒ ๋์๋ค.
Preliminary
๋ธ๋ก๊ทธ๋ 1์ฐจ์ ์ผ๋ก ์๋ง ์๋ 6์ ๊ฒฝ์ ๋ฐ๊ฟจ๋ ๊ฒ์ผ๋ก ๊ธฐ์ตํ๋ค. ๋น์ ๋ด๊ฐ ์๋ ์น ๊ธฐ์ ์คํ์ Reactjs ๋ฐ์ ์์๊ณ , ํ์ ์คํฌ๋ฆฝํธ ๋ฐฐ์ฐ๊ธฐ๋ ๋ด๊ฐ ์น/์ฑ ๊ฐ ๊ฒ๋ ์๋์ฌ์ ์ฒ์๋ถํฐ ๋ด๊ฐ ๋ญํ๊ธฐ์๋ ๋ญํด์ ์๋ง ๊ทธ ๋ ๊ตฌ๊ธ์ด๋ ๊น์ github blog template ์ด๋ฐ ์์ผ๋ก ๊ฒ์ํ๋ ๊ฒ ๊ฐ๋ค.
๋ธ๋ก๊ทธ ํ ๋ง ์ ์ ๊ธฐ์ค์ ์์ด์ ๋๋ ์๋๊ฐ ๊ผญ ๋ง์กฑ๋์ด์ผ ํ๋๋ฐ,
- ๊ฒ์ ๊ธฐ๋ฅ ์ง์
- ํ๊ทธ ๊ธฐ๋ฅ
- ๋ธ๋ก๊ทธ ์ธ ๋ด ์๊ฐ ํ์ด์ง ์ถ๊ฐ๊ฐ ๊ฐ๋ฅํ..
๊ทธ๋ฌ๋ค๊ฐ ๋ง์นจ๋ด ๋์ ๋ค์ด์จ ํ ๋ง๊ฐ Tailwindcss Nextjs starter blog์๋ค. Example์์ ๋ณด์ด๋ ๊ฒ์ฒ๋ผ ๋ด๊ฐ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ์์ ๋กญ๊ฒ ๊พธ๋ฏธ๋ ๊ฒ๋ ๊ฐ๋ฅํ๊ณ .. ๋งค๋ ฅ์ ์ธ ์คํํฐํฉ์ธ ๊ฒ ๊ฐ์์ ์์ํ๊ฒ ๋์๋ค.
Nextjs๋ ํฌ๊ฒ ๋ชฐ๋ผ๋ ํ๋ก ํธ์๋๋ง ์ ๋ค๋ค์ ๋ธ๋ก๊ทธ ๊ตฌ์๋ง ๋ง์ถ๊ฒ ํ๋ ๊ฒ ๊ฐ๋ค. tailwindcss๋ ๋ชจ๋ฅด๋ค๊ฐ ์ ์ฐจ ๋ง์ง๋ฉด์ ์ฐจ์ฐจ ์๊ฒ๋์๊ณ ..
![]() |
๊ทผ๋ฐ ๋ญ..ใ
ใ
๋ง๊ทธ๋๋ก ๊ตฌ์๋ง ๋ง์ถ ๊ฑฐ๋ผ ํ
๋งํด์ ์ ๋ฐ๊พธ๊ณ ์์ ๋ฉ์ธ ํ์ด์ง๋ง ๋ฐ๊ฟจ์๋ค.
์ฒ์์๋ ์ด๊ฒ๋ ๋ญ๊ฐ ์ํ๋ค๊ณ ์๊ฐํ์ง๋ง ์ผ๋ง ์๊ฐ ์์ด ์๊ฐ๊ฒ ๋๋ ๋ธ๋ก๊ทธ๊ฐ ๋์ด๋ฒ๋ ธ๋ค..ใ
๊ทธ๋์ ์ด๋ฒ์ ๋ฐ๊พธ๋ฉด์ ํฌ๊ฒ ๋ฐ๊พผ ๋ช๊ฐ์ง๋ ์๋์ ๊ฐ๋ค.
- ์์ ๋ฉ์ธ ํ์ด์ง์ ๋์ ๋ํด์ ๊ฐ๋ตํ๊ฒ ์ ๋ณด์ ๋ธ๋ก๊ทธ preview ์ ๋
- About: ๋์ ๋ํ CV๋ฅผ ์นํ์ด์ง๋ก,
- Blog: ๋ธ๋ก๊ทธ์๋ ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ์ฒ๋ผ ํ๋กํ์ด๋ ํ๊ทธ๊ฐ ์์์ ์ข๊ฒ ๋ค.
์ด ์ ๋๊ฐ ๋ ๊ฒ ๊ฐ๋ค.
๋ค์ด๊ฐ๊ธฐ ์ ์ ๋ด๊ฐ ์ฌ์ฉํ ๊ธฐ์ ์คํ์ ์๋์ ๊ฐ๋ค
UI/UX Design
UX๋ Miro๋ผ๋ ์ฑ์ ํตํด์ ์๊ฐ๋ ๋ ํํ์ด ๊ณ ๋ฏผํด์ ๋ง๋ค์๋ค.
Home ์นดํ
๊ณ ๋ฆฌ๋ง ํ์ํด์ ์๋์ ๊ฐ์ด ๋์์ธ ํด์ฃผ์๋ค.

์๋๋ ๊น๋ง๋ถ๋ถ์ threejs๋ฅผ ์ด์ฉํด์ ์๋ ๊ฑธ ๊ฐ์ง๊ณ ์ฌ๋ฐ๊ฒ ํ์ด๋ณผ๊น ์ถ๋ค๊ฐ.. ๋ค์ ๋์ค๊ฒ ์ง๋ง vercel์์ ๊ณ์ ํฐ์ง๊ณ ํด์ ๊ณํ์ ๋ฐ๊ฟจ๋ค..ใ ใ ์๋ ์ฌ์ดํธ ๋์์ธ๋ค์ ํฉํด์ ๋ด ํ ๋ง์ ๋ง๊ฒ ์์ ํ๋ฉด ๋ ๊ฒ ๊ฐ์, ์ ํ์ ํ ๋๋ก ์์ ํด๋๊ฐ๋ ๊ฒ ๊ฐ๋ค.
์ ํ๋ ํธ๋ Tailwindcss์์ ๊ธฐ๋ณธ ์ ๊ณตํ๋ blue-500, indigo-500 ๋ ๋ค ์ฌ์ฉํ๋ค. ์ข ์ผ๊ด์ฑ์ด ์๋ ๊ฒ ๊ฐ์ ์ด๊ฑด ์ถํ์ ์์ ํ ๊ฒ ๊ฐ๋ค.
ํ๋กํ์ ์ฌ์ฉํ ์ด๋ฏธ์ง ์์ค๋ ์์ดํจ๋์์ ์ ์ํด์ ๋ค์ด๋ฐ์๋ค.
Front End
์์งํ.. ํ์ผ ๊ฒฝ๋ก๊ฐ ์ข ์๋ง์ด๋ค. ์ด repo๋..ใ ใ ใ ๊ทธ๋์ ์ต๋ํ ๊ฒฝ๋ก ๊ผฌ์ด๋ ๊ฑธ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ด ์๋๋ก ๋จผ์ ์ ๋ฆฌํด๋์๋ค. VS studio๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฒฝ๋ก๋ ๋ค ์๋์ผ๋ก ์ฌ์ค์ ํด์ฃผ๊ธด ํ์ง๋ง ๊ฒฝ๋ก๋ฅผ ์์ ๋ฐ์๋ฒ๋ฆฌ๋ ์ฝ๋ ๋ช๊ฐ๊ฐ ๊ผฌ์ผ๊น๋ด ์ต์ํ์ผ๋ก ์ ๋ฆฌํ์๋ค.
1. Repository ๋ด ํ์ผ๋ค ์ค๋ช
์ถํ ์ด ํ ํ๋ฆฟ์ผ๋ก ์์ ํ์ค ์ฌ๋๋ค์ ์ํด ๋น ๋ฅธ ์ ๋ฆฌ! ์ด ๋ถ๋ถ๋ง ๊ฑด๋ค๋ฉด ๊ฑฐ์ ๋ธ๋ก๊ทธ ๋๋ถ๋ถ์ ๊ฑด๋ ๊ฒ๊ณผ ๋ค๋ฆ์๋ค.
- index.js: ํ ํ๋ฉด
- AuthorLayout.js: About ์นดํ
๊ณ ๋ฆฌ, about.js์์ ์์ ํ ์ ์์ผ๋,
data > author > default.md
๋ด์ฉ์ ์ต๋ํ ๋ฐ์ํ๊ณ ์ถ๋ค๋ฉด, AuthorLayout์์ ์์ ํ๋ ๊ฒ์ ์ถ์ฒํ๋ค. - blog.js, ListLayout.js, PostLayout.js: ๋ธ๋ก๊ทธ ๋ด ์ฝ๋๋ฅผ ๋ฐ๋ก ๋นผ์ Listlayout component๋ฅผ ์
๋ ฅ์ผ๋ก ๋ฃ์ด์ค ๊ฒ์ ์ถ์ฒํ๋ค. ์ถํ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ์ํด ๋๋ ๊ทธ๋ ๊ฒ ํ์๋ค.
PostLayout.js
๋ ์ง๊ธ ๋ณด๋ ํฌ์คํธ์ ๋์์ธ์ด๋ค! ๋์ ๊ฒฝ์ฐ Sticky TOC๋ฅผ ์ถ๊ฐํ์๋ค. - [tag].js: Nextjs ํน์ฑ์ route ๊ตฌ์กฐ = ํ์ผ ๊ตฌ์กฐ, ์ด๋ฐ์์ผ๋ก ๋ง๋ค์ด์ง๋๋ฐ, blog์์ ๋ฐ๋ก ๋บ component๋ฅผ
[tag].js
์ ์ ์ฉํด์ฃผ์๋ค.
๊ฐ์ธ์ ๋ณด ๋ณ๊ฒฝ์ data > author > default.md
๋ฅผ ๋ณ๊ฒฝํด์ฃผ๊ณ ์ถํ ํฌ์คํธ๋ฅผ ์ธ ๋๋ data
ํด๋ ์์ ๋งํฌ๋ค์ด ํ์ผ์ ๋ง๋ค์ด๋๊ฐ๋ฉด ๋๋ค. ๋งํฌ๋ค์ด ํค๋์ ๊ฒฝ์ฐ, ๊ณต์ repo์์ ํ์ธํ๋ฉด ๋๋ค!
2. Threejs ์ ์ฉ ์คํจ? Why?
์๋๋ ๋ฉ์ธ ํ์ด์ง์ ๊ฑธ๋ ค๊ณ ํ๋ ์์ ์ธ๋ฐ

๋ก์ปฌ์์๋ ๊ต์ฅํ ์๋๋ ๋ชจ์ต์ด์ง๋ง, vercel์ ์ฎ๊ฒผ์ ๋๋ ์๋๋..๊ทธ๋ฐ ๋์ฐธ์ฌ ์๋ ๋์ฐธ์ฌ๊ฐ ์์๋ค..ใ ใ ์ด๊ฒ ๋๋ฌธ์ ์ค๊ฐ์ ๊ณํ์ ํ๋ฉด์ ์์ด์ก์ง๋ง.. ์ ์๋์๋์ง๋ ๋๋ ๋ชจ๋ฅด๊ฒ ๋ค..
ํน์๋ ์ด ํฌ์คํ ์ ๋ณด์๋๋ฐ tailwind-nextjs ์คํํฐ ํ ํ๋ฆฟ์ ์ ์ฉํ์๋ค๊ฐ threejs๋ฅผ ์ ์ฉํ์๊ณ ์ถ์ผ์๋ค๋ฉด..
- react-three-next
npm install gltfjsx
- Blender / Maya / Cinema4d
์ด๋ ๊ฒ ์ค๋นํด์ฃผ์ฌ ๋ ๊ฒ ๊ฐ๋ค. gltf ํ์ผ ์ฌ๋ฆฌ๋ ๊ฑฐ ์ธ์ threejs ์ฐ์์๋ ๋ฌด๊ถ๋ฌด์งํด์, ๊ณต์์ฌ์ดํธ ๋ฐฉ๋ฌธํ๋ ๊ฒ๋ ๊ถํจ! ๊ตญ๋ด์์๋ ์์ง ์ ์์ฐ์ง๋ง ์ธ๊ตญ์์๋ ํ๋ฐํ ์ฐ๊ณ ์๋ ์ถ์ธ๋ผ example ์ฌ์ดํธ๊ฐ ๋ง๋ค.. ๋์ค์ง๋ ๊ฝค๋ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ง๋ง ๊ธฐ์ ์คํ ์ถ๊ฐํ๊ธฐ์ ๋งค๋ ฅ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค.
3. React awesome button๊ณผ nextjs์ ์ถฉ๋
์ ๊ทธ๋ฐ์ง๋ ์ด๊ฒ๋ ์์ ๋ชจ๋ฅด๊ฒ ์ง๋ง..ใ React 18์์๋ transition์ด defined ๋์ง ์๋ค๊ณ ๊ณ์ vercel์์ ์ค๋ฅ๊ฐ ๋ด๋๋ฐ, react 18์์ ์๋ก ์ถ๊ฐ๋ useTransition ํจ์ ๋๋ฌธ์ด์ง ์์๊น ์ถ์ธกํ๋ค.. react 17๋ก ๋ด๋ ธ์ผ๋ ๊ฐ๋ง์ด ์์ด์ ์ด๊ฑด tailwindcss๋ก ๊ฐ๋จํ๊ฒ ๊ตฌํํ๋ค.

Dark ๋ชจ๋์์๋ ์ข ๋ชป์๊ธฐ๊ฒ ๋์ค์ง๋ง ๋๋ฆ ๊ตฌํ์ ์ํ๋ค๊ณ ๋ ์๊ฐํ๋ค ใ ใ
Back End
Nextjs ์ค๋ช ์ฐธ๊ณ ํ๋ฉด ์ข์ ๊ฒ๋ค:
์์ฝํ๋ฉด, react-router-dom ๋ณด๋ค๋ ๋ก๋ฉ ์๊ฐ์ ์ค์ผ ์ ์๋ค!
ํ์ง๋ง ๋ค๋ฅธ ํ์ด์ง๋ก ๋์ด๊ฐ ๋ ์ ์ฒด๊ฐ ์๋ก์ฝ์นจ์ด ๋๋ ๋จ์ ์ด ์๋ค.
๋ถํ๋ฅผ ์ข ์ค์ด๊ณ ์ ๋ธ๋ก๊ทธ ListLayout.js
์์ ์ด์ฐจํผ ์ ์ฒด ๋ธ๋ก๊ทธ ํ์ด์ง๋ฅผ ์ด๊ธฐ ๋ ํธ์ถํ๋ ๊ฒ ๊ฐ์์ [page].js
ํธ์ถํ์ง ์๊ณ ๊ฐ๋จํ๊ฒ sliceํ index ์ ๋ณด๋ฅผ ๊ฐ๋จํ๊ฒ useState
๋ก ์ํ ๊ด๋ฆฌํ์๋ค. [tag].js
๋ ์ด์ฉ ์ ์์ด ํธ์ถ๋๋ ์ง๋ผ ์ด๊ฑด ํฌ๊ฒ ๊ฑด๋ค์ง ์์๋ ๊ฒ ๊ฐ๋ค.
Nextjs ํน์ฑ์ ์๋ฒ์์ ๋ฏธ๋ฆฌ ๋๋๋ง์ ํ๋ฏ๋ก ๋ณ๋์ Loading ํ์ด์ง๋ ํ์๊ฐ ์์ง๋ง ๊ฐ๋จํ๊ฒ timeout์ผ๋ก ๊ตฌํํ์๋ค.
GISCUS ์ฐ๊ฒฐํ๊ธฐ
giscus ์ฐ๊ฒฐ์ ํ๋ผ๋๋๋ก ํ๋ฉด ๋๋ค. discussion category ํ๋ ์๋ก ํ ๋ Q&A ์ต์
์ธ์ง ํ์ธํ๊ณ , ์๋ ์์ฑ๋ <script>
์ ๋์จ ์ ๋ณด๋ฅผ ํด๋ ๋ด .env.example
์ ๋ณต๋ถํ๋ฉด ๋๋ค. ์ฌ๊ธฐ์ .example์ ์ง์์ฃผ๋ฉด ์ ์ฐ๊ฒฐ๋ ๋ชจ์ต์ ๋ณผ ์ ์์ ๊ฒ์ด๋ค.
vercel์ ์ฌ๋ฆด ๋๋ Setting > Project Setting > Environment Variables
์์ .env import ํ๊ณ production, develop, preview ๋ชจ๋ ์ฒดํฌํ๊ณ ๋!
Wrap up | Conclusion
์ด๋ ๊ฒ ํด์ ์๋ฒฝํ๊ฒ๋ ์์ฑํ์ง ์์์ง๋ง, ๊ทธ๋๋ ์ด๋๊ฐ์ ๋ ๊ฐ๋ฐํ๋ ์ฌ๋์ด๋ค!๋ผ๊ณ ๋งํ ์ ์๋ ๋๋ง์ ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋ค์๋ค. ์ถํ ํฌํธํด๋ฆฌ์ค๋ ์ ๋ฆฌํด์ ์ฌ๊ธฐ์ ์ ๋ฐ์ดํธํ ๋ฏ ์ถ๋ค. ์์ฝ๊ฒ๋ awesome button ๋ฃ๊ณ ์ถ์๋๋ฐ, ๋ญ๊ฐ ๋ฌธ์ ์ธ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง.. ์๋ฌด๋ฆฌ ๊ฒ์ํด๋ ์๋์์ ํฌ๊ธฐํ๋ค. ๋คํฌ ๋ชจ๋๋ ๊ณง ์ ๋ฐ์ดํธ๋ ๊ฒ ๊ฐ๊ณ , ์ถํ ์คํจํ๋ three.js๋ฅผ ๋ด ์ฐ๊ตฌ๋ ์ฐ๊ฒฐ์ ํด์ ์ฌ๋ฆด ๊ฒ ๊ฐ๋ค. ์ข ๋ ์ฌ๋ฐ๊ฒ ๋ง๋๋ ๋ฐฉํฅ์ผ๋ก ๊ทธ ๋ ๊ฐ์ ๋ณผ ๋ฏ ์ถ๋ค. ์๋ฌดํผ ์ด๋ฒ ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋ค๋ฉด์ ์ธ๊ณต์ง๋ฅ ๋ชจ๋ธ ๋๋ฆด ๋์ ๊ณต๋ถํ ์น๊ณต๋ถ๋ฅผ ์ ๊ทน์ ์ผ๋ก ์ ํ์ฉํ ๊ฒ ๊ฐ์ ๋ฟ๋ฏํ๋ค.
- ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด ๊ณ ๋ฏผ์ ํ์๊ณ ์ ์ฉํด๋ณด์๋ค.
- ํด๋ฆฐ ์ฝ๋๋ฅผ ์ํด Componentํํ๊ณ ํ์ผ ๊ตฌ์กฐ๋ ์ฌ์ ๋ฆฝํด๋ณด์๋ค.
- tailwindcss ์ฌ์ฉํ์ง 1๋ ์ฐจ๋ก์ ์ฌ์ฉ์ ์์ด์ ๋ฌธ์ ๊ฐ ์์ ์ ๋๋ก ์ฑ์ฅ!
- React 3๋ ์ฐจ๋ก์ ํด๋ก ์ฝ๋ฉ movie app ํด๋งค๋ฉด์ ๋ง๋ค๋๊ฒ ์๊ทธ์ ๊ฐ์๋ฐ, ๋จ์ ์ฝ๋๋ฅผ ๋ณด๊ณ ์ดํดํ๊ณ ๋ด ๊ฒ์ผ๋ก ๋ค์ ์ฝ๋ฉํ๋ ์ค๋ ฅ์ผ๋ก ์ฑ์ฅํ ๊ฒ ๊ฐ๋ค.
- Nextjs์ ๋ํด ์๋ก ์์๊ฐ๊ณ ๋ง์ ๊ณต๋ถ๊ฐ ๋์๋ค. ์ ์ ์ฌ์ดํธ์์๋ง ์ฌ์ฉํ ์ ์๋ค๋๊ฒ ๋จ์ ์ด์ง๋ง, ์ด๋ฌํ ํน์ง์ ์ด๋ ค์ ๋ค๋ฅธ ๊ฒ์ ๋ง๋ค ์ ์์ ํ์ฉํด๋ณด๊ณ ์ถ๋ค.
๋ค์ ๊ณต๋ถ๋ Flutter๊ฐ ๋ ๊ฒ ๊ฐ๋ค. ๊ฐ๋ฐ ํ๊ธฐ ๋~!
- Authors
- Name
- Amelia Young
- GitHub
- @ameliacode