📢 개요
편의점과 식당이 있습니다.
편의점은 미리 조리되어있는 음식들을 내가 사다 먹을 수 있습니다.
식당은 내가 주문 넣으면, 그 자리에서 음식을 조리해서 만들어 제공을 해주면 먹을 수 있죠.
이 둘의 근본적인 차이는, 업소에서 그때그때 음식을 만들어 주는가 입니다.
정적 웹(Static Web) = 편의점
동적 웹(Dynamic Web) = 식당에 비유할 수 있겠습니다.
📢 Static Web vs Dynamic Web
정적 웹(Static Web)
- 말 그대로, "움직이지 않는, 언제 접속해도 같은 리소스를 보여주는 웹사이트"
- 프로그래머가 서버에 미리 작성해놓은 HTML/CSS/JS 코드들 그대로 클라이언트의 브라우저에 건내준다.
- 하지만, 무조건 매번, 동일한 페이지를 보여주는 것은 아닙니다.
현재 시간을 보여주는 페이지나, 매번 랜덤숫자를 보여주는 페이지, 서버에 직접요청을해서 받아온 내용을
보여주기도 하는 페이지도 존재합니다. - 결국, 정접웹의 기준은, 접속할 때마다 받게 되는 HTML,CSS,JS 코드들, 그리고 동봉된 이미지,영상 파일들이 같은지에 따라 판단이 됩니다.
- 좀 더 정확하게는, 서버에서 프로그래머가 개발해놓은 HTML/CSS/JS 코드들을, 서버에서 직접 가공해서 제공하는 것이 아니라, 미리 개발해놓은 제품들을 그대로 가져가게 하냐 ? 입니다.
- 예를들어, 접속시마다 내용이 바뀔필요가 없는 사이트. 회사의 소개페이지, 댓글기능이 없는 블로그 페이지 등에 사용 될 수 있겠죠 ?
동적 웹(Dynamic Web)
- 하지만, 실시간으로 댓글들이 게시판 페이지같은 경우는 어떤가요 ?
- 매번 새로운 댓글들이 추가된, 새로운 웹페이지를 제공하기엔 무리가 있을 것입니다.
- SNS 웹페이지 같은 곳은 말할 것도 없겠죠 ?
- 이런 페이지는, 식당같이, 서버가 그때그때 요리를 하도록 해야합니다.
두 웹 페이지의 제공 방식을 비교해보죠.
정적 웹은 개발자가 HTML/CSS/JS를 서버에 미리 사용자에게 보여질 모습, 최종모습으로 코딩해서 서버에 올려놓는다.
동적 웹은 DB에서 정보를 읽어서 서버에서 가공된 모습을, 접속할 때마다 최신 정보로 보여주는 방식이 대표적입니다.
📢 마무리
음....그러면 Dynamic Web이 좋은 것 같네요 ?
👉 모든 경우가 그렇지는 않습니다 : 오히러 동적이었던 방식에서 정적으로 많이 넘어가는 추세이기도 합니다.
옛날에 네이버같은 포털사이트에서 제공하는 방식인, 작성자,제목,내용,작성일,댓글 등의 정보가, DB에 따로 저장이되고 이를 접속시마다 페이지로 가공해서 보여주는 방식의 동적 블로그들을 다들 이용했습니다.
일단 글들이 DB 따로 저장이 되는 것이다보니, 따로 보관하거나 관리하기 까다로울 수 있고, 내가 직접 블로그사이트를 운영한다해도, 고작 같은 글 보여주느라 매번 서버가 일을 하도록 코딩하고 관리하는 것도 일 입니다.
차라리 글 하나하나를 HTML 파일 단위로, 잡지처럼 진열해놓는게 훨씬 운영하기 편할 것입니다.
보관도 그 HTML파일들을 그대로 복사해서 어딘가 저장해놓으면 됩니다.
그래서 요즘 개발자들은 Jekyll 이나 Hugo 같은, 정적 웹 생성 툴로 블로그를 많이 만듭니다.
특정 형식으로 블로그 글을 작성하면, 그걸 HTML,CSS 등등의 파일들로 출력해내고, 그 프로젝트를 Github이나 Netlify 같은 곳에 올리면, 자동으로 진열돼서 블로그 페이지로 보여지는 것입니다.
개발자 블로그 중에, https:// ~ . github.io 로 끝나는 것들이, 바로 정적 블로그들의 예시 입니다.
Jekyll로 블로그를 작성해서 github에 게시하는 건 비용도 들지 않고, 배우기 크게 어렵지 않으니, 프로그래밍을 공부하면서 본인이 공부한 내용들을 이렇게 블로그에 정리하면, 공부하는데 많은 도움이 될 것입니다.
문제가 되거나, 잘못된 정보가 있으면 알려주세요. 🙏
'알쓸 IT 지식' 카테고리의 다른 글
[알쓸 IT] Angular, React, Vue (3) | 2021.01.11 |
---|---|
[알쓸 IT] MVC 웹 프레임워크 (0) | 2021.01.11 |
[알쓸 IT] HTML/CSS/JavaScript (1) | 2021.01.03 |
[알쓸 IT] 클라우드 컴퓨팅(Cloud) (1) | 2021.01.03 |
[알쓸 IT] Server란 무엇인가 ? (0) | 2021.01.03 |