정적 웹은 뭐고 동적 웹은 뭔가요?

Static Web VS. Dynamic Web
정적웹
언제 접속해도 같은 리소스를 건네주는 웹 사이트를 뜻합니다.
정적 웹사이트에 접속하면 서버는 마치 진열대에 놓인 상품처럼 이미 프로그래머가 작성한
HTML, CSS, JS 파일들을 그대로 클라이언트의 브라우저에 건내줍니다.
그렇다면 접속할 때마다 매번 같은 모습을 보여주는 웹이 정적 웹인가요?
꼭 그렇진 않습니다. 현재 날짜와 시간을 표시하는 페이지도 있고, 랜덤함수로 매번 다양한 화면을 보여주는 것도 있고, 요즘은 아예 서버에 직접 추가 정보를 요청해서 받아온 내용들을 보여주기도 합니다.
모두 JavaScript로 구현하는 기능들입니다.
클라이언트의 브라우저도 JavaScript로 쓰인 레시피를 보고 라면을 끓여먹듯 스스로 조리할 수 있는 겁니다.

결국 정적 웹의 기준은 접속할 때마다 받게 되는 HTML, CSS, JS 코드들, 그리고 동봉된 이미지, 동영상 등의 파일이 같은가입니다.
좀 더 정확히는 서버에서 이걸 매번 가공해서 제공하는게 아니라,
프로그래머가 작성해서 갖다 준 제품들이 진열되어 있는 걸 그대로 가져가게 하냐는 거죠.
접속시마다 내용이 변할 필요가 없는 사이트들,
예를 들어 어떤 회사나 학교의 소개 페이지라던가 댓글 기능이 없는 블로그 페이지 등에 사용될 수 있겠죠.
동적웹
한편, 사용자들이 글을 올리는 게시판은 어떨까요?
글이 10개 달려있는 게시판 페이지가 있습니다. 그리고 사용자가 글을 하나 더 게시한다고 해보죠.
그럼 그럴 때마다 개발자들이 게시글 11개인 페이지를 새로 만들어서 가져다 놓을 수는 없잖아요.
매일 끊임없이 정보들이 올라오는 SNS 웹페이지 같은 곳은 말할 것도 없겠죠.
이런 페이지들은 서버가 그때그때 데이터 요청을하며 요리를 하도록 해야되는 겁니다.
그렇다면 동적웹이 정적웹보다 무조건 좋은 것인가?
앞으로는 사이트 만들 땐 기왕 시간 좀 더 들이더라도 다이나믹한 웹으로 만드는 것이 좋겠는데? 라는 생각이 드실 수도 있습니다.
하지만 모든 종류의 사이트에서 그런 것은 아닙니다.
이를테면 블로그의 경우, 오히려 동적이었던 방식에서 정적으로 많이들 넘어가기도 합니다.

예전에는 네이버같은 포털이나 이글루같은 서비스에서 제공하는 것처럼 작성자, 제목, 내용, 작성일, 댓글 등의 정보가 데이터 베이스에 따로 저장되고 이걸 접속시마다 페이지로 가공해서 보여주는 방식의 동적 웹페이지를 많이 이용하곤 했는데요,
일단 글들이 데이터베이스에 저장되는거니까, 따로 보관하거나 관리하기 까다로울 수 있고,
내가 직접 블로그 사이트를 개발해 운영하더라도 고작 같은 글 보여주느라 매번 서버가 일을 하도록 코딩하고 관리하는 것도 일인거죠.
차라리 그 글 하나하나 HTML 파일 단위로 만든 다음, 잡지처럼 진열해놓는게 훨씬 운영하기 편할 거에요.
보관도 그냥 그것들을 복사해다 어디 저장하면 되구요.

그래서 요즘 개발자들은 Jekyll 이나 Hugo 같은 정적 웹 생성 툴로 블로그를 많이들 운영합니다.
특정 형식으로 블로그 글을 작성하면, 그걸 HTML, CSS 등등의 파일들로 출력해내고,
그 프로젝트를 Github이나 Netlify 같은 곳에 올리면,
자동으로 진열돼서 블로그 페이지로 보여지는 거죠.
개발자들의 페이지를 보면 주소가 ~.github.io로 끝나는 것들이 바로 이런 정적 블로그들입니다.
Jekyll 로 블로그를 작성해서 github에 게시하는건 비용도 들지않고 배우기도 어렵지 않으니까 한번 시도해봐도 좋을 것 같습니다.