Jamstack을 아직 추천하기 어려운 이유

나는 코딩을 할 줄 아는 사람이다. (개발자라고 하고 싶지만.. 개발이 주 업무는 아니니..) 그래서 본능적으로 Jamstack (Javascript, API, Markup Stack) 또는 Static Site Generator라는 개념이 끌리게 되어있다. API라는 것에 익숙하고, 보안 걱정이 없으며, 빠르고, 다운되지 않는 홈페이지를 만들어내니까 말이다. 물론 검색이니, 빌드타임이니 넘어야 할 산이 있지만 그것쯤이야. 다양한 검색 대안들과 증분빌드가 해결해 줄 테니까 말이다.

티스토리의 태터테스크 종료 공지에 따라서 지인 단체의 비영리 홈페이지가 영향을 받았고, 이를 이전하는 것에 대한 고민을 상담해주면서 당연히 Jamstack 을 고려했다. 하지만 역시 많은 허들을 만나게 되었고 이 글은 그 고민을 정리한 글이다. 이 고민의 과정은 Chann님의 도움을 많이 받았다.

  1. 비싸고, 장벽이 높고 락인이 걱정되는 headless CMS
    일단 데이터를 저장해야 하는데 내 전 직장에서 사용해본 Contentful 을 비롯하여 Sanity, DatoCMS 등의 유명한 솔루션이 있다. Contentful 의 경우 5명의 사용자가 2만5천 개의 데이터를 저장할 수 있는 무료 Plan을 제공하기는 하지만 아무리 비영리 조직이라고 해도 무료 plan을 쓰기에는 소중한 데이터를 저장하는 곳으로 무리가 있고, 가장 저렴한 Plan은 60만원 정도로 갑자기 너무 비싸진다. Sanity, DatoCMS 는 시작점이 더 낮아서 15만원 정도라고 할 수 있지만, 한글도 지원되지 않고 친절하지도 않고 표입력 같은 것도 기본적으로 지원하지 않는 (보통 다양한 workaround를 제공하기는 함)데다가 해외에 있는 headless CMS를 국내 비영리조직에 추천하기는 힘들었다. 그리고 또한 가장 큰 걱정거리는 이런 유료 headless CMS를 쓴다면 데이터가 이곳에 락인된다는 점이다. 나중에 이동하고 싶을 때 마이그레이션은 언제나 가장 힘든 일 중에 하나니까.
  2. 데이터 저장소로는 그다지 친절하지 않은 Github
    일단 Github는 코드를 저장하는 곳이다. 물론 마크다운이나 간단한 HTML, 그리고 이미지나 첨부파일을 저장할 수 있고, 많은 사례에서 다양한 공개 데이터를 저장하는 용도로 활용되고있다. 그리고 유명 오픈소스인 Netlify CMSCKEditor 5 기반의 Github WYSIWYG Rich-Text Editor 라는 프로젝트도 있다. Netlift CMS는 표입력은 안되지만 CKEditor 는 표 입력이 된다. 내가 자꾸 표 입력으로 입력기의 수준을 나르는 이유는 이유는 구현하기 어려운 기능이면서 얼마나 사용자 친화적인지를 가를 수 있는 기준으로서 유용하다고 생각하기 때문이다.
    Github 는 코드 저장소로서 나름 꽤 넉넉한 용량을 허용하지만 아무래도 이미지와 첨부파일이 있는 경우에 마음놓고 사용할 수 있는 정도인가는 고민이 된다.
  3. All in One 솔루션이 아니라서 이해하기 어렵다
    Tistory, Naver blog, WordPress 와 같은 글 작성, 배포, 이미지와 첨부파일 관리 등이 한꺼번에 이루어지는 CMS에 비해서 데이터 저장, 빌드, 배포 등이 각각 이루어지는 솔루션은 아무래도 사용성도 떨어지고 비개발자가 동작방식을 이해하기 어렵고 문제가 생길 가능성이 크다.
  4. 페이지 수정할 때 개발지식이 필요할 수 있다.
    이건 길게 설명하지 않아도 될듯 하다. 대부분의 사이트 빌더나 WordPress와 비교해서 페이지 추가 등 수정이 필요할 때 뭔가 코드에 대한 이해가 필요한 경우가 더 많이 발생한다.
  5. 문제가 생겼을 때 누가 해결해줄 것인가
    결국은 이게 가장 크다고 할 수 있다. 문제가 생겼거나 추가 요구사항이 생겼을 때 개발자 없이 해결할 수 있는가? 일반적으로 DB에 저장하는 것보다 복잡한 빌드 과정을 거치는 Jamstack은 빌드하다가 문제가 생길 가망성도 크고 개발자 없이 돌아갈것을 가정해서 만들어졌다는 느낌은 아직 아니다. 개발자가 항시 있는 조직이 아닌데에서 문제가 생겨서 콘텐츠 운영 프로세스가 수일간 멈추는 것은 생각하고 싶지 않다.

그래서 일단은 Managed WordPress가 대안이라고 생각하고 있다. WordPress는 두렵지만 잘 관리해주는 곳이 있고 플러그인을 최소한으로 쓴다면 좋은 대안이니까.