블로그 대개편 — 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 한눈에
| 항목 | Before | After |
|---|---|---|
| 엔진 | Jekyll 3.8 + Hydejack(2017) | Astro 5 |
| 런타임 | Ruby | Node.js |
| 디자인 | 큰 표지 사이드바 2단 (고정) | 깔끔한 사이드바 + 본문, 접기 토글 |
| 테마 | 라이트 고정 | 라이트 / 다크 모드 |
| 글 클릭 | 흰 화면 무한 로딩 🐛 | 즉시 정상 표시 ✅ |
| 검색 | Tipue (한글 약함) | Pagefind (한글 OK) |
| 댓글 | utterances | giscus |
| 방문자 통계 | seeyoufarm (서비스 종료) | Google Analytics |
| 폰트 | 시스템 폴백 (한글 깨짐) | Pretendard |
| 빌드/배포 | GitHub Pages 기본 빌드 | GitHub Actions (빌드→검색 인덱싱→배포) |
| 글 주소(URL) | /{분류}/{연}/{월}/{일}/{제목}.html | 동일 (그대로 보존) |
무엇이 좋아졌나
- 흰 화면 버그가 사라졌다. 엔진을 바꾸니 원인 자체가 없어졌다.
- 한글 검색이 된다. 상단 🔍 또는 사이드바 검색에서 바로.
- 다크 모드와 사이드바 접기가 생겼다. 취향대로.
- 글 250여 개가 주소까지 그대로 넘어왔다. 기존 링크와 북마크가 살아 있다는 뜻이다.
- 페이지가 가볍고 빠르다. 전역에서 무겁게 돌던 jQuery·검색 스크립트가 사라졌다.
어떻게 했나 (기술 메모)
- 마이그레이션 스크립트로
_posts의 글 250여 개를 Astro 콘텐츠로 변환했다. front matter가 제각각이거나 아예 없던 글까지 정규화하고, 중복 글은 걸러냈다. - 기존 사이트맵을 기준 삼아 (날짜 + 제목 슬러그) 매핑해서 옛 URL을 그대로 재현했다. SEO와 기존 링크를 지키기 위해서다.
- 이미지 등 정적 자산은 경로를 유지한 채 그대로 복사했다.
- GitHub Actions 워크플로로 빌드 → Pagefind 검색 인덱싱 → Pages 배포를 자동화했다.
남은 것
- 댓글을 giscus로 붙이는 중이다 (GitHub Discussions 기반).
결론: 가벼운 수리로 시작했지만, 낡은 토대 위에 칠만 더 하느니 토대를 바꾸는 편이 나았다. 그리고 무엇보다 — Don’t Panic.