728x90
Table of Contents
학습 목표
1. 정적 웹과 동적 웹의 개념을 이해하고 차이를 학습한다.
2. WEB과 웹 서버 아키텍처의 개념을 학습한다.
3. 웹 서버와 WAS의 개념과 차이를 학습한다.
정적 웹 VS 동적 웹
정적 웹
정적 웹이란, 말 그대로 미리 저장된 파일이 전달되는 정지된 성격의 고정된 웹 페이지입니다.
데이터가 변경되는 등의 작업이 서버 내부에서 이뤄지지 않습니다.
- 정적 웹의 특징
- 웹 서버에서부터 정적 컨텐츠들이 사용자에게 그대로 전달되는 방식입니다.
- 정적 컨텐츠 : 미리 저장된 파일들(HTML, CSS, javascript 등 즉시 응답 가능한 컨텐츠)
- 서버는 사용자의 요청(Request)에 해당하는 저장된 웹 페이지를 보냅니다.
- 사용자는 서버에 저장된 데이터가 변경되지 않는 한 고정된 웹페이지를 조회하게 됩니다.
- 웹 서버에서부터 정적 컨텐츠들이 사용자에게 그대로 전달되는 방식입니다.
- 정적 웹의 장점
- 빠른 속도 : 요청에 대한 파일만 일반적으로 전송하므로 추가적인 작업이 없습니다.
- 적은 비용 : 웹 서버만 구축하면 됩니다.
- 정적 웹의 단점
- 한정적 서비스 제공 : 저장된 정보만 보여줄 수 있습니다.
- 힘든 관리 : CRUD 기능이 모두 수동으로 이뤄집니다.
동적 웹
동적 웹이란, 웹 서버에 있는 데이터들이 스크립트에 의해 가공처리한 후 생성되어 전달되는 웹 페이지입니다.
서버 내부에서 데이터가 변경되는 등의 작업이 서버 내부에서 일어납니다.
- 동적 웹의 특징
- 웹 서버의 동적 컨텐츠들이 스크립트에 의해 가공되어 전달되는 방식입니다.
- 동적 컨텐츠(예) : 웹에 엑세스한 사용자의 username, client의 은행 잔고 등)
- 서버는 사용자의 요청(Request)에 적합하게 데이터를 가공한 후 재생성된 웹 페이지를 보냅니다.
- 사용자는 상황, 시간, 요청에 따라 달라지는 동적인 웹 페이지를 볼 수 있습니다.
- 동적 컨텐츠 가공을 위해 웹 서버에 더해 웹 어플리케이션 서버(웹 응용서버, WAS)가 필요합니다.
- 웹 어플리케이션 서버에 대해서는 후술하도록 함
- 웹 서버의 동적 컨텐츠들이 스크립트에 의해 가공되어 전달되는 방식입니다.
- 동적 웹의 장점
- 다양한 서비스 : 다양한 정보를 조합해 동적으로 생성해 사용자에게 제공 가능합니다.
- 쉬운 관리 : CRUD 기능의 작업이 용이합니다. (웹 서버에서 가능)
- 동적 웹의 단점
- 느린 속도 : 사용자의 요청에 따른 웹 페이지 가공 처리 작업이 선행되어야 하므로 상대적으로 느립니다.
- 추가 비용 : 웹 서버 외의 웹 어플리케이션 서버(WAS)가 필요하므로 추가적인 비용이 발생합니다.
결론
핵심요약 (동적 웹 vs 정적 웹)
구 분 | 동적 웹 | 정적 웹 |
특징 | 정적 + 동적 컨텐츠 전달 | 정적 컨텐츠만 전달 |
서비스 | 다양하다 | 적다 |
속도 | 느리다 | 빠르다 |
데이터 수정 | 쉽다 | 어렵다 |
비용 | 많음 | 적음 |
구성 요소 | WEB + WAS | WEB |
웹(WEB)과 웹 서버(WEB SERVER), 웹 응용 서버(WAS)
웹(WEB)
WEB이란?
World Wide WEB 의 약자로, 인터넷에서 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간입니다.
간단히 줄여 Web 혹은 W3으로 많이 부릅니다.
인터넷 상에서 텍스트나 그림 같은 멀티미디어 정보를 하이퍼 텍스트로 연결해 제공하는 기능을 합니다.더블유더블유더블유보다 월드와이드웹이 부르기 간편합니다
- 구성 요소로 보는 웹
- CLIENT : 웹을 사용하기 위해 정보를 요청(REQUEST)하는 쪽(웹 브라우저)
- SERVER : CLIENT의 요청 (REQUEST)에 응답(RESPONSE)하는 쪽(웹 서버)
- 요청 유형에 따른 보는 웹
- REQUEST : 컴퓨터에서 사용자가 웹 브라우저 실행 : http 프로토콜에 따라 정보를 요청
- RESPONSE 서버가 해당하는 정보를 웹 브라우저로 전송 : 요청된 정보에 따라 웹 브라우저로 응답
웹을 작동시키기 위한 웹 서비스 아키텍처
웹 아키텍처의 구조는 웹마다 각각 다르며, 구조에 따른 동작 원리가 일부 상이합니다.
웹 아키텍처의 대표적인 구조(3가지)
- Client → Web Server → DB
- Client → WAS → DB
- Client → Web Server → WAS → DB
웹 동작 원리
- Client에서 웹 브라우저를 통해 특정 사이트에 접속하기 위해 웹 서버에 요청을 보냅니다.
- 웹 서버에서 요청을 접수하고 동적 컨텐츠인지 정적 컨텐츠인지 판단합니다.
- 정적 컨텐츠라면 웹 서버에 내부 디스크에 있는 정보를 취득해 Client에게 전송합니다. (WAS를 안거침)
- 동적 컨텐츠라면 WAS 에 요청을 보냅니다.
- WAS 에서 웹 서버에서 보낸 요청을 접수하고 자신이 계산 가능한지, DB에 접속이 필요한지를 판단합니다.
- 스스로 계산이 가능하다면 요청내용을 바탕해서 가공 후 웹 서버로 결과를 데이터로 반환합니다.
- DB 접속이 필요하면 DB 서버에 요청을 보냅니다.
- DB 서버에서 요청을 접수하고 캐시 존재여부 확인, 디스크에 엑세스해 데이터를 반환해 결과를 WAS 서버로 줍니다.
- 결과를 반환받은 WAS 로부터 → 웹 서버 → Client(웹 브라우저)에게 순차적으로 전송합니다.
- Client는 웹 브라우저로 전송된 응답을 받습니다.
웹 서버 (WEB SERVER)
웹 서버란 클라이언트가 브라우저 주소창에 url을 입력해 어떤 페이지를 요청하면 http 요청을 받아들여
HTML 문서와 같은 정적인 컨텐츠를 사용자에게 전달하는 역할을 합니다.
- 웹 서버의 특징
- 정적인 컨텐츠를 HTTP 프로토콜을 통하여 클라이언트에게 전달하는 것이 주 목적입니다.
- 사용자로부터 동적인 요청이 들어왔을 때 해당 요청을 WAS로 요청합니다.
- 웹 서버의 종류 : Apache, Nginx 등이 있습니다.
웹 응용 서버 (WAS, 웹 어플리케이션 서버)
웹 응용서버는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공합니다.
웹 서버와는 달리 동적인 컨텐츠를 수행하는 것으로 웹 서버와 구별이 됩니다.
- WAS 의 특징
- 동적인 컨텐츠를 처리하는 것이 주 목적인 서버이며, 주로 DB 서버와 같이 연동되며 작업을 수행합니다.
- 웹 컨테이너, 혹은 서블렛 컨테이너 라고도 불립니다.
- 정적인 컨텐츠도 처리는 할 수 있지만 정적 컨텐츠는 웹, 동적 컨텐츠는 WAS 가 처리하게 기능을 분배합니다.
- 처리하는 컨텐츠를 분담하는 이유는 아래와 같습니다.
- 기능을 분리하여 서버 부하를 방지 가능
- 물리적으로 분리하여 보안을 강화
- WAS 는 웹 서버에 여러대 연결이 가능하므로 분산 처리를 통한 자원 이용의 효율성이 극대화 사유
- HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)입니다.
- 미들웨어 : 대부분의 로직(연산)을 처리하나, 데이터를 조작할 일이 있으면 DB에게 부탁하는 것
- 클라이언트와 DB 사이에서 동작하는 서버로, 클라이언트(입력, 출력) ↔ 미들웨어(연산) ↔ DB(데이터 조작)의 구조로 데이터 처리를 기능별로 3분할 하는 구성요소
- WAS 의 종류 : Tomcat 등이 있습니다.
#REFERENCE
SSGs Part 1: A Static vs Dynamic Website
This is Part 1: A Dynamic vs Static Website, where we go over their differences, pros and cons.
about.gitlab.com
[WEB] 웹이란 무엇인가?
웹(Web)의 개념 > WWW(World Wide Web)이란 인터넷에 연결된 전세계 사용자들이 서로의 정보를 공유할 수 있는 장소를 의미한다. 간단히 줄여서 WWW나 W3라고 불리며, 간단히 웹(Web)이라고 가장 많이 불린
velog.io
'DEV > CS' 카테고리의 다른 글
[CS] 컴파일, 링크, 빌드, 디버그, 실행의 개념과 차이 (1) | 2023.09.14 |
---|