미루다 미루다 드디어 이전했습니다. 일주일동안 잠 2~3시간씩 자면서 밤에 퇴근하고 새벽에 결국… 한 5일, 20시간 정도 걸렸네요. 정신이 멀쩡했으면 더 빨리 끝났을 작업인데… ㅋㅋ 세상에나.

과정

  1. Hexo 에서 사용했던 원본 테마와 유사한 Hugo 테마 검색
  2. Hexo 에서 사용했던 원본 테마에서 내가 추가로 커스터마이징 한 부분 Hugo 문법으로 구현
    (여기까진 그래도 있는 테마로 작업한거라 비교적 수월)
  3. Lunr.js 를 이용하여 기본적인 검색 기능 구현
  4. 기존의 Hexo 에서 사용하던 프로젝트 구조를 Hugo에 맞게 수정
    • Hexo 는 자체적으로 github 으로 publish가 가능했지만, Hugo 는 쉘 스크립트를 작성해주었음
    • 검색 기능의 인덱스 빌드를 위한 Grunt 스크립트까지 포함하여 프로젝트 구조 설계
  5. Hexo의 글들을 Hugo 의 포맷에 맞게 전부 수정
    • Front matter 파싱해서 변경
    • 임베딩 된 컨텐츠(Code, Youtube)도 Hugo의 shortcode 포맷에 맞게 전부 파싱해서 변경
  6. 테스트
    • Responsive Design
    • Contents 로드 속도
    • 배포
  7. 자잘 자잘한 수정

왜 Hexo를 버렸나요?

  • 제가 Hexo에서 사용하던 특정 모듈이 Node 8 에서 deprecation 되서 설치가 되질 않더군요. 강제로 Node 6 써야 합니다. =_=!?
  • 요즘 Node 개발 안해서 & 요즘 Go 에 빠져있어서 (이 이유가 사실 큼)
  • 빌드 속도 차이; Hexo는 20초 vs Hugo는 1초(캐싱되면 0.3초!!)
  • node_modules… 너무 너무 커요. Mac 에서 140MB 정도… 아니, 아무리 요즘 용량 남아돈다지만, 140MB 가 애들 장난입니까? Hugo는 27MB 바이너리 하나가 끝인데! 그걸로 지지고 볶고 다하는데…

사실 복합적으로, 포터블리티가 좀 큰 이유였습니다. 일단 Hexo 만을 위해서 Node 6 을 설치해야 하는 것도 웃기고, 그 많은 node_modules 까지 설치해야 한다는게… 좋지 않았어요. Hugo 는 그냥 싱글 바이너리로 끝나잖아요. 얼마나 좋아요, 깔끔하고. 그리고 최소한 backward compatibility 는 있겠죠 (…!).

결론

이제 밀린 글 많이 써야지.