녕후킴

녕후킴

블로그 주인의 프로필 그림

Sanity 사용 후기

0 views

개발하면서 마주치는 이슈와 해결 과정을 보통 프로젝트 repository의 issue에 남겨놓는데, 나중에 찾으려고 보면 어떤 프로젝트의 issue에 적어놨는지 기억이 안났다. 그래서 Single Source Of Truth한 공간에 대한 갈증이 있었다.

노션에 적자니 블로그가 아쉽고, 블로그에 적자니 정리되지 않은 글을 repo에 올려야하는 문제와 add-commit-push의 번거로움, 별도의 컨텐츠 작성 툴 부재 등의 아쉬움이 있어 CMS를 찾게됐다. 그리고 여러 CMS 가운데 Sanity로 정착하게됐다.

Sanity는 글을 작성하고 관리할 수 있는 공간인 Sanity Studio를 아래와 같이 제공한다.

Sanity에서 제공하는 CMS 관련 브라우저

본인은 진행하는 프로젝트들에서 마주치는 모든 이슈는 위 이미지에 보이듯 Memo 카테고리에 저장하고, 충분히 정리되어 글로써 배포될 준비가 되는 경우에 Published Post로 글을 옮기는 방식을 취하고있다.

Sanity를 선택한 이유

Headless CMS - Top Content Management Systems | Jamstack을 들어가보면 수십개의 CMS가 존재하는데, 이 CMS들을 전부 다 비교하고 선택하긴 어려워 배포 비용이 안들어 무료인 CMS를 가장 최우선순위로하여 조사했다.

StrapiGhostHeadless CMS - Top Content Management Systems | Jamstack에서 가장 최상단에 위치해서 매우 매력적인 CMS였지만, 배포 비용으로 달마다 만원 내외의 비용을 내야해서 패스했다.

Decap CMS도 매력적이었는데 git based CMS라서 패스했다. 본인은 블로그에 다양한 콘텐츠를 올리면서 일생에 걸쳐 운영하는 꿈이 있는데, 데이터를 표현하는 형태가 제한되고 동적인 데이터 업데이트가 필요한 경우에 적합하지 않은 git based CMS의 특징들은 이러한 꿈을 이루기는 어려워보였기 때문이다. 아마 이러한 꿈이 없었다면 Decap CMS를 선택하지 않았을까 싶다.

Sanity 특징

1. Free Plan이 제공하는 자원

호스팅은 무료로 제공된다. 별개로 요금하고 직결되는 부분의 옵션들은 다음과 같다. 월마다 초기화되나? 라고 한다면 옵션마다 다르니 별도로 확인하자.

요금하고 직결되는 옵션들

2. 필요한 기능은 plugin를 붙여서

기본적으로 Sanity Studio는 마크다운 작성과 미리보기가 지원이 안되는데, 이는 plugin을 설치하면 된다. sanity도 gatsby처럼 plugin 생태계가 존재한다. 본인은 sanity-plugin-markdownsanity-plugin-tags 두개의 plugin을 사용하고있다.

3. GROQ query language

sanity는 GROQ라는 쿼리 랭귀지를 사용하는데, 문법이 다소 기괴하여 거부감이 든다. 하지만 우리게엔 gatsby-source-sanity가 있기 때문에 문법을 따로 배우진 않아도 된다.

4. 이외에

Sanity Studio에서는 작성한 게시글들에 대해서 List Preview를 보여주는데, 커스터마이징이 가능할 뿐만 아니라, 배포가 됐는지와 게시글 수정이 일어났는지등의 여부를 아래와 같이 표시해준다.

아래와 같이 게시글에 대한 버젼 히스토리도 별도로 남겨준다.

아래와 같이 글을 내리거나 삭제하는 것 역시 가능하다.

단점

내가 편집하는 화면의 max-width가 40rem으로 설정돼있어서 마크다운을 작성하기에 많이 답답하다. 이슈는 올라와있지만 답변은 안달려있다.

에디터의 max-width

종합적으로는!

목말라하던 SSOT로써의 역할을 200% 해내고있다. add-commit-push의 과정도 필요 없고, 배포될 준비가 완료된 글들은 버튼 몇 번이면 바로 배포가된다. notion과 비교하면 UI, UX, 기능 모두 다 뒤쳐지지만 나에게 딱 필요한 기능들만 있다는 점에서 sanity가 훨씬 더 만족스럽다. (notion은 이력 정리 외에는 사용을 안하고 있는 수준)