본문 바로가기
다양한 기술들/Web 관련

[서버] 이론 : 웹서버와 WAS

by 예스p 2022. 12. 29.

Server 개요


Server-Client 모델

  • 서버는 특정한 서비스를 제공하는 컴퓨터를, 
    클라이언트는 이러한 서비스를 이용하는 사용자를 말함.
  • 내가 만든 페이지를 다른 사용자도 볼 수 있게 하려면 서버를 구축해야한다.
  • 서버 내부에서도 여러 단계가 있음
    1. 웹서버 : 외부의 요청을 받아서 적절한 처리 후 응답을 돌려주는 교환통신원 역할
       ex) 아파치
    2. 미들웨어 : 웹서버와 데이터베이스를 연결하면서 웹 어플리케이션이 동작하는 방법 등을 정의하는 곳
       ex) PHP, JSP, 스프링, 장고 등
    3. 데이터베이스 : 가장 깊은 곳에서 정보를 저장하는 역할
       ex) 오라클

 

 

서버 내부 프로그램 배치도

 

 

서버는 크게 2종류

  • AP서버(Application Server)
    - 애플리케이션 서비스를 동작시키는 서버
      ex) 쇼핑몰에서 사용자가 제품을 카트에 담고, 좋아요를 누르고, 댓글을 달고, 문의를 하는 등의 모든 행동을 AP 서버가 처리
    -  웹서버와 WAS로 세분화된다.
  • DB서버
    - 데이터를 저장하고 필요할 때 데이터를 가져올 수 있는 공간
    - 트래픽이 적다면 AP서버와 DB서버를 하나로 단일서버로 운영하지만, 규모가 커지는 경우 이중화시켜서 구축한다.
  • 단일서버와 분리서버의 물리적 차이
    - 단일서버구성
      웹클라이언트 => 연결 <= 웹서버+WAS+DB서버
    - 분리서버구성
       웹클라이언트 => 연결 <= 웹서버+WAS => 연결 <= DB서버

 

 

AP서버의 세분화

  • Web Server :
    - 웹사이트 또는 웹어플리케이션의 콘텐츠를 클라이언트에게 제공하는 서버
     * 웹사이트란? 누가봐도 똑같은 정적 페이지(html이 한가지)
    - HTTP, HTTPS 프로토콜로 통신한다
    - 프론트엔드 작업을 처리한다.
  • WAS :
    - Web Application Server
    - 웹 어플리케이션의 페이지를 만들어서 응답함
     ** 웹어플리케이션이란? 이용자와 상호작용하는 동적인 페이지(마이페이지 등)
    - 동적인 요소를 주었다면 반드시 WAS를 구축해야한다.
     (WAS를 구축하면 자연스럽게 WebServer도 구축됨)
    - 프론트엔드와 백엔드 모두 처리하나 주로 백엔드 처리를 의미한다.

  • 장단점

 

 

서버의 역할과 조건

  • 클라이언트 요청 수신 및 처리
    - 클라이언트(보통 웹 브라우저나 API 호출)의 요청을 수신하고, 해당 요청에 대한 처리를 수행할 수 있어야 한다.
  • 응답 반환
    - 요청에 대한 처리 결과를 응답으로 클라이언트에게 반환할 수 있어야 한다.
    - 웹 서버의 경우 정적 파일을, WAS의 경우 데이터베이스와의 상호작용 결과를 반환
  • 연결 및 데이터 전송의 안정성
    - HTTP, HTTPS, TCP 등 특정 프로토콜을 통해 안정적으로 클라이언트와 통신할 수 있어야 한다.
    - 연결의 안정성과 데이터 전송의 신뢰성을 보장해야 한다.
  • 확장성과 관리 용이성
    - 많은 사용자가 동시에 요청을 보내도 이를 처리할 수 있어야 한다.
    - 관리자가 이를 쉽게 유지보수하고 확장할 수 있어야 함
    - 멀티스레드, 로드 밸런싱, 캐싱 등
  • 리소스 관리와 최적화
    - 메모리, CPU, 네트워크 자원을 효율적으로 관리하며 최적화된 성능을 유지

 

 

 

 

댓글