๋ถ€์œ ํ•œ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ 30๋ฃจ๋ธ” VPS์˜ Jekyll

๋ถ€์œ ํ•œ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ 30๋ฃจ๋ธ” VPS์˜ Jekyll
์ •์  HTML์€ ๊ฑฐ์˜ ๊ณผ๊ฑฐ์˜ ์ผ์ž…๋‹ˆ๋‹ค. ์ด์ œ ์›น์‚ฌ์ดํŠธ๋Š” ์‚ฌ์šฉ์ž ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์—๋Š” ๋‹จ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋” ๋†’๊ณ  CMS์— ์ˆ˜๋งŽ์€ ์ทจ์•ฝ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๊ฐ„๋‹จํ•œ ๋ธ”๋กœ๊ทธ๋ฅผ ํ‚ค์šฐ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง€ํ‚ฌ โ€” GitHub์—์„œ ์ง์ ‘ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ€์ ธ์˜จ ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ๊ธฐ์ž…๋‹ˆ๋‹ค.

1๋‹จ๊ณ„. ํ˜ธ์ŠคํŒ…: ์‹œ์žฅ์—์„œ ๊ฐ€์žฅ ์ €๋ ดํ•œ ํ˜ธ์ŠคํŒ…์„ ์„ ํƒํ•˜์„ธ์š”.

์ •์  ์›น์‚ฌ์ดํŠธ์˜ ๊ฒฝ์šฐ ์ €๋ ดํ•œ ๊ฐ€์ƒ ํ˜ธ์ŠคํŒ…์ด๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ ๋Š” ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ ๋˜๋Š” ํ˜ธ์ŠคํŒ…์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. GitHub ํŽ˜์ด์ง€, ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ. ๊ทธ๋Ÿฐ๋ฐ ํ›„์ž๋Š” ๋™์ผํ•œ Jekyll์„ ์‹คํ–‰ํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜๋™์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๋งค์šฐ ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค. VPS๋Š” ๊ณต์œ  ํ˜ธ์ŠคํŒ…๋ณด๋‹ค ํ›จ์”ฌ ํฅ๋ฏธ๋กญ์ง€๋งŒ ๋น„์šฉ์ด ์กฐ๊ธˆ ๋” ๋“ญ๋‹ˆ๋‹ค. 

์˜ค๋Š˜ RUVDS๊ฐ€ ๋‹ค์‹œ ๋ฌธ์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. 30 ๋ฃจ๋ธ”์— ๋Œ€ํ•œ "PROMO"๊ด€์„ธ, Debian, Ubuntu ๋˜๋Š” CentOS์—์„œ ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ž„๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€์„ธ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ œํ•œ, ๊ทธ๋Ÿฌ๋‚˜ ๋ง๋„ ์•ˆ๋˜๋Š” ๋ˆ์œผ๋กœ ์ปดํ“จํŒ… ์ฝ”์–ด 512๊ฐœ, 10MB RAM, 1GB SSD, IP XNUMX๊ฐœ ๋ฐ ๋ชจ๋“  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ธฐ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  Jekyll ๋ธ”๋กœ๊ทธ๋ฅผ ๋ฐฐํฌํ•ด ๋ด…์‹œ๋‹ค.

๋ถ€์œ ํ•œ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ 30๋ฃจ๋ธ” VPS์˜ Jekyll

VPS๋ฅผ ์‹œ์ž‘ํ•œ ํ›„ SSH๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธํ•˜๊ณ  ์›น ์„œ๋ฒ„, FTP ์„œ๋ฒ„, ๋ฉ”์ผ ์„œ๋ฒ„ ๋“ฑ ํ•„์š”ํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, ์‚ฌ์ดํŠธ ์†Œ์Šค๋Š” GitHub ์ €์žฅ์†Œ์— ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ์ปดํ“จํ„ฐ์— Jekyll์„ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ GitHub ํŽ˜์ด์ง€ ํ˜ธ์ŠคํŒ…์˜ ํ•œ๊ณ„๋ฅผ ๊ฒฌ๋”œ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

2๋‹จ๊ณ„: Jekyll ์„ค์น˜

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ Jekyll์€ ์›๋ž˜ ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ณ  GitHub ํŽ˜์ด์ง€์— ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ๊ฐ„๋‹จํ•œ ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ๊ธฐ์ž…๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ ์™€ ๋””์ž์ธ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ก์ฒด ํ…œํ”Œ๋ฆฟ ์‹œ์Šคํ…œ: Markdown ๋˜๋Š” Textile ํ˜•์‹์˜ ํ…์ŠคํŠธ ํŒŒ์ผ ๋””๋ ‰ํ† ๋ฆฌ๋Š” Liquid ๋ณ€ํ™˜๊ธฐ ๋ฐ ๋ Œ๋”๋Ÿฌ์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋ฉฐ ์ถœ๋ ฅ์€ ์—ฐ๊ฒฐ๋œ HTML ํŽ˜์ด์ง€ ์„ธํŠธ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์„œ๋ฒ„์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CMS๋‚˜ DBMS์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ„๋‹จํ•˜๊ณ  ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

Jekyll์€ Ruby ํŒจํ‚ค์ง€(gem)์ด๋ฏ€๋กœ, ์„ค์น˜ํ•˜๋‹ค ๊ทธ๊ฒƒ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์‹œ์Šคํ…œ์— Ruby ๋ฒ„์ „ 2.5.0 ์ด์ƒ์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฃจ๋น„์ ฌ, GCC ๋ฐ ์ œ์กฐ์‚ฌ:

gem install bundler jekyll # 

ํ•„์š”ํ•œ ๊ฒฝ์šฐ sudo๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๋ณด์‹œ๋‹ค์‹œํ”ผ ๋ชจ๋“  ๊ฒƒ์ด ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

3๋‹จ๊ณ„. ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค๊ธฐ

./mysite ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ƒˆ ์‚ฌ์ดํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

jekyll new mysite

๋“ค์–ด๊ฐ€์„œ ๋‚ด์šฉ์„ ๋ณผ๊นŒ์š”?

cd mysite
ls -l

๋ถ€์œ ํ•œ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ 30๋ฃจ๋ธ” VPS์˜ Jekyll

Jekyll์—๋Š” ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ž์ฒด ์„œ๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

bundle exec jekyll serve

์ฝ˜ํ…์ธ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ˆ˜์‹ ํ•˜๊ณ  localhost(http://localhost:4000/) - ์ด ์˜ต์…˜์€ Jekyll์ด ๋กœ์ปฌ ์‹œ์Šคํ…œ์— ๋ฐฐํฌ๋œ ๊ฒฝ์šฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

๋ถ€์œ ํ•œ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ 30๋ฃจ๋ธ” VPS์˜ Jekyll

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ์›น ์‚ฌ์ดํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์›น ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ด๋ฅผ ๋ณด๊ฑฐ๋‚˜ ํƒ€์‚ฌ ํ˜ธ์ŠคํŒ…์— ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

jekyll build

์ƒ์„ฑ๋œ ํŒŒ์ผ์€ mysite ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ _site ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถ€์œ ํ•œ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ 30๋ฃจ๋ธ” VPS์˜ Jekyll

์šฐ๋ฆฌ๋Š” Jekyll์˜ ๋ชจ๋“  ๋ณต์žก์„ฑ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ์ฝ”๋“œ ๋ ˆ์ด์•„์›ƒ ๊ธฐ๋Šฅ ๋•๋ถ„์— ์ด ์ฝ˜ํ…์ธ  ์ƒ์„ฑ๊ธฐ๋Š” ๊ฐœ๋ฐœ์ž ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ๊ฐ€์žฅ ์ ํ•ฉํ•˜์ง€๋งŒ ์ธํ„ฐ๋„ท์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ…œํ”Œ๋ฆฟ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์–‘ํ•œ ์ •์  ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HTML ์ƒ์„ฑ ํ”„๋กœ์„ธ์Šค ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” Jekyll์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ฝ˜ํ…์ธ  ํŒŒ์ผ์„ GitHub์˜ ์ €์žฅ์†Œ์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋Ÿฐ ๋‹ค์Œ VPS์— Git์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ์œ„ํ•ด ๊ฐ’๋น„์‹ผ ๊ด€์„ธ๋ฅผ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ 30๋ฃจ๋ธ” VPS์—์„œ๋„ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ถ€์œ ํ•œ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ 30๋ฃจ๋ธ” VPS์˜ Jekyll

๋ถ€์œ ํ•œ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ 30๋ฃจ๋ธ” VPS์˜ Jekyll

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€