또 블로그를 만들고 말았다

이제 정말로 정착해야만 한다

이걸로 벌써 GitHub에 남은 기록으로만 6번째 블로그를 만들고 있습니다. 아마 호스트된 블로그 플랫폼이나 헤드리스 CMS 계정만 세면 더 많을 것 같지만, 전 이제 굳이 세 보고 싶지도 않습니다.

먼저 블로그를 만들게 된 계기는 다양합니다. 취업 시장에서 블로그가 유효한 실력 검증의 방법으로 사용되는 건 말할 필요조차 없고, 지금까지 알고 있던 지식을 정리 및 공유할 공간이 필요하기도 했거니와, 제 정보를 한 곳에 모아 둘 공간도 필요했고 제 이력서 역시 웹 개발자이니만큼 웹 플랫폼을 통해 공유하고 싶었습니다.

사실 블로그를 만들고자 한 것은 글을 쓰는 공간으로서의 목적성도 당연히 띄고 있었지만, 개인적으로 저에게 더 가치 있던 것은 블로그 플랫폼을 직접 손으로 만들어보고 싶다는 열망과 Headless CMS를 통한 관리 체계를 만들어보는 것도 중요한 관심사 중 하나였습니다. 물론 이게 지금까지 블로그 구축을 미루고 실패한 가장 큰 이유이기도 했습니다...

그래서 차고 넘치는 조사와 검색, 그리고 고생 끝에 만들어낸 블로그 테크 스택에 대해 간단히 글을 써내려보고자 합니다.

요구 사항

글의 서두부터 핑계를 대는 것이 내키진 않지만 꽤 오랜 시간이 걸렸던 주요한 이유 중 하나는 제가 가지고 있던 블로그에 대한 요구 사항이 결코 작지 않았기 때문이기도 합니다. 이러한 사항들을 모두 만족시키려면 (해당 요구 사항이 정말로 필요한 가는 조금 별개로 두더라도) 기존의 정적 사이드 생성기를 통한 방식은 사용할 수 없게 되더군요.

다국어 지원이 되는 Headless CMS는 의외로 수가 굉장히 적었습니다. 이 분야에서 꽤 먼저 나왔던 Contentful이 현재까지도 국제화를 지원하지 않았고, 그 외에도 너무나 많고 좋은 CMS들이 다국어 지원이 부실했던 점이 너무 아쉬웠습니다. 그래도 영문 글을 통해 영작 실력도 기르고 싶었던 욕심과 더 많은 한국어 글을 제공하고 싶던 욕심으로 인해 이 요구 사항은 위의 수많은 요구 사항 중에서도 가장 타협할 수 없는 사항이었기에 국제화가 어려운 도구들은 바로 선택지에서 제외했습니다.

처음에는 Prismic의 적용을 크게 염두에 두고 개발하고 있었으나, 계속 개발할 수록 Prismic이 표현할 수 있는 컨텐츠 구조가 너무 제한적이고 API가 사용하기 복잡해 어려움을 겪다가, Dato CMS로 최종적으로 정착해 사용하고 있습니다. 한국어 글 쓰기가 조금 불편한 게 흠이긴 한데, 일단 입력이 어려운 건 아니므로 큰 불만 사항은 아닙니다.

컨텐츠의 관리 방식

.현재는 Dato CMS를 통해 완전히 컨텐츠를 관리할 수 있는 구조로 되어 있습니다. 상단 네비게이션에 어떤 아이템을 표시할 지, 글을 올릴 지 내릴지, 소셜 미디어에 어떻게 표시할 지, 홈에 어떤 내용을 보여줄 지 등을 추가 배포나 코드 수정 없이 바로 배포할 수 있어서 상당히 만족스럽고, 글 쓰는 환경도 매우 쾌적한 편입니다. 포커스 모드를 켜면 Typora 부럽지 않은 환경에서 글을 쓸 수 있습니다.

다만 임베드 기능이 따로 있는 건 아니어서 이후에도 원하는 글의 형태나 내용에 따라 추가 개발이 필요할 수는 있는데, 현재까지의 개발 경험으로 비추어 보았을 때 개발 경험이 너무나 탁월한 편이라 크게 걱정되는 점은 아닌 것 같네요.

Remix의 미학

이 블로그는 (어쩌면 국내 최초?) Remix 프레임워크를 사용하여 개발하기도 했습니다. 이유는 일단 나와 있던 신기술을 잘 써보고 싶었고, Remix가 주창하는 웹 표준 바탕의 개발 방식이 어떤 느낌인지도 체험해보고 싶었습니다.

물론 모든 것이 완벽한 최고의 프레임워크라고 말하기는 아직 이릅니다. 아직 1.0밖에 되지 않은 프레임워크에 불평을 쏟아내는 것 같아 조심스럽지만 개인적으로 아쉬웠던 점은 디버깅이 아직 너무나 어렵다는 점과 문서가 아직 부족하다는 점 정도가 있을 것 같아요. 국제화 라우팅이 없다는 걸 알고 Next.js로 갈까 살짝 고민했다가 다른 분이 만든 좋은 국제화 예시가 있어 상당히 많이 참고했습니다.


금요일 저녁부터 주말 내내 눈 코 뜰 새 없이 만들다 보니 너무나 만족스러운 환경이 나왔고, 웹 개발 연습에도 많은 도움이 될 것 같아서 너무 만족스러운 프로젝트였습니다. 앞으로도 많은 기능이나 글을 통해 더더욱 개선해나갈 수 있기를...