Post

Jekyll 블로그 빌드 속도 개선

빌드 시간을 최적화 하는 방법

Jekyll 블로그 빌드 속도 개선

📌개요

Jekyll은 간단하게 정적 블로그를 운영할 수 있는 훌륭한 도구다. 하지만 블로그 글이 많아질 수록 플러그인이 늘어날 수록 빌드 시간이 길어지는 문제가 생긴다.

배포 빌드에선 풀 빌드해야 하니 다른 전략에서 다루고 일단 로컬부터 빌드 최적화 방법을 정리해본다.

📌내용

--incremental 옵션 활용

로컬에서 테스트할 때 가장 손쉽게 적용할 수 있는 옵션

1
bundle exec jekyll s --incremental

이 옵션은 마지막 빌드 후 변경된 파일만 다시 빌드해줘서 속도를 꽤 개선할 수 있다. 하지만 주의할 점은 새 파일 추가는 감지하지 못한다는 점이다. 그래서 새 포스트나 페이지를 추가한 경우엔 다시 풀 빌드를 돌려야 한다.

--limit_posts 하나의 포스트만 빌드하기

parse & publish할 포스트의 개수를 제한해서 필요한 파일만 빠르게 빌드하고 확인한다. 최근 포스팅을 우선으로 빌드 되는 것 같다.

1
2
# bundle exec jekyll s --limit_posts <포스팅 수>
bundle exec jekyll s --limit_posts 1

--profile 옵션으로 병목 찾기

어떤 파일이나 플러그인이 빌드 속도를 잡아먹는지 알고 싶다면 이 옵션을 사용해본다.

1
bundle exec jekyll s --profile

빌드 로그에 각각 파일의 처리 시간이 나오는데 유난히 시간이 많이 걸리는 파일이나 플러그인이 있으면 구조를 개선하거나 비활성화하는 방법을 찾을 수있다.

--jekyll clean으로 캐시 초기화

증분 빌드를 계쏙 쓰다 보면 캐시 문제로 꼬이는 경우가 생긴다. 이때는 다음 명령어로 캐시를 초기화하면 깔끔하다.

1
bundle exec jekyll clean

매번 서버를 새로 켜기 전에 이걸 실행하면 문제 해결에 도움이 된다.

excludekeep_files로 불필요한 파일 제외

_config.yml 파일에 다음 옵션을 추가해 빌드에서 제외할 파일을 명확히 설정하는 것도 중요하다.

1
2
3
4
5
6
7
8
9
exclude:
  - node_modules
  - README.md
  - Gemfile
  - vendor

keep_files:
  - .git
  - .svn

특히 node_modules나 대용량 폴더는 반드시 제외해야 한다.

디렉터리 구조 개선

컬렉션이나 커스텀 폴더를 많이 사용하고 있다면 구조를 간결하게 재정비하는 것도 도움이 된다. 복잡한 디렉터리 구조는 Jekyll의 내부 처리 속도를 저하시킬 수 있다.

플러그인 최소화 및 최적화

jekyll-feed, jekyll-seo-tag 등 기본 플러그인은 큰 문제가 없지만 커스텀 플러그인이 많아질 수록 속도가 느려진다.

불필요한 플러그인은 과감히 제거하고 꼭 필요하다면 코드를 최적화하거나 대안을 찾아보자.

이미지 최적화

이미지가 많다면 이미지 크기 최적화만으로도 빌드 속도가 향상된다. 필요하다면 이미지 자체를 외부 CDN으로 분리하는 것도 한 방법이다.

🎯결론

Jekyll은 심플함이 강점인 만큼 대규모 데이터엔 한계가 있다. 하지만 위 방법만 잘 적용해도 중형 블로그까지는 무리 없이 빠른 속도로 유지할 수 있다.

규모가 커진다면 다른 대체제를 고려해보자.

⚙️EndNote

참고 자료


Buy Me A Coffee
This post is licensed under CC BY 4.0 by the author.