블로그 이사를 기획하다.
✏️

블로그 이사를 기획하다.

Description
Next.js(ISR) + Notion API 로 편-안한 글쓰기 환경 만들기
Tags
Published
Published February 26, 2022

또 이사야?

도데체 몇번째 블로그를 바꾸고 이사하고 하는지 모르겠습니다. 원래 공부 못하는 애들이 막상 공부하려 그러면 책상 정리하고 방 청소한다고 시간 다 보내는것 처럼 글 쓰기를 열심히 해야되겠다 생각할 때 마다 환경을 바꾸고 있습니다.

뭐가 문제인데!

사실 이전에 작성했던 글처럼 여러 플랫폼과 여러 스택들로 저에게 맞는 블로그 환경을 구축해보려고 노력을 많이 해보았습니다. 지금은 대부분의 예전에 작성한 부끄러운 글들을 정리했기 때문에 글들이 많지 않지만 블로그를 하면서 항상 불편했던 점이 있습니다.

글 쓰기 환경과 글을 보여주는 환경의 부조화

블로그가 아니더라도 콘텐츠를 작성하고 유저에게 보여주는 작업은 크게 콘텐츠를 작성하는 파트, 콘텐츠를 보여주는 파트로 나눌 수 있지 않을까 싶습니다. 문제는 이 두 부분이 사용자의 입맛에 맞게 통합되어 관리가 힘들다는 겁니다. 아마 다들 아래와 같은 경험들이 있으실 겁니다.
처음에는 티스토리, blogger, 네이버블로그와 같은 플랫폼위에 글을 작성하기 시작합니다. 근데 쓰면 쓸수록 내가 커스텀 하지 못하는것이 답답합니다. 또 명색이 개발자인데 내 블로그 정도는 내가 배포 하고 싶습니다.
그 다음 단계는 hexo, jekyll, hugo 혹은 next.js 같은 프레임워크를 사용해봅니다. IDE에서 열심히 마크다운을 작성해서 빌드하고 배포하니 온전히 내것인거 같아 뿌듯합니다.
그런데 쉽게 접근하고 편하게 글을 작성하고 싶은데 IDE환경에서 마크다운을 작성하는게 불편하게 느껴집니다. 이쁘지도 않고 눈에 잘 들어오지도 않습니다. 어디서 어느 디바이스 에서든 쉽게 에디팅 할 수 있는 환경이 있으면 좋겠습니다.
노션이 문서 작성하기 안성맞춤인것 같습니다.(느린거 빼고읍ㅂ) 아기자기 이쁘기도 하고 정리도 잘 되는것 같습니다. 노션에 문서를 작성하고 마크다운으로 export 합니다. 그걸로 다시 빌드하여 배포하니 나름 나만의 글쓰기 루틴이 생긴것 같습니다.
글에 수정사항이 생겼습니다. 스태틱 소스의 마크다운에서 수정을 해서 빌드하고 배포합니다. 아차 생각해보니 노선에 있는 글도 업데이트를 해야겠네요. 노선의 글도 같이 수정해 줍니다. 이렇게 빌드 될 마크다운 소스를 먼저 고치면 원래 작성한 노선의 글과 싱크가 맞지 않을 것 같습니다. 앞으로는 무조건 노선을 먼저 수정하고 export 해서 업데이트하기로 마음먹습니다.
글을 하나 쓰거나, 글자 하나 바꿀 뿐인데 export 하고 빌드하고 배포하는 것에 현타가 오기 시작합니다. 이건 아닌것 같습니다. 그냥 다시 플랫폼으로 돌아갈까 잠깐 고민도 되었지만, 그래도 나는 개발자! Headless CMS를 찾아봅니다.
클라우드 서비스는 생각보다 비쌉니다. 단순히 스태틱 페이지 블로그를 하나 운영하고 싶은 건데 이건 좀 아닌 것 같습니다. AWS의 프리티 어가 얼마 남았나 확인을 합니다. 몇 개월 남았네요. Ghost CMS와 같은 Headless CMS on-premise로 구축합니다. 이제 글을 publish 하면 웹 훅으로 이 이벤트를 캐치하여 api로 문서 데이터를 받아오고 자동으로 빌드하고 배포를 합니다. 이제 완벽한 것 같습니다.
근데 생각해보니 Headless CMS의 데이터베이스가 아니라 git-based로 마크다운을 관리하면 버전 관리도 되고 훨씬 간편하고 안전할 것 같습니다. 그리고 에디터가 불편하고 문서 관리를 하는 게 편하지 않은 것 같습니다. 블로그 하나 운영하는데 서버까지 관리해야 되는 게 연타가 옵니다.
forestry.ioNetlify CMS와 같은 git-based Headless CMS가 눈에 들어옵니다. "그래 답은 git-based야!"라며 다시 블로그를 만듭니다. 이제 마크다운도 버전 관리가 가능하고 다른 프레임워크로 마이그레이션 할 때도 편할 것 같습니다.
근데 제공하는 에디터가 불편합니다. 영상도 넣고 싶고 이미지도 붙여넣기하면 자동으로 import 됐으면 좋겠는데 마음대로 되지 않습니다. 다시한번 현타가 옵니다.
"나 안해, 글 안써"

노션 너가 이겼다.

지극히 주관적으로 글을 쓰고 관리하는 것은 노선이 편합니다. Ulysses, Zettlr 등 여러 도구들을 사용해보려고 했습니다만 노선이 제일 편합니다. 노선은 현재 API를 베타로 제공하고 있는데 나중에 이걸 활용해서 어차피 글을 노선에 쓸 거면 이걸 활용해서 노선을 CMS처럼 사용하면 어떨까 나중에 시간이 되면 꼭 만들어 보아야지라고 생각을 합니다.

Next.js On-demand ISR

Next.js 12.1이 발표되었습니다. On-demand ISR(Incremental Static Regeneration)이 눈에 띕니다. 이걸 활용해서 블로그를 만들면 데이터가 여러벌이 되어 관리가 힘든 SSOT(Single Source Of Truth)를 해결할 수 있고 뭔가 Cool해 보일것 같습니다.

때가 되었다.

조금 만져보니 해볼 만한 가치가 있는 것 같습니다. 물론 Notion API가 아직 베타이고 중간중간 바뀌는 것도 많고 앞으로 어떻게 될지는 모르겠지만 재미는 있을 것 같아요. 아마 조만간 또 블로그가 바뀔 것 같습니다. 마이그레이션이 완료되면 경험을 또 기록하겠습니다.