
VitePress, ์๋ก์ด ๊ฒ์ ์ ์ํ์ฌ ๊ธฐ์ฌํ๊ธฐ
VitePress ์ปจํธ๋ฆฌ๋ทฐ์ ํ๋ ์ํผ์๋๋ฅผ ์ด์ผ๊ธฐํฉ๋๋ค.
๋ค์ด๊ฐ๋ฉฐ
์ ๋ ์ฌ๋ฌ ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ๊ณต์ ๋ฌธ์ ์์ฑ์ ์ํด Documentation Framework๋ฅผ ์ฌ์ฉํ๊ณ ์์ด์. ์ง์ ๋ง๋ค์ด์ ์ฌ์ฉํ ์ ์๊ฒ ์ง๋ง ์ง์ ๊ตฌ์ถํ๋ ๋น์ฉ์ ๋ง์ด ๋ ๋ค๊ณ ์๊ฐํด์. ์๊ฐ์ด๋ ๊ธฐ์ ๋ฌ๋ ์ปค๋ธ ๋ํ์ฌ SEO ์ต์ ํ๋ ๋์์ธ ๋ฑ๋ฑ ๊ณ ๋ คํ ๊ฒ ๋ง์ ๋ฌธ์ํ๊ฐ ํ์ํ ๊ฒ์ Documentation Framework๋ฅผ ์ฌ์ฉํ๊ณ ์์ง์.
์ด๋ฒ Query Adaptor์ด๋ผ๋ ํจ์นญ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค๋ฉด์ Documentation Framework์ธ VitePress๋ฅผ ์ฌ์ฉํ๋ ์ค์ ํ์ํ ๊ธฐ๋ฅ์ ์ ์ํ์ฌ ๊ธฐ์ฌํ๊ฒ ๋ ์ํผ์๋๋ฅผ ์ด์ผ๊ธฐํ๊ณ ์ ํด์.
Documentation Framework๋ ๋ญ๊ฐ์?
Documentation Framework๋ README.md ํน์ Wiki์ ๊ฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ด๋์ ์ค๋ช ์ ๋ด์ ๋ฌธ์๋ฅผ ์น์ผ๋ก ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ ์์ํฌ์์. SEO ์ต์ ํ๋ ๋ฌผ๋ก ์ด๊ณ ๊ตญ์ ํ(i18n), ์ฝํ ์ธ ๊ฒ์ ๊ธฐ๋ฅ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ด ๋ค์ด๊ฐ ์์ด์ ์ฌ์ฉ์๋ ๋ฌธ์๋ง ์์ฑํ๋ฉด ๋์ด์์. ํ๋ ์์ํฌ๊ฐ ์์์ ๋ค ํด์ฃผ๊ฑฐ๋ ์. ๋ํ์ ์ผ๋ก๋ VitePress, Docusaurus, Nextra๊ฐ ์์ต๋๋ค.
๊ทธ์ค ์ ๋ VitePress๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์์ ์ Rollup์ด๋ Vitest์ ๊ฐ์ ๊ณต์ ๋ฌธ์๋ฅผ ๋ง์ด ๋ดค์ ๋์ ๊ฒฝํ๊ณผ ์ฌํํ ๋์์ธ๊ณผ ๋ ๋ฉ ํ์ด์ง๊ฐ ์ฌ๋ก์ก์๊ณ , ์ปค์คํ ์ค์ ์ด ์ ๊ตฌ์ฑ๋์ด ์์ด ์ฝ๋ ์์ ์์ด ๋น ๋ฅด๊ฒ ์ปค์คํ ๋ง์ด์ง์ ํ ์ ์์ด VitePress๋ฅผ ์ ํํ๊ฒ ๋์ด์. ๋ํ ๊ณต์ ๋ฌธ์๋ ํ๊ธํ๊ฐ ๋์ด์์ด ๋น ๋ฅด๊ฒ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
๊ธฐ์ ์ ์ผ๋ก๋ ์ ํต์ ์ธ SSG ๋ค๊ณผ ๋ฌ๋ฆฌ ์ ์ฒด ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจ์ ํ๋ ๊ฒ์ด ์๋๋ผ ์ด๊ธฐ ๋ฐฉ๋ฌธ ์ ์ ์ HTML์ ๋ฐ๊ณ ์ดํ๋ SPA๋ก ํ์ํ๋ ๋ฐฉ์์ผ๋ก ์ฑ๋ฅ์ ์์ด ์ต์ ์ ๊ท ํ์ ์ ๊ณตํ๊ณ ์๋ค๊ณ ํด์. (ํด๋น ์ฅ์ ์ ๋ํด์๋ ๋ถ์ํ์ฌ ๋ค๋ฅธ ๊ฒ์๊ธ์ ํตํด ์ง์ ํ์ธํด ๋ณผ๊ฒ์!)
NPM ์์ ๋งํฌ๊ฐ ํ์ํ์ด์
์ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ๋ฉด ํญ์ npm์ ๋ฐฐํฌํ์ด์. ์ด๋ Node.js ์ํ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์๋ผ๋ฉด ํ์์ ์ด๋ผ๊ณ ์๊ฐํด์. ํ์์ ๊ฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ์ฌ ๊ณต์ ๋ฌธ์๋ฅผ ์์ฑํ๋ ๋์ค์ ๋ฐ๋ณต์ ์ผ๋ก ํ๋ ์ผ์ด ์๊ฒผ์ด์. ๊ทธ๊ฒ์ ๋ฐ๋ก ๋ค๋น๋ฐ(Navbar)์ NPM์ ๋งํฌํ๋ ์์ด์ฝ์ ์์ฑํ๋ ๊ฒ์ ๋๋ค.
VitePress์์๋ .vitepress/config.mts์์ ๋ค๋น๋ฐ์ ์๋ ์์ ๋งํฌ๋ฅผ ์ค์ ํ ์ ์์ด์. ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด ์ด 10๊ฐ์ง๋ก NPM์ด ์ต์ ์ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ด์. ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์๊ฐ NPM์ ํตํด ๋ฐฐํฌํ๊ฒ ๋ ํ ๋ฐ ์๋ค๋ ๊ฒ์ ์ฐธ ์์ํ์ด์. VitePress๋ฅผ ํตํด ๊ณต์ ๋ฌธ์๋ฅผ ์ด์ํ๋ ์ ๋ช ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค Vite, Rollup, Pinia, Vitest, D3 ๋ฑ ์ด ์๋๋ฐ ์ด ๋ชจ๋ NPM ํตํด ๋ฐฐํฌ๋๊ณ ์๋๋ฐ๋ ๋ง์ด์ฃ .
๊ทธ๋์ ์ด์ฉ ์ ์์ด npm์ ์ปค์คํ ์ผ๋ก ์ถ๊ฐํ์ฌ ์ง์ ์ฌ์ฉํด์ผ ํ์ด์. ๊ณต์ ๋ฌธ์์์ ์๊ฐ๋ ๊ฒ์ฒ๋ผ NPM์ SVG ์ฝ๋๋ฅผ ๊ฐ์ ธ์ ์ง์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ๋ฟ์ด์์ฃ .
ํด๋น ์์ ์ ๋งค์ฐ ๋ฒ๊ฑฐ๋ก์ธ ๋ฟ๋ง ์๋๋ผ NPM์ ๋ฐฐํฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ณต์ ๋ฌธ์๋ก VitePress๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋งค๋ฒ ํด์ผ ํ๋ ๋ฐ๋ณต์ ์ธ ์์ ์ด์์ต๋๋ค. ์ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ถ๋ค๋ ๋๊ฐ์ด ํ๊ณ ์์ ๊ฑฐ๋ผ ์๊ฐํด์. ์ฌ๊ธฐ์ ๋ถํธํจ์ ๋๊ปด ๊ฐ์ ํ๊ณ ์ ํ๋ ๋ง์์ด ์๊ฒผ์ต๋๋ค.
ํ์ํ ๊ฑด ์ ๋ถ ์๋๋ฐ ๋งจ ์ค๋ฅธ์ชฝ NPM๋ง ์๋ค๋, Logo์ ๋ผ์ด์ ์ค ๋ฌธ์ ๊ฐ ์๋๋ผ๊ณ ์๊ฐ์ด ๋ค๊ธฐ๋ ํ์ฃ .
๊ธฐ์ฌ์ ์ฒซ ๋ฒ์งธ ๊ฑธ์
๊ธฐ์ฌํ๊ธฐ ์ํด VitePress์ ๋ ํฌ์งํ ๋ฆฌ์ ๋ฐฉ๋ฌธํ์ฌ ๊ธฐ์ฌ์ ๋ํ ๊ฐ์ด๋๊ฐ ์์ฑ๋ contributing.md๋ฅผ ์ฝ์ด๋ดค์ด์. ํด๋น ๋ฌธ์์์ ์๊ฒ ๋ ๊ฒ์ ๊ธฐ์ฌ์ ๊ดํ ํ๋ ๊ฐ๋ น (Code of Conduct)์ ๋ํด์ ์ฒ์ ์๊ฒ ๋์์ด์.
์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผ ํ๋ ์ด์(Issue)๋ฅผ ์ค๋๋ ฅ ์๊ฒ ์ ์ํ๋ผ๊ณ ๋์ด ์์ต๋๋ค. ๋ํ ์ ์์ ์ด์๋ฅผ ํตํด ๋จผ์ ์น์ธ๋ฐ์ผ๋ผ๊ณ ๋์ด ์์ด์.
๊ทธ๋์ ์ ๋ ์ ๋ก๊ฐ ์๋์ง ๊ธฐ์กด์ ์์ ๋งํฌ ๊ด๋ จ PR์ ์ ๋ถ ์ฐพ์๋ดค์ต๋๋ค. ๊ธฐ์กด์ ์์ ๋งํฌ๋ค์ ์ด๋ป๊ฒ ์ถ๊ฐ๋์๊ณ ์ด๋ค ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋์๋์ง ํ์ธํด ๋ณธ ๊ฑฐ์์. ๊ทธ๋ฌ๋ ์ค ์ถฉ๊ฒฉ์ ์ธ ์ฌ์ค์ ์๊ฒ ๋ฉ๋๋ค.
์์ ์ด๋ ฅ ๋ช ๊ฐ์ง๋ฅผ ์ฐพ์๋ณผ ์ ์์์ด์. ๊ทธ ์ค ํ๋์ธ ํ ๋ ๊ทธ๋จ ์์ ๋งํฌ๋ฅผ ์ถ๊ฐํ๋ PR(#934)์ธ๋ฐ์. ํด๋น PR์ Merge ๋์ง ์๊ณ Closed๊ฐ ๋ ๊ฒ์ ํ์ธํ ์ ์์ด์. ํ ๋ ๊ทธ๋จ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ PR(#1214)์์ GitLab, Reddit, Tittok, Twitch ์์ ๋งํฌ๋ Closed ๋์์ต๋๋ค. Maintainer์ธ brc-dd ๊ฐ๋ฐ์๋์ ์ฝ๋ฉํธ์์ ๊ทธ ์ด์ ๋ฅผ ํ์ธํ ์ ์์๋๋ฐ์.
โ์์ ๋งํฌ์ ๊ธฐ๋ฅ์ด ๋ฆฌํฉํ ๋ง ๋์ด API๊ฐ ๋์ฑ ์ ์ฐํด์ ธ ์ฌ์ฉ์๊ฐ ์ํ๋ ์์ด์ฝ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํด๋น ์ด์๋ฅผ ๋ซ์ต๋๋ค.โ๋ผ๋ ์ด์ ๋ก ๋ ์ด์ ์๋ก์ด ์์ ๋งํฌ ์ต์ ์ ๋ฐ๊ณ ์์ง ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ NPM๋ ๋๊ฐ์ ์ด์ ๋ก Closed ๋๊ฒ ๋ค, ํ์ง ๋ง๊น๋ผ๋ ์๊ฐ์ด ์ ๊น ๋ค์์ง๋ง NPM์ ๊ฒฝ์ฐ๋ ๋ค๋ฅด๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๋ํ NPM์ด ์ ํ์ํ์ง ์ค๋ํ ์ ์์ง ์์๊น ํ์ฌ ํฌ๊ธฐํ์ง ์๊ณ ์ด์๋ฅผ ์์ฑํ์ด์.
๊ธฐ์ฌ์ ๋ ๋ฒ์งธ ๊ฑธ์
์ ๊ฐ ์์ฑํ ์ด์์ ๋ด์ฉ์ ์ด๋ ์ต๋๋ค. โ๋๋ถ๋ถ์ NPM ํจํค์ง(๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ฅผ ๋ฌธ์ํํ๋๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ NPM์ ๊ณต์์ ์ผ๋ก ํฌํจ๋๋ฉด ์ฌ์ฉ์ ๋ชจ๋์๊ฒ ํฐ ๋์์ด ๋ ๊ฒ์ด๋ผ ์๊ฐํฉ๋๋ค.โ๋ผ๋ ํต์ฌ ๋ด์ฉ์ ๋ด๊ณ ํด๋น ์ด์ ์์ ์ ์ด๋ป๊ฒ ์งํํ ๊ฑด์ง๋ ๊ฐ๋จํ๊ฒ ์์ฑํ์ด์.
์ ์ ๋ฒ๊ฑฐ๋ก์์ ์ ์คํจ์ด ํตํ๋์ง ํน์ NPM์ด ํ์ํ๋ค๊ณ ํ๋จ๋์๋์ง ๋ฐ๋ก ๋๊ธ(Comment)๋ ์์์ง๋ง contribution welcome ๋ผ๋ฒจ๋ก ์น์ธ์ ๋ฐ๊ฒ ๋์์ด์!
์ด์์ ์ ์ ๋ด์ฉ ๋๋ก SocialLinkIcon Type๊ณผ icons์ svg ์ฝ๋๋ฅผ ๋ฃ์ด ์ด 3๊ฐ์ ํ์ผ์ npm์ ์ถ๊ฐํ์ต๋๋ค. ์์ ํ ํน์๋ ํ๋ ๋ง์์ ํ ์คํธ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ฌ ํ ์คํธ๊ฐ ๋ชจ๋ ํต๊ณผํ๋์ง๋ ํ์ธํ์ด์.
๋ง์ง๋ง์ผ๋ก commit-convention.md์ ๋์์๋ ์ปค๋ฐ ์ปจ๋ฒค์ ์ ํ์ธํ๊ณ ์ปค๋ฐ ํ์ฌ PR์ ๋ณด๋์ต๋๋ค.
๋ช ๋ถ ํ ํ์ธํด ๋ณด๋ ๋น ๋ฅด๊ฒ Merge๊ฐ ๋์ด์! ์ด๋ ๊ฒ ์ ์ ์ธ์ ์ฒซ ์คํ์์ค ํ๋ก์ ํธ ๊ธฐ์ฌ๊ฐ ๋์์ต๋๋ค.
ํด์ธ์ ์คํ์์ค ํ๋ก์ ํธ์ ์ ์ ํ๋กํ๊ณผ ์ด๋ฆ์ด ์๋ ๊ฒ ์ฐธ ์ ๊ธฐํด์ ๋ช ๋ถ ๋์ ๋ณด๊ณ ์์์ด์. โญ10k ๊ท๋ชจ ์คํ์์ค ํ๋ก์ ํธ์ contributor๊ฐ ๋๋ค๋ ๋ฏฟ๊ธฐ์ง ์๊ณ ์ ๊ธฐํ์ด์.
ํ์ฌ VitePress๋ 1.0.0-rc.39 ๋ฒ์ ์ด์์. ์ ๋ฐ์ดํธ๊ฐ ๋์ด 1.0.0-rc.40 ์ด์์ด ๋๋ฉด ์ ๊ฐ ๊ธฐ์ฌํ ์์ ๋งํฌ NPM์ ๋ง๋๋ณด์ค ์ ์์ ๊ฑฐ์์. ์ ์ฒ๋ผ NPM ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ๊ณ ๊ณต์ ๋ฌธ์๋ฅผ VitePress๋ฅผ ์ฌ์ฉํ์ ๋ค๋ฉด NPM ์์ ๋งํฌ ๋ง์ ์ฌ์ฉ ๋ถํ๋๋ ค์!
2024-01-22 ์ถ๊ฐ
๊ธฐ์ฌ์ผ ๋ค์ ์ฃผ์ฏค์ ์ ๋ฐ์ดํธ๋ ๋ฒ์ 1.0.0-rc.40 ๋ฒ์ ์ ์ ์ ๊ธฐ์ฌ๊ฐ ํฌํจ๋์ต๋๋ค!
๋ง์น๋ฉฐ
์ง๊ธ๊น์ง ์ ์ ์ฒซ ๊ธฐ์ฌ ์ํผ์๋์์ต๋๋ค. ์์ ๋งํฌ API์ ์ ๋ฐ์ดํธ๋ก ์ธํด ์ถ๊ฐ ์์ ๋งํฌ ์ต์ ์ ๋ ์ด์ ๋ฐ์ง ์๊ฒ ๋ค๋ Maintainer์ ๋๊ธ์ ๋ณด๊ณ ํฌ๊ธฐํ๋ค๋ฉด, ์ด ๊ธฐ์ฌ๋ฅผ ํ์ง ๋ชปํ์ ๊ฑฐ์์. ํฌ๊ธฐํ์ง ์๊ณ ์ด์๋ฅผ ์์ฑํ์ฌ NPM์ด ํ์ํ ์ด์ ๋ฅผ ์ ์ํ๊ณ , ์ด๋ค ํ์ผ์ ์์ ํ์ฌ ์์ ํ๊ฒ ๋ค๊ณ ์ ์ด์ ๊ธฐ์ฌ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ง์น ์ ์์์ต๋๋ค.
์๋ก์ด ๋์ ์ ํญ์ ๋ง์ค์ฌ์ง๊ณ ๋๋ ค์ด ๊ฒ ๊ฐ์์. ์ด๋ฒ ๊ธฐ์ฌ๋ฅผ ํ๋ ๋์์๋ ํฌ๊ธฐํ ๊น ๊ณ ๋ฏผ์ ๋ง์ด ํ์ง๋ง, ๊ทธ๋๋ ํ ๋ฒ ํด๋ณด์, ์ด์๋ก ์๊ธฐํด ๋ณด์๊ณ ๋ง์๋จน์ด ๊ฒฐ๊ตญ ๊ธฐ์ฌ๋ฅผ ์์ํ ์ ์์์ด์. ์ฌ๋ฌ๋ถ๋ ๊ทผ๊ฑฐ๊ฐ ์๋ค๋ฉด ํฌ๊ธฐํ์ง ์๊ณ ๋๊น์ง ๋์ ํ์๊ธฐ ๋ฐ๋๋๋ค.