정적 웹페이지 vs 동적 웹페이지

|

정적인 웹페이지를 생성시켜주는 툴인 Jekyll를 소개하고자 합니다. 그러기에 앞서 먼저 정적 웹페이지에 대해서 먼저 소개하도록 하겠습니다.


정적 웹페이지 vs 동적 웹페이지

이름에서 눈치를 챌 수 있듯이 사용자의 인터랙션에 따라 웹페이지가 바뀌어가는 것을 동적 웹페이지, 그렇지 않고 항상 같은 내용을 보여주는 웹페이지를 정적 웹페이지라고 합니다. 일반적인 게시판 형태의 사이트들은 데이터베이스(DB, Database)를 활용한 동적 웹페이지 방식을 사용하고 있고, 정적 웹페이지 방식의 경우에는 DB를 사용하지 않습니다. 정적 웹페이지 방식은 글 자체가 전부 html 단위의 파일들로 이루어져 있습니다.

흔히 말하는 블로그 서비스들인 티스토리네이버 블로그는 동적 웹페이지입니다. 사용자가 글을 작성하거나 블로그 설정 등을 바꾸면 그 내용이 서버에 있는 DB에 저장이 되고 그 결과가 웹페이지에 반영이 되는 형태로 동작합니다. 동적 웹페이지는 블로그에 접속해서 웹 브라우저 상에서 새 글 작성도 할 수 있고, 통계나 다양한 위젯 등 화려한 기능들을 많이 제공해줍니다.

그에 반해 정적 웹페이지는 단순히 사이트 관리자가 미리 만들어놓은 웹페이지만 볼 수 있습니다. 관리도 힘들고 새 글을 쓰거나 수정할 때도 글을 다운로드 받아 편집하고 업로드까지 수동으로 해야 합니다.

하지만, 이렇게 단점이 많은데도 정적 웹페이지가 주목받는 이유는 다음과 같습니다.


정적 웹페이지의 장점

  • 동적인 요소가 없기 때문에 데이터베이스 등이 필요없고, 구축이 쉬움.
  • 단순 문서로만 이루어져 있어서 서버간 통신이 거의 없고 속도가 빠름.
  • 정적인 문서들로만 이루어져 있기 때문에 어떤 호스팅 서버에서도 동작 가능.
  • 일반 텍스트 에디터기에서 문서를 작성이 가능. 즉, 익숙한 에디터기를 사용할 수 있음.
  • 백업, 복원이 쉬움.

위 와 같은 장점이 있기 때문입니다.

블로그 같은 경우는 역동적인 인터랙션보다는 대부분이 정적인 글들로 이루어져 있는 경우가 많아서 정적 웹페이지만으로도 충분히 훌륭한 결과물을 보여줄 수 있습니다. 그래서 블로그와 정적 웹페이지는 상성이 아주 좋아서 최근에 정적 웹페이지 방식의 블로그가 많이 생겨나고 있습니다.


정적 웹페이지 플랫폼

이미 수백 개의 정적 웹페이지 플랫폼들이 존재합니다. 그 중에서 대표적인 플랫폼으로 Jekyll이나 Hugo 등이 있습니다. 여기에서 좀 더 많은 정적 웹페이지 플랫폼 리스트를 볼 수 있습니다. (평점으로 정렬해보면 Jekyll은 당당하게 1위를 차지하고 있습니다.)

이 블로그는 Jekyll로 만들어졌졌습니다. 잠깐 Hugo으로 블로그를 운영해 본 적도 있는데, 다시 Jekyll로 돌아왔습니다.

Jekyll과 Hugo는 서로 장단점이 있습니다.


Jekyll vs Hugo

Jekyll Hugo
Ruby 기반 Go 언어 기반
설치 과정이 복잡하다. 단순 실행 파일만 있으면 된다.
컴파일 속도가 느림. 컴파일 속도가 빠름.
사용자 수가 아주 많다. Jekyll 만큼은 아니지만 사용자 수가 점점 많아지고 있다.
많은 Plugin & 테마를 지원한다. Jekyll 만큼은 아니지만 점점 증가하고 있다.

대부분이 Hugo 쪽이 더 좋은 것처럼 썼지만, 제가 Jekyll을 쓰는 이유는 GitHub Pages에는 Jekyll이 더 최적화가 되어 있다는 점입니다. Hugo를 이용할 경우 사이트를 Hugo로 빌드를 한 다음 그 결과물을 서버에 업로드해야 하지만 Jekyll의 경우는 그냥 소스 그대로 서버에 올리면 GitHub Pages가 알아서 빌드를 해주기 때문에 별도의 배포 작업이 필요없어 관리가 더 수월합니다.

물론 반대로 말하면 Hugo는 결과물만 서버에 올리기 때문에 원본 소스는 비교적 안전하다고 볼 수 있고, Jekyll은 전체 소스를 그대로 올리기 떄문에 아무나 소스를 가져갈 수 있다는 단점도 있습니다. 하지만, GitHub Pages에서 블로그를 운영하기로 한 이상 소스 보호는 큰 의미가 없는 것 같아서 관리가 수월한 Jekyll로 다시 돌아오게 되었습니다.

그리고, Jekyll의 사용자 수가 훨씬 더 많기 때문에 자료 찾기가 수월하다는 점도 있습니다.

Jekyll의 빌드 속도가 느리다거나 Ruby 기반이라 설치가 복잡하고 무겁다는 단점도 로컬 PC에서 빌드를 직접 돌릴 떄나 해당되는 말이며, 저 같은 경우는 그냥 로컬 빌드없이 서버상에서 포스팅하는 글만 관리하다보니 큰 문제는 없는 것 같습니다. (하지만, 테마를 적용한다던지 블로그 전체의 레이아웃이나 메뉴 등을 바꾼다거나 할 때는 미리 로컬 PC에서 확인하는 작업이 필요하기 때문에 결국은 Jekyll을 로컬 PC에 설치해야 할 것입니다. 단순히 글만 작성할 때는 상관없습니다.)