static site generator

github프로젝트 페이지를 만드려다가 static site generator라는 용어를 알게 되었는데 이미 그것과 관련된 툴들이 많이 있었습니다. 말 그대로 static한 html 파일들을 생성해주어서 그 파일들로만 서비스를 하는겁니다.

보통 우리가 어떤 사이트를 들어가게 되면 그 사이트의 서버는 사용자로부터 받은 요청이 올바른지 확인하고 , DB에서 데이터를 읽은 다음 그 데이터를 템플릿 엔진이랑 쿵짝쿵짝해서 브라우저가 읽을 수 있는 형식으로 변환해서 내보내게 됩니다. 그런데 단순히 html 파일로만 서비스를 하게 되면 그러한 과정이 모두 생략됩니다.

이렇게 하게 되면 장점이 몇가지 생깁니다. 첫째, 보안이 향상됩니다. 예를 들어 DB와의 연결이 없기 때문에 SQL 인젝션과 같은 공격을 피할 수 있습니다. 두번째로 성능이 좋아집니다. 더 적은 리소스로 더 많은 요청을 처리할 수 있다는 의미입니다. 세번째로 서버에 배포가 쉬워 집니다. DB 설치가 필요없고 톰캣과 같은 어플리케이션 서버 혹은 언어별로 필요한 이런저런 모듈을 설치할 필요가 없습니다. 즉, html 파일만 서비스할 수 있는 서버가 있으면 어디든지 배포가 가능합니다. 네번째, 컨텐츠 자체에 대한 버전 관리가 쉬워 집니다. 파일을 생성하고 git에 commit 만 하면 컨텐츠 변경 이력을 쉽게 파악할 수 있습니다.

물론, 단점도 있습니다. 첫째, html 파일을 생성할 수 있는 환경이 아니면 새로운 문서를 배포하기가 힘듭니다. 즉, 티스토리처럼 아무 컴퓨터에서나 글을 쓸 수 없습니다. 둘째, 댓글과 같은 사용자 액션을 받을 수 없습니다. 다른 방법을 찾아봐야 합니다.

statis site generator에는 jekyll(ruby), hyde(python) 등이 있습니다.

댓글

이 블로그의 인기 게시물

미적분과 차원

apache rewrite_module 로그

자바 로깅