정적 웹 사이트 생성 = 로컬 컴퓨터에서 HTML 파일을 생성한 다음 요청이 있을 때 해당 웹 사이트 파일을 사용자에게 제공하는 서버에 업로드하는 것을 말한다. 이때 서버는 서버 측 처리 또는 데이터베이스 통신을 수행하지 않으며, 요청이 있을 때만 일반 HTML 파일을 보내게 된다. 월드 와이드 웹(World Wide Web, www)의 첫번째 웹사이트는 정적인 웹사이트였다(1991년 08월 06일, Tim Berners-Lee에 의해 라이브로 전환). 당시 서버는 PHP와 같은 스크립트 언어 또는 MySQL과 같은 데이터베이스가 없이 매우 원시적이었기 때문이다.
인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간을 말한다. 인터넷 상의 정보를 하이퍼텍스트 방식과 멀티미디어 환경에서 검색할 수 있게 해주는 정보 검색 시스템으로 하이퍼텍스트 형식으로 표현된 인터넷 상의 다양한 정보를 효과적으로 검색하는 시스템으로 전세계적으로 가장 널리 보급되어 있다. 통일된 웹 자원의 위치 지정 방법(URL), 웹의 자원 이름에 접근하는 프로토콜(HTTP), 자원들 사이를 쉽게 항해할 수 있는 언어(HTML)와 같은 3가지 기능을 가지고 있다.
대표적인 서버 사이드 스크립트 언어로 전 세계 수많은 웹 시스템의 기반이 되는 언어로 비슷한 언어로는 ASP, JSP 등이 있다. C-like 문법으로 되어 있고, CGI보다 나으며, Peri처럼 배열이 연관 배열이라 자료구조가 간편하고, 기본적으로 내장된 웹 관련 함수들이 많아 웹 페이지 제작 시 생산성이 높다는 점에서 사용자 및 사용처가 많다. 동적 웹 페이지를 만들기 위해 설계되었으며 이를 구현하기 위해 PHP로 작성된 코드를 HTML 소스 문서 안에 넣으면 PHP 처리 기능이 있는 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지를 생성한다.
세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템이다. 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템으로서 오라클이 관리 및 지원하고 있으며, Qt처럼 이중 라이선스가 적용된다.
- 컨텐츠가 플랫 파일로 저장되어 데이터베이스가 필요하지 않다.
- 동적 서버 측 처리가 필요하지 않다.
- 서버 측 처리나 데이터베이스 접근이 필요 없기에 동적 웹 사이트보다 속도가 매우 빠르다는 장점을 가진다.
- 악용할 보안 허점이 적기 때문에 동적 웹 사이트보다 보안적 측면에서 더 안전하다.
- CDN과 함께 사용할 경우 확장성이 뛰어나다
- 정적 파일을 캐싱하는 것이 동적 페이지를 캐싱하는 것보다 더 효과적이다.
아무런 구조적 상호관계가 없는 레코드들이 들어 있는 파일
하나의 데이터 모델(보통 하나의 테이블)을 플레인 텍스트 파일로 인코딩하는 방법 및 그런 방법을 쓴 일종의 데이터베이스를 총칭한다. 이미지 출처: wikipedia CSV 포맷은 플랫 파일 데이터베이스의 일종이라 말할 수 있다.
콘텐츠 전송 네트워크는 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말한다. 인터넷 서비스 제공자(ISP)에 직접 연결되어 데이터를 전송하므로, 콘텐츠 병목을 피할 수 있는 장점이 있다. CDN의 목적은 높은 사용성과 효율로 사용자에게 컨텐츠를 전달함에 있다. CDN은 웹 요소 (텍스트, 그래픽, 스크립트), 다운로드 가능한 요소 (미디어 파일, 소프트웨어, 문서), 애플리케이션 (전자상거래, 포털), 실시간 미디어, 주문형 스트리밍, 그리고 소셜 네트워크 등 오늘날 인터넷에 존재하는 컨텐츠의 상당수를 서비스하고 있다.
- Jekyll : Github 페이지에 전원을 공급하기 위해 Github에서 만든 Ruby 생성기로 Ruby 언어로 구축되었으며 Github Pages를 무료로 사용하여 정적 웹사이트를 호스팅하고 CNAME 파일을 사용하여 사용자 지정 최상위 도메인 이름과 쉽게 연결할 수 있다.
- Hugo : Go에 내장된 정적 사이트 생성기로 세계에서 가장 빠른 웹사이트 구축 프레임워크로 광고된다. Jeykll과 달리 정적으로 컴파일된 언어인 Go로 작성되어 있으며 Hugo를 몇 초만에 설치하고 평균 정적 웹 사이트를 1초 이내에 구축할 수 있다. YAML, Front Matter와 함께 Markdown 형식을 사용한다.
- Hexo : MIT 라이센스에 따라 사용할 수 있는 노드 기반의 오픈 소스 정적 생성기이다. Node.js 플랫폼 덕분에 Hexo는 수백 개의 정적 파일을 몇 초 만에 생성할 수 있다.
종류 | 장점 | 단점 |
---|---|---|
Jekyll | 1. 무료 오픈 소스이다 2. gems를 통해 쉽게 제작하고 RubyGems를 통해 배포 가능하다 3. Jekyll 수입업체 덕분에 인기 있는 플랫폼(ex. WordPress)에서 컨텐츠를 쉽게 마이그레이션 가능하다 4. 기본적이고 적절한 최소 테마가 제공된다 | 1. 웹 사이트 콘텐츠가 증가할수록 빌드 프로세스는 상당히 느려짐 2. 제목 또는 YAML에서 변수 사용을 지원하지 않는다 3. 많은 플러그인이 구식이다. 4. gem 의존성은 비호환성을 초래할 수 있다 5. GitHub Pages는 즉시 Jekyll을 지원하지만 GitHub-safe 플러그인 세트만 사용 가능하다 6. Livereload에 대한 기본 제공 지원이 없다 |
Hugo | 1. 오픈 소스 및 무료 프로젝트이다 2. 매우 빠른 속도를 자랑하며, 속도에 최적화되어 있다 3. 동적 API 기반 콘텐츠를 기본적으로 지원한다 4. 짧은 코드 덕분에, markdown에 대한 유연한 대안을 제공한다 5. 다중 및 사용자 지정 출력을 지원한다 6. 설치가 쉽고 의존성이 없다 | 1. Go 템플릿을 사용하기 때문에 테마를 만들려면 Go에 익숙해야 한다 2. 확장성 및 플러그인에 몇 가지 단점이 있다 |
Hexo | 1. 속도가 엄청나게 빠르다 2. 하나의 배포 명령으로 GitHub 페이지 또는 다른 호스트에 배포한다 3. 확장성이 매우 높고 markdown을 지원한다 4. 무료 및 오픈 소스 테마를 사용할 수 있다 | 1. 비교적 큰 커뮤니티를 가지고 있지만 대다수가 영어가 아닌 사람들로 정보를 얻는데 불편함을 겪을 수 있다. |