IT STUDY LOG

[WAS와 Web Server] 01. 서버 본문

devops bootcamp 4/개발 및 배포

[WAS와 Web Server] 01. 서버

roheerumi 2023. 3. 24. 10:59

# 학습 목표

  • 서버의 종류와 역할에 대해서 이해합니다.
  • 웹서버와 웹 애플리케이션 서버의 차이점을 이해합니다.
  • 정적, 동적이라는 단어를 이해하고, 정적 웹 사이트와 동적 웹 사이트의 차이점을 학습합니다.
  • nginx를 통해 정적 웹 사이트, 정적 콘텐츠를 이해합니다.
  • nginx를 이용해 정적 웹사이트를 제공하고, Mini WAS를 개발하면서 위의 그림에서 2와 5번에 해당하는 구조를 이해합니다.
  • express, fastify를 통해 API 서버를 만들면서 WAS의 구조와 해당 서버에 대한 모듈을 이해합니다.
    웹 서버와 WAS의 전체적인 구조를 이해하고, 기본적인 CRUD가 있는 블로그 서버를 개발하며, 전체 아키텍처를 이해합니다.


# 학습 내용

1.   서버

  • 서버
    • 개요 
      • 컴퓨터의 역할을 의미
      • 사용자의 요청을 받고, 이에 따른 응답과 데이터를 보내주는 역할을 수행함
      • 서비스를 제공하는 컴퓨터 내의 프로그램을 의미하 프로그램(소프트웨어)이 실행되는 컴퓨터(하드웨어) 역시 서버라고 불림
    • 구성
      • 하드웨어 : 서버는 정적 파일들이 제공되거나, 서버 애플리케이션이 실행되는 컴퓨터
      • 소프트웨어 : 정적 파일을 제공하거나, 서비스를 제공하는 애플리케이션 그 자체를 의미
    • 종류
      종류 설명
      웹 서버(Web Server) - 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지(그림, CSS, JS와 같은 정적 파일)를 있는 그대로 반환하는 서버
      - 정적 웹 서버(Static Web Server)라고 불리기도 함
      - (예시) nginx, Apache Web Server 
      웹 애플리케이션 서버
      (Web Application Server)
      - 웹 페이지를 전달하는 역할도 하나 핵심 역할은 웹 페이지를 구성하는 동적인 컨텐츠를 생성하거나 업데이트 하는 비즈니스 로직을 수행
      - 서버 측 비즈니스 로직에 클라이언트가 접근할 수 있는 방법을 제공하는 것입니다.
      - 특징
       ① 웹 페이지를 구성하는 동적인 요소를 생성하는 서버 사이드 코드가 구동될 수 있는 프로그래밍 언어적 런타임 혹은 소프트웨어 엔진을 제공
      ② 웹 애플리케이션 서버를 사용할 경우 다양한 형태의 아키텍처가 생성될 수 있
      - (예시) 웹 애플리케이션 서버
      데이터베이스 서버 - 사용자 정보나 사진, 동영상 등에 대한 정보를 담고 있는 데이터베이스에 사용자가 접근할 수 있도록 해주는 서버
      - (예시) MySQL, MongoDB, Oracle 등
      프록시 서버 - 소스를 요청하는 클라이언트와 응답으로 리소스를 전달하는 서버 사이에 중계 역할을 하는 서버를 의미
      - 보안, 캐시, 로드밸런싱 

      - 구분 : 포워드 프록시, 리버스 프록시

 

2. 웹 서버 vs 웹 애플리케이션 서버

  • 웹서버
    • 정적 파일을 받고 이에 대한 요청을 이행하는 서버
    • 보통 HTTP 요청과 응답만을 처리

웹 서버의 아키텍처 (출처 : 코드스테이츠 데브옵스 부트캠프 과정)

  • 웹 애플리케이션 서버(WAS)
    • 데이터를 동적으로 처리해 제공하기 위해 만들어진 서버
    • 데이터를 동적으로 처리하기 위해 DB 조회, 여러 개의 트랜잭션 간리, 비즈니스 로직 처리 등 기능이 요구
    • 사용자 요청에 의해 다르게 보일 수 있는 웹 사이트 인터랙트 부분 처리

WAS의 아키텍처 (출처 : 코드스테이츠 데브옵스 부트캠프 과정)

Comments