DEV/CS

[CS] 정적 웹과 동적 웹, WEB, WAS의 이해

Bi3a 2023. 10. 18. 20:47

728x90

컴퓨터 사이언스 기초 학습입니다.

 

 

 

 

 

Table of Contents

     

     


    학습 목표

    1. 정적 웹과 동적 웹의 개념을 이해하고 차이를 학습한다.
    2. WEB과 웹 서버 아키텍처의 개념을 학습한다.
    3. 웹 서버와 WAS의 개념과 차이를 학습한다.

     

    정적 웹 VS 동적 웹

    정적 웹(위) 과 동적 웹(아래) 의 사용자 요청에 따른 흐름 비교

     

    정적 웹

    정적 웹이란, 말 그대로 미리 저장된 파일이 전달되는 정지된 성격의 고정된 웹 페이지입니다.
    데이터가 변경되는 등의  작업이 서버 내부에서 이뤄지지 않습니다.

     

    • 정적 웹의 특징
      1. 웹 서버에서부터 정적 컨텐츠들이 사용자에게 그대로 전달되는 방식입니다.
        • 정적 컨텐츠 : 미리 저장된 파일들(HTML, CSS, javascript 등 즉시 응답 가능한 컨텐츠)
      2. 서버는 사용자의 요청(Request)에 해당하는 저장된 웹 페이지를 보냅니다.
      3. 사용자는 서버에 저장된 데이터가 변경되지 않는 한 고정된 웹페이지를 조회하게 됩니다.
    • 정적 웹의 장점
      1. 빠른 속도 : 요청에 대한 파일만 일반적으로 전송하므로 추가적인 작업이 없습니다.
      2. 적은 비용 : 웹 서버만 구축하면 됩니다.
    • 정적 웹의 단점
      1. 한정적 서비스 제공 : 저장된 정보만 보여줄 수 있습니다.
      2. 힘든 관리 : CRUD 기능이 모두 수동으로 이뤄집니다.

     

    동적 웹 

    동적 웹이란, 웹 서버에 있는 데이터들이 스크립트에 의해 가공처리한 후 생성되어 전달되는 웹 페이지입니다.
    서버 내부에서 데이터가 변경되는 등의 작업이 서버 내부에서 일어납니다.

     

    • 동적 웹의 특징
      1. 웹 서버의 동적 컨텐츠들이 스크립트에 의해 가공되어 전달되는 방식입니다.
        • 동적 컨텐츠(예) : 웹에 엑세스한 사용자의 username, client의 은행 잔고 등)
      2. 서버는 사용자의 요청(Request)에 적합하게 데이터를 가공한 후 재생성된 웹 페이지를 보냅니다.
      3. 사용자는 상황, 시간, 요청에 따라 달라지는 동적인 웹 페이지를 볼 수 있습니다.
      4. 동적 컨텐츠 가공을 위해 웹 서버에 더해 웹 어플리케이션 서버(웹 응용서버, WAS)가 필요합니다.
        • 웹 어플리케이션 서버에 대해서는 후술하도록 함
    • 동적 웹의 장점
      1. 다양한 서비스 : 다양한 정보를 조합해 동적으로 생성해 사용자에게 제공 가능합니다.
      2. 쉬운 관리 : CRUD 기능의 작업이 용이합니다. (웹 서버에서 가능)
    • 동적 웹의 단점
      1. 느린 속도 : 사용자의 요청에 따른 웹 페이지 가공 처리 작업이 선행되어야 하므로 상대적으로 느립니다.
      2. 추가 비용 : 웹 서버 외의 웹 어플리케이션 서버(WAS)가 필요하므로 추가적인 비용이 발생합니다. 

     

    결론 

    핵심요약 (동적 웹 vs 정적 웹)

    구  분 동적 웹 정적 웹
    특징 정적 + 동적 컨텐츠 전달 정적 컨텐츠만  전달
    서비스 다양하다 적다
    속도 느리다 빠르다
    데이터 수정 쉽다 어렵다
    비용 많음 적음
    구성 요소 WEB + WAS WEB

     

     

     


     

    웹(WEB)과 웹 서버(WEB SERVER), 웹 응용 서버(WAS)

    웹(WEB)

    WEB이란?
    World Wide WEB 의 약자로, 인터넷에서 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간입니다.
    간단히 줄여 Web 혹은 W3으로 많이 부릅니다.
    인터넷 상에서 텍스트나 그림 같은 멀티미디어 정보를 하이퍼 텍스트로 연결해 제공하는 기능을 합니다.

    더블유더블유더블유보다 월드와이드웹이 부르기 간편합니다

     

    웹의 큰 작동 흐름과 구성 요소

     

    • 구성 요소로 보는 웹
      1. CLIENT : 웹을 사용하기 위해 정보를 요청(REQUEST)하는 쪽(웹 브라우저)
      2. SERVER : CLIENT의 요청 (REQUEST)에 응답(RESPONSE)하는 쪽(웹 서버)
    • 요청 유형에 따른 보는 웹
      1. REQUEST : 컴퓨터에서 사용자가 웹 브라우저 실행 : http 프로토콜에 따라 정보를 요청
      2. RESPONSE  서버가 해당하는 정보를 웹 브라우저로 전송 : 요청된 정보에 따라 웹 브라우저로 응답

     

    웹을 작동시키기 위한 웹 서비스 아키텍처

    웹 아키텍처의 구조는 웹마다 각각 다르며, 구조에 따른 동작 원리가 일부 상이합니다.

     

    웹 아키텍처의 대표적인 구조(3가지) 

    • Client → Web Server → DB
    • Client → WAS → DB
    • Client → Web Server → WAS → DB

     

    웹 서비스 아키텍처의 예제(3번 구조)

     

    웹 동작 원리

    1. Client에서 웹 브라우저를 통해 특정 사이트에 접속하기 위해 웹 서버에 요청을 보냅니다.
    2. 웹 서버에서 요청을 접수하고 동적 컨텐츠인지 정적 컨텐츠인지 판단합니다.
      1. 정적 컨텐츠라면 웹 서버에 내부 디스크에 있는 정보를 취득해 Client에게 전송합니다. (WAS를 안거침)
      2. 동적 컨텐츠라면 WAS 에 요청을 보냅니다.
    3. WAS 에서 웹 서버에서 보낸 요청을 접수하고 자신이 계산 가능한지, DB에 접속이 필요한지를 판단합니다.
      1. 스스로 계산이 가능하다면 요청내용을 바탕해서 가공 후 웹 서버로 결과를 데이터로 반환합니다.
      2. DB 접속이 필요하면 DB 서버에 요청을 보냅니다.
    4. DB 서버에서 요청을 접수하고 캐시 존재여부 확인, 디스크에 엑세스해 데이터를 반환해 결과를 WAS 서버로 줍니다.
    5. 결과를 반환받은 WAS 로부터 → 웹 서버 → Client(웹 브라우저)에게 순차적으로 전송합니다.
    6. Client는 웹 브라우저로 전송된 응답을 받습니다. 

     

    웹 서버 (WEB SERVER)

    웹 서버란 클라이언트가 브라우저 주소창에 url을 입력해 어떤 페이지를 요청하면 http 요청을 받아들여 
    HTML 문서와 같은 정적인 컨텐츠를 사용자에게 전달하는 역할을 합니다.

     

    • 웹 서버의 특징
      1. 정적인 컨텐츠를 HTTP 프로토콜을 통하여 클라이언트에게 전달하는 것이 주 목적입니다.
      2. 사용자로부터 동적인 요청이 들어왔을 때 해당 요청을 WAS로 요청합니다.
    • 웹 서버의 종류 : Apache, Nginx 등이 있습니다.

     

    웹 응용 서버 (WAS, 웹 어플리케이션 서버)

    웹 응용서버는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공합니다.
    웹 서버와는 달리 동적인 컨텐츠를 수행하는 것으로 웹 서버와 구별이 됩니다.

     

    • WAS 의 특징
      1. 동적인 컨텐츠를 처리하는 것이 주 목적인 서버이며, 주로 DB 서버와 같이 연동되며 작업을 수행합니다.
      2. 웹 컨테이너, 혹은 서블렛 컨테이너 라고도 불립니다.
      3. 정적인 컨텐츠도 처리는 할 수 있지만 정적 컨텐츠는 웹, 동적 컨텐츠는 WAS 가 처리하게 기능을 분배합니다.
        • 처리하는 컨텐츠를 분담하는 이유는 아래와 같습니다.
        • 기능을 분리하여 서버 부하를 방지 가능
        • 물리적으로 분리하여 보안을 강화
        • WAS 는 웹 서버에 여러대 연결이 가능하므로 분산 처리를 통한 자원 이용의 효율성이 극대화 사유
      4. 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