bh2980.dev
에세이·

블로그를 다시 만들면서

  • #Blog

답답한 티스토리를 벗어나고 싶어

문득 개발 블로그를 만들어야겠다고 생각했습니다. 사실 옛날부터 어렴풋하게 다짐만 해오던 목표이긴 했습니다만, 이렇게 문득 열정이 생긴 건 연말을 맞아 허무하게 한 해를 끝낼 수 없다는 생각 때문이었을지도 모르겠습니다.

그렇다고 개발 블로그를 운영하지 않았던 것은 또 아닙니다. 개발 블로그는 개발자의 덕목이자 로망 아닐까요? 저 역시도 동일한 생각으로 티스토리에서 개발 블로그를 운영 중이었습니다. 아는 분들조차 모르게 운영하고 있다는게 가장 큰 단점이었지만, 그래도 나름 지식 저장소로써 2021년부터 간간히 글을 올리고 있던 블로그였죠.

제가 이런 블로그를 벗어나고 싶어졌던 건 어느 날 블로그 메인 화면에 진입했을 때였습니다. 다른 날과 같이 즐겨찾기를 클릭해서 블로그에 들어갔는데, 첫 화면에 개발에 대한 게시글단순 문제 풀이 기록이 혼재되어 보이더군요. 그 순간 '아 뭔가 이건 아닌데'라는 생각을 했습니다.

물론 알고리즘이나 문제 풀이에 대한 게시글이 그 자체로 나쁜 것은 아닙니다. 다만 누군가 내 블로그를 처음에 딱 봤을 때 보여주고 싶은 부분이 문제 풀이냐 라고 한다면, 그건 명백히 아니었습니다. 그렇다고 문제 풀이를 올리고 싶지 않은가 라고 물어본다면, 그 역시 아니었습니다.

바로 이 때 플랫폼이 제공하지 못하는 커스터마이징의 필요성을 체감했습니다.

사실 이미 한 번 만들었는데

지금 보는 이 블로그는 사실 5개월 전에 한 번 개발했었던 블로그입니다. 요구사항을 충족하는 레이아웃은 개발된 상태였는데 지나고보니 글을 작성하기 않게 되더군요. 물론 제 의욕의 문제도 있었고, 여러가지 상황이 겹쳤지만 가장 큰 문제는 바로 '글을 작성하는 흐름'이 매우 불편하다는 점이었습니다.

당시의 기술스택은 velite와 mdx를 사용했습니다. 갑자기 기술적인 이야기가 나와 당황스럽겠지만, 요점만 말하면 이렇습니다.

글을 쓰기 위해서는 VS Code를 켜서 mdx 파일을 생성하고, 옆에 실시간 미리보기를 띄워 작성해야 했습니다. 글을 다 작성하면 어땠을까요? 명령어를 입력하면 velite라는 라이브러리가 mdx 파일을 전부 읽고 정해진 스키마에 따라 json 파일을 파싱했습니다. 그리고 이를 커밋해 등록하면 블로그에 새 글이 등록되는 방식이었죠.

보기에는 타당합니다. 실제로도 많은 개발 블로그가 이런 형태를 띄고 있기도 하고, 어느 정도 개발자의 로망을 담고 있기도 합니다. 개발자라면 IDE에서 글을 쓰는 것 정도는 당연한 행위가 아닐까요?

슬프게도, 저에겐 맞지 않았습니다. 이미지 하나를 첨부하려면 파일을 옮기고 경로를 맞추어 작성해야했고, 수정에도 민감했으며, 자동완성이 안되는 mdx는 그 자체로 저에게 굉장한 스트레스였습니다.

즉, 하나의 글을 작성하기 위해 글에만 온전히 신경을 쏟는게 아니라, 글 외적으로도 신경써야하는 요소들이 늘어난겁니다. 플랫폼을 포기한 트레이드 오프일 수 있지만, 결국 이런 스트레스들이 겹친 결과 글 쓰는 행위 자체가 저에게 너무 무거운 행위가 되어버리고 말았습니다.

가벼움으로의 복귀

다시 블로그를 운영할 생각을 하게 되면서 이를 어떻게 해결할까 고민하기 시작했습니다. 플랫폼으로 돌아가자니 최초의 요구사항이었던 보여주는 방식을 개선할 수 없기 때문에 탈락, 결국 이 블로그의 글 작성 흐름을 개선하는게 가장 필요한 행위라 생각했습니다.

저는 이를 개선 할 수 있는게 바로 CMS(Content Management System)라고 생각했습니다. 이 답을 내리고 많은 CMS를 탐색했습니다만, 제가 원하는 조건에 맞는 CMS는 바로 Keystatic이었습니다.

  • 무료이며
  • 파일 기반으로 콘텐츠를 관리해 별도의 DB를 호스팅할 필요가 없고
  • 로컬로도, Github 연동으로 배포하여 작성도 가능하며
  • 공식 문서도 다른 CMS들에 비해 친절한 편이고
  • UI 역시 다른 CMS에 비해 깔끔하고 정돈되었으며
  • MDX를 지원하고, 커스텀 컴포넌트 역시 지원했습니다.

물론 CMS 그 자체의 기능은 파일 기반이라 한계가 명확한 편입니다.

  • 관계 기반의 데이터 모델링은 실시간 업데이트가 힘든 한계가 있고,
  • 다른 DB 기반의 CMS 처럼 데이터를 원하는 형태로 조회하는 것도 불가능할 뿐더러
  • 생각보다 자잘한 버그도 있는 편인데다가
  • 에디터의 커스터마이징이 쉽지 않기도 했습니다

그럼에도 불구하고 Keystatic을 사용하여 글을 적고 있는 지금, 저는 이 선택에 굉장히 만족하고 있습니다. 결국 제가 원했던건 가능한 완벽한 CMS가 아니라, 작성을 가볍게 만들어줄 시스템이었으니까요.

마치며

블로그의 첫 글을 무엇으로 적을까 고민을 많이 했는데, 이 블로그를 다시 시작하면서 부딪힌 문제들을 적어보면 좋을 것 같아 이렇게 시작해 봤습니다. 물론 아직도 블로그는 완성된 형태가 아니라 꾸준히 변화하겠지만, 언젠가 이 공간이 저라는 사람의 흔적으로 채워지는 날이 오길 바라며 계속 써보겠습니다.