Don't Panic
in etc

블로그 대개편 — Jekyll(Hydejack)에서 Astro로

며칠에 걸쳐 이 블로그를 통째로 갈아엎었다. 처음엔 “검색이 잘 안 되고 hits가 안 뜬다” 정도의 가벼운 수리로 시작했는데, 파고들수록 근본 원인이 늙은 엔진이라 결국 새로 지었다. 무엇이 / 왜 / 어떻게 바뀌었는지 남겨둔다.

발단: 뭐가 문제였나

  • 검색이 한글에 약했다 — 옛 Tipue Search는 영어 기준이라 한국어 부분 검색이 잘 안 됐다.
  • 방문자 배지가 깨져 있었다hits.seeyoufarm.com 서비스 자체가 중단됐다.
  • 글을 클릭하면 흰 화면에서 무한 로딩 — Hydejack 테마의 AJAX 페이지 전환(push-state) 고질병이었다. 아래가 그 증상이다.

개편 전 — 글을 클릭하면 본문이 안 뜨고 흰 화면에서 무한 로딩되던 모습

  • 게다가 Jekyll 3.x + Hydejack(2017) 조합이라 의존성 충돌이 잦고, 큰 표지가 박힌 2단 레이아웃도 무거웠다.

수리만으로는 한계가 분명했다. 마침 로컬에 Ruby는 없고 Node는 있었기에, Node 기반 Astro로 새로 짓기로 했다.

Before → After 한눈에

항목BeforeAfter
엔진Jekyll 3.8 + Hydejack(2017)Astro 5
런타임RubyNode.js
디자인큰 표지 사이드바 2단 (고정)깔끔한 사이드바 + 본문, 접기 토글
테마라이트 고정라이트 / 다크 모드
글 클릭흰 화면 무한 로딩 🐛즉시 정상 표시 ✅
검색Tipue (한글 약함)Pagefind (한글 OK)
댓글utterancesgiscus
방문자 통계seeyoufarm (서비스 종료)Google Analytics
폰트시스템 폴백 (한글 깨짐)Pretendard
빌드/배포GitHub Pages 기본 빌드GitHub Actions (빌드→검색 인덱싱→배포)
글 주소(URL)/{분류}/{연}/{월}/{일}/{제목}.html동일 (그대로 보존)

무엇이 좋아졌나

  • 흰 화면 버그가 사라졌다. 엔진을 바꾸니 원인 자체가 없어졌다.
  • 한글 검색이 된다. 상단 🔍 또는 사이드바 검색에서 바로.
  • 다크 모드와 사이드바 접기가 생겼다. 취향대로.
  • 글 250여 개가 주소까지 그대로 넘어왔다. 기존 링크와 북마크가 살아 있다는 뜻이다.
  • 페이지가 가볍고 빠르다. 전역에서 무겁게 돌던 jQuery·검색 스크립트가 사라졌다.

어떻게 했나 (기술 메모)

  1. 마이그레이션 스크립트_posts의 글 250여 개를 Astro 콘텐츠로 변환했다. front matter가 제각각이거나 아예 없던 글까지 정규화하고, 중복 글은 걸러냈다.
  2. 기존 사이트맵을 기준 삼아 (날짜 + 제목 슬러그) 매핑해서 옛 URL을 그대로 재현했다. SEO와 기존 링크를 지키기 위해서다.
  3. 이미지 등 정적 자산은 경로를 유지한 채 그대로 복사했다.
  4. GitHub Actions 워크플로로 빌드 → Pagefind 검색 인덱싱 → Pages 배포를 자동화했다.

남은 것

  • 댓글을 giscus로 붙이는 중이다 (GitHub Discussions 기반).

결론: 가벼운 수리로 시작했지만, 낡은 토대 위에 칠만 더 하느니 토대를 바꾸는 편이 나았다. 그리고 무엇보다 — Don’t Panic.