[웹] 블로깅 시스템을 만들었습니다
2018 / 09 / 18
블로깅 시스템을 처음부터 끝까지 구현했습니다.
프론트엔드의 발전에 힘입어 데이터베이스 없이 스태틱 페이지만으로 블로깅을 할 수 있는 툴들이 등장했습니다. Github Pages에서 사용하는 Jekyll이 대표적입니다. 본래 워드프레스로 블로깅을 하다가 추세를 따라서 툴을 바꾸려 생각하고 있었는데, 여기서 하나 더 고려한 것이 Single Page App(SPA)입니다.
그러나 Jekyll은 Markdown 문서들을 html로 변환해서 링크로 연결할 뿐 SPA를 구현하기에는 적합하지 않았습니다.
그래서, 그냥 만들어버렸습니다.
Jekyll처럼 범용적으로 쓸 수 있는 툴을 만든 것은 아니고, 다음과 같은 요구사항을 만족하도록 웹 애플리케이션을 구현했습니다.
- SPA. 페이지를 이동할 때 브라우저의 로딩이 없어야 함.
- Markdown으로 글을 작성할 수 있어야 함.
- HTML, Javascript, CSS만으로 동작해야 함(DBMS 없음).
위 세 가지가 꼭 만족해야 하는 요구사항들입니다.
개발스택은 아래와 같습니다.
- Web server: golang으로 직접 구현.
- Frontend: VueJS.
- CI/CD: git hook을 사용해서 자동으로 배포.
현재 시스템은 다음과 같이 구현되어 있습니다.
개발 환경에서 커밋을 하면 AWS EC2와 S3에 자동으로 배포합니다. 용량이 큰 리소스들은 CDN으로 설정한 S3 bucket에 올립니다. 이 버킷은 오로지 myeongjae.kim에서 온 요청에만 응답합니다.
개발 과정은 여기에서 볼 수 있습니다.
SPA는 검색엔진이 페이지를 긁어가기 힘들다는 단점이 있는데, prerender-spa-plugin를 사용해서 보완할 수 있습니다.
10월 초에 광일공방에서 자신만의 블로깅 시스템을 만드는 프로젝트를 진행하려고 합니다.
Next Article
[웹] Single Page App의 Search Engine Optimization과 VueJSPrevious Article
[기술] Rob Pike의 프로그래밍 규칙 5가지