이전에 쓰던 블로그

당시 위 블로그를 만들 때만 해도 일반적으로 GitHub Pages에 Jekyll, Hugo, Hexo와 같은 SSG(Static Site Generation) 프레임워크를 많이 사용했다. 하지만 나는 홍대병이 발병해 당시에는 출시한지 얼마 되지도 않은 Astro라는 프레임워크를 사용했는데, 당시 기준으로도 Astro의 개발 경험은 여러 프레임워크들보다 월등히 좋았고 정적 페이지 생성 속도도 매우 좋았기 때문에 만족하면서 개발했다. 하지만 문제는 나의 디자인 능력에 있었으니…
문제점들
-
페이지에 공백이 너무 많음
쓸데없는 공백으로 휑해보인다. -
페이지에 따라서 계속 달라지는 버튼 위치
당시에는 페이지에 따라서 바뀌는 게 좋다고 생각했다. -
별로 안이쁨…
종합해보면
결국 기존 블로그를 갈아엎고 새롭게 만들기로 결정했다. Astro 자체는 만족하며 개발했지만, 블로그의 경험이 별로였다. 디자인이나 레이아웃, UX를 좀 더 고려했어야 했다.
새로운 블로그
사실 중간에 검색 기능 때문에 Astro가 아니라 SolidJS를 사용해볼까 실험해보기도 하고, 디자인도 여러번 수정되었다. 결과적으로 이전과 마찬가지로 Astro를 사용했다. 손에 익은 프레임워크라 그런지 개발 자체는 오래 안걸렸지만 디자인이 확정되기까지 매우 오랜 시간이 걸렸다. 프론트엔드가 제일 어렵다. 또 Vercel에 자동으로 배포되도록 연결한 후, 도메인을 사서 달아주었다. 그 결과물이 지금 보는 이 블로그이다.
왜 astro를 썼는지

Astro는 매우 빠르게 버전이 올라가는 프레임워크인데, 이전 블로그를 만들 때만 해도 2.x였지만 지금은 5.x까지 올라와 있었다. (아무리 그래도 너무 빨리 버전을 올리는 게 아닐까…)
Content Collection이라는 기능이 있어 Markdown이나 여러 파일을 바로 읽어서 렌더링할 수 있다. Frontmatter도 기본적으로 지원하고, 타입 검사도 가능하고 여러가지 통합을 제공하는데 이 점도 매우 매력적이다.

정적 페이지 빌드 속도도 매우 빨라 GitHub에 올리고 1분도 안되서 배포가 완료된다.

이외에도 이미지를 자동으로 최적화해주는 기능, 자바스크립트를 최소화하고 성능이 좋은 점 등이 마음에 든다.
왜 Vercel을 썼는지
GitHub Pages도 썩 괜찮았지만, 개인적으로 HTTP 캐싱이 10분밖에 되지 않는 점이 매우 거슬렸다. 찾아보니 변경도 불가능했기에 그냥 다른 호스팅 서비스로 이전했다.
앞으로 추가할 기능들?
-
간단한 검색 기능 Apache Lucene이나 ElasticSearch같은 무겁고 복잡한 서비스를 사용하는 것은 무리고, 간단하게 마크다운을 읽고 역색인해서 클라이언트에서 검색할 수 있는 수준이면 괜찮지 않을까 싶다. 근데 생각보다 한국어를 지원하는 검색 라이브러리가 없어서 이 부분에 대한 고민이 깊다. 현재는 pagefind를 테스트해볼 예정이다. (pagefind도 한글 형태소 추출을 지원하지 않는다.)
-
댓글 기능 사실 댓글 기능을 추가하는 것은 그리 어렵지 않다. 기존 블로그에도 Giscus를 이용해서 추가했었는데, 문제는 “댓글 기능이 꼭 필요한가”에 대한 확신이 부족했다. 없어도 된다고 생각했기 때문에 넣지 않았다.