MoonBurst
블로그를 만들었으면 어떻게 돌아가는지 먼저 포스팅 하는 것이 인지상정. MoonBurst는 Swift로 만들어진 블로그엔진입니다. HTTP 관련 복잡한 일은 Vapor에게 맡기고 MoonBurst가 하는 일은 간단합니다.
작성일로 정렬된 글들의 markdown파일을 갖고, 요청된 페이지가 메모리 캐시에 없으면 Cmark를 이용하여 html로 바꾼 다음 헤더와 푸터를 붙여서 캐시합니다. 포스트 초안은 Drafts 폴더에 저장 되었다가 모종의 방법으로 발행이 되면 Posts 폴더로 옮겨집니다. 한 포스트라도 발행하면 모든 캐시가 날아갑니다. Brent Simmons의 Imagining a Node Blogging System for Geeks 에서 많은 힌트를 얻었습니다.
Linode에서 가장 저렴한 ($5/月) VPS에 Ubuntu, Nginx, Vapor, Cmark 만 준비되면 돌릴 수 있으니 제법 포터블하다고… 하기엔 Vapor의 덩치가 좀 크군요.
Swift Package Manager로 Xcode 프로젝트를 만들면 Xcode로 돌리고 디버깅도 가능합니다. 블로그 엔진을 Xcode에서 ⌘ + R로 실행한다니 재미있지요.
이론적으로 막대한 트래픽을 견딜 수 있습니다, 만, 한국말로 쓰여진 텍스트 중심의 블로그가 터무니없는 트래픽을 받을 일은 좀처럼 없겠지요.
YAGNI 정신에 입각하여 200줄 정도의 엉성한 코드로 만들어져서 지금은 기능이 많이 부족합니다. RSS, 페이지 나누기, 각주, 코드 스타일링 등등. 천천히 만들어서 나중에는 오픈소스까지 하고 싶습니다.