Ghost기반 블로그를 시작하며
Ghost 블로깅 플랫폼에 대한 선택이유와 테마 개발 계기
개인 페이지 및 블로깅 서비스를 해야겠다고 마음먹은지 오랜시간이 지난 후에야 드디어 블로그를 개설할 수 있었습니다.
블로그를 시작하며 왜 Ghost라는 오픈소스를 선택하였고 현재 사용중인 Ghost 테마를 직접 개발하게 된 계기를 간략하게 남겨보려고합니다.
Ghost를 사용하게된 이유
외주로 웹 매거진 솔루션 개발을 하면서 여러 CMS를 리서치하다가 Ghost 플랫폼을 알게 되었습니다.
워드프레스 등 다양한 CMS 시스템에 대한 대안이 존재하지만 무엇보다 웹 매거진이었기에 포스팅에 전문적인 기능이 있는 플랫폼 사용이 좋겠다는 판단하에 Ghost기반의 커스텀 테마를 개발하여 배포하였고, 개발 요구사항에 대한 개발 환경이나 적당한 기능 확장성과 좋은 어드민 사용경험이라는 판단하에 Ghost CMS를 선택하게 되었습니다.
Wordpress와 주관적인 비교
Wordpress는 세계에서 가장 많이 사용하는 CMS 솔루션중 하나입니다.
기능에 확장성과 범용성에 있어서는 Wordpress가 앞서지만 Ghost는 플러그인 생태계가 없고 사용자 친화적인 UX를 가진 관리자 페이지와 플러그인 없이도 자체적으로 내장되어있는 SEO 기능, 풍부한 내장기능으로 보면 출판 플랫폼 도메인한정에서는 경쟁력있는 CMS라는 생각과 최근 트렌드가 한 시스템안에서 모든것들을 해결하기보다는 MicroService Architecture등을 통해서 서비스를 작게 유지하려는 측면에서도 지원하는 Headless CMS API를 사용하여 다른 서비스와 통합하기 좋은 구성을 가지고있습니다.
Ghost Theme 생태계
Ghost는 국내에는 사용사례가 많지않아 테마 개발에 대한 정보는 많이 없으나
Ghost Docs라는 문서를 통해서 개발하기에 충분한 사용가이드를 제공하며, 공식적으로 스타터 템플릿등에 다양한 공식테마를 오픈소스로 공개하고 있기때문에 부담없이 테마 개발을 시작할 수 있고, Docker를 통해 Ghost 이미지를 통합하여 초기 설정난이도 또한 많이 낮은편입니다.
Ghost 기술스택 자체가 Node.js기반으로 동작하기때문에 테마 개발또한 handlebar.js 템플릿 엔진을 사용하고 프론트엔드 생태계의 다양한 번들러 및 라이브러리를 통합하기에 좋은 환경을 가지고있다고 판단됩니다.
테마를 개발하게된 이유
개인 페이지나 개발 블로그를 개발할때 다양한 선택지가 존재합니다.
마크다운과 Github 페이지를 활용할 수도 있고, Headless CMS + Next.js 등 메타 프레임워크를 통한 통합 개발등의 다양한 선택지가 있지만 아래 사항을 우선적으로 고려하였습니다.
- CMS 어드민 페이지가 존재하여 콘텐츠 관리만 집중
- 메타 프레임워크 기반의 기능개발 부담을 낮추고 CMS가 제공하는 기능을 최대한 활용
- Swup등의 Page transition 라이브러리 등을 활용하여 간단하게 SPA 경험 제공
위 내용을 기반으로
Ghost Starter 테마를 기반으로 Swup 라이브러리를 포함한 간단한 코드 수정을 통해 개발 블로그용 테마를 빌드할 수 있었습니다.
다만 Ghost를 Headless CMS API를 통해서다른 프레임워크와 통합한다면 아래의 기능은 신규로 개발을 해야하기때문에 이 부분은 확장성 측면에서 단점으로 작용할 수 있을 것 같습니다.
앞으로 개발하면서 겪는 문제에 대한 해결과정을 중심으로 포스팅을 열심히 해나아가길 바라면서 글 마치도록 하겠습니다.