웹 서버 vs 웹 어플리케이션 서버

Sue·2022년 2월 19일
0

Spring Boot

목록 보기
2/5

스프링 입문 강의를 듣던 중, 웹 서버와 웹 어플리케이션 서버에 대한 개념이 부족한 것 같아 정리해보았다. 내용은 예전에 공부했던 네이버 부스트코스의 웹 프로그래밍 풀스택 강의 필기 내용을 참고했다.

1. 웹 서버 (Web Server)

  • 웹 서버는 보통 소프트웨어를 말하지만, 웹 서버 소프트웨어가 동작하는 컴퓨터를 말하기도 한다.

  • 웹 서버의 가장 중요한 기능은 클라이언트가 요청하는 HTML 문서나 각종 리소스를 전달하는 것이다.

    • 리소스가 존재하지 않거나 문제가 발생하면 에러 메시지를 보낸다.
  • 웹 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장되어 있는 정적인 데이터거나 동적인 결과가 될 수 있다.

    • 정적인 데이터: 이미지, HTML 파일, CSS 파일, JS 파일 등
    • 동적인 데이터: 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물
    • 웹 크롤러: 네이버 등의 검색 사이트에서 다른 웹 사이트 정보를 읽어갈 때 사용하는 소프트웨어

    1) 웹 브라우저와 웹 서버

    • 웹 브라우저가 웹 페이지를 요청하면 웹 서버는 웹 페이지를 응답한다.

    2) 웹 서버 소프트웨어의 종류

    • 가장 많이 사용하는 웹 서버는 Apache, Nginx, Microsoft, Google 웹 서버이다.
    • Apache 웹 서버는 Apache Software Foundation에서 개발한 웹서버로, 오픈소스 SW이며 거의 대부분의 운영체제에서 설치 및 사용이 가능하다.
    • Nginx는 차세대 웹 서버로 불리며 더 적은 자원으로 더 빠르게 데이터를 서비스하는 것을 목적으로 만들어진 오픈소스 SW이다.

    3) 클라이언트/서버 구조

    • 클라이언트는 서비스를 제공하는 서버에게 정보를 요청하여 응답 받은 결과를 사용한다.

    4) DBMS

    • Database Management System
    • 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어
    • DBMS는 주로 서버처럼 동작한다.
      → 때문에 DBMS에 접속해서 동작하는 클라이언트 프로그램이 한때 많이 생겼다.
      → 클라이언트 무거워지고 보안의 문제, 로직 변경시 매번 클라이언트 재배포 해야 하는 문제 등 여러 문제 발생
      → 미들웨어 등장.

    5) 미들웨어 (MiddleWare)

    • 클라이언트 쪽에 비즈니스 로직이 많을 경우, 클라이언트 관리 (배포 등)로 인해 비용이 많이 발생하는 문제가 발생한다.
    • 비즈니스 로직을 클라이언트와 DBMS 사이의 미들웨어 서버에서 동작하도록 함으로써 클라이언트는 입력과 출력만 담당하도록 하였다.
    • 미들웨어: 클라이언트와 DBMS 사이에 또 다른 서버를 두는 방식.

2. WAS (Web Application Server)

  • WAS는 일종의 미들웨어로 웹 클라이언트 (보통 웹 브라우저)의 요청 중 보통 웹 애플리케이션이 동작하도록 지원하는 목적을 가진다.
  • 웹은 처음엔 정적인 컨텐츠만 보여줬다. 웹이 동적 컨텐츠도 보여줄 수 있도록 많은 기능을 요구받으면서 웹과 DBMS 사이의 미들웨어가 필요해졌는데 이런 미들웨어가 바로 WAS이다.
  • WAS의 기본 기능 3가지
    1. 프로그램 실행 환경과 DB 접속 기능을 제공
    2. 여러개의 트랜잭션(논리적인 작업단위)을 관리한다.
    3. 업무를 처리하는 비즈니스 로직을 수행한다.
    + 웹서버의 기능도 제공.

3. 웹 서버 vs WAS

  • WAS도 보통 자체적으로 웹 서버 기능을 내장하고 있다.
  • 현재는 WAS가 가지고 있는 웹 서버도 정적인 컨텐츠를 처리하는데 있어서 성능 상 큰 차이가 없다.
  • 규모가 커질 수록 웹 서버와 WAS를 분리한다. 그 목적은 장애 극복 기능인 경우가 많다.
  • 주로 웹 서버는 정적 컨텐츠, WAS는 동적 컨텐츠를 웹 브라우저에게 전송
  • 웹 서버는 상대적으로 WAS보다 간단하게 구성되어있다. 앞단에 웹 서버를 두면 장애 극복 기능 UP

참고

0개의 댓글