🌲 웹서버 와 웹 애플리케이션 서버(WAS)

2023. 8. 1. 19:40· Spring/🌲 Spring
목차
  1. 웹서버 ( Web Server )
  2. 웹 애플리케이션 ( WAS )
  3. 굉장히 비슷하면서도 다른 이 두가지의 차이가 뭘까?
  4. 웹 시스템의 구성 - WAS, DB ( 2단계 )
  5. 웹 시스템의 구성 - WEB, WAS, DB ( 3단계 )

웹서버 ( Web Server )

 

  • HTTP 기반으로 동작하는 서버
  • 정적 리소스를 제공하며, 기타 부가기능 또한 제공합니다
정적 리소스란? 
HTML, CSS, JS, 이미지, 영상 등을 뜻한다
  • 대표적인 웹 서버로는 NGINX 와 APACHE 라는 것이 있다.

 


웹 애플리케이션 ( WAS )

 

  • HTTP 기반으로 동작한다
  • 웹 서버 기능을 포함하고 정적 리소스 또한 제공하고 있다
  • 프로그램 코드를 실행해서 어플의 로직을 수행할 수 있다는 것이다.
    • 동적 HTML, HTTP API(JSON)
    • 서블릿, JSP, 스프링 MVC
  • 대표적인 WAS 로는 톰캣과 Undertow 등이 있다.

 

굉장히 비슷하면서도 다른 이 두가지의 차이가 뭘까?

  • 웹 서버는 정적 리소스(파일), WAS는 애플리케이션 로직이다.
  • 하지만 두개의 경계는 모호하기 그지없다
    • 웹서버 또한 프로그램을 실행하는 기능이 있다(플러그인 설치)
    • 웹 애플리케이션 서버 또한 웹 서버의 기능을 제공한다
  • 자바는 서블릿 컨테이너 기능을 제공하면 WAS
    • 서블릿 없이 자바코드를 실행하는 서버 프레임워크도 존재한다
  • WAS는 애플리케이션 코드를 실행하는데 더 특화되어있다

 


 

웹 시스템의 구성 - WAS, DB ( 2단계 )

  • WAS 와 DB 만으로 시스템을 구성할 수 있다
  • WAS는 정적 리소스, 애플리케이션 로직 모두 제공이 가능하다. 하지만 이렇게 되면 WAS가 담당하는 일이 많아진다
    • WAS가 너무 많은 일을 담당한다면?
      • WAS의 역할이 너무 많아진다. 때문에 서버의 과부하가 우려된다.
      • 가장 비싼 애플리케이션 로직이 정적 리소스 때문에 수행이 어려울 수 있다
      • WAS 장애시 생기는 오류 화면 조차도 노출이 불가능 해지면서 사용자는 서비스의 이용 자체가 불가능해지고 그 이유 조차 알 수 없는 상황이 생길수 있다.

웹 시스템의 구성 - WEB, WAS, DB ( 3단계 )

  • 이렇게 정적 리소스를 다루는 웹서버를 앞에 따로 두고 동적인 처리를 WAS가 처리하게 만들어 업무를 분담한다.
  • 효율적인 리소스 관리
    • 정적인 리소스가 많이 사용되면 웹 서버만 증설하면 된다
    • 애플리케이션 리소스가 많이 사용되면 WAS를 증설하면 된다.
  • 정적 리소스만 제공해주는 웹 서버는 서버 다운이 쉽게 되지 않는다. 때문에 비교적 다운이 잘 되는 WAS 혹은 DB 가 오류를 발생 시킨다면 웹서버가 오류 화면을 제공해주면 된다.

'Spring > 🌲 Spring' 카테고리의 다른 글

🌲 RestController 와 Controller 의 차이  (0) 2023.08.03
🌲 Request 와 Response  (0) 2023.08.03
🌲 개발자가 서비스를 주고 받을 때 고민하는 3가지(feat. SSR, CSR)  (0) 2023.08.01
🌲 서블릿(Servlet)  (0) 2023.08.01
🌲 멀티 쓰레드(feat. Servlet)  (0) 2023.08.01
  1. 웹서버 ( Web Server )
  2. 웹 애플리케이션 ( WAS )
  3. 굉장히 비슷하면서도 다른 이 두가지의 차이가 뭘까?
  4. 웹 시스템의 구성 - WAS, DB ( 2단계 )
  5. 웹 시스템의 구성 - WEB, WAS, DB ( 3단계 )
'Spring/🌲 Spring' 카테고리의 다른 글
  • 🌲 Request 와 Response
  • 🌲 개발자가 서비스를 주고 받을 때 고민하는 3가지(feat. SSR, CSR)
  • 🌲 서블릿(Servlet)
  • 🌲 멀티 쓰레드(feat. Servlet)
늦은산책
늦은산책
늦은산책
중얼중얼블로그
늦은산책
전체
오늘
어제
  • 분류 전체보기
    • 오류 모음집
    • CS
      • 💾 자료구조
      • 👫🏼 정렬
      • 🖥 네트워크
      • 💻 운영체제
      • 💾 DB
      • 🌌 알고리즘
      • 📝 언어
    • 테스트
    • Git 초보에게 필요한 Git bash사용법
    • 프로젝트
      • 팀 프로젝트
      • 개인 프로젝트
      • 항해99 개인 프로젝트
      • 스위프 프로젝트(Lit Map)
    • Java
      • 객체 지향
    • Spring
      • 🌲 Spring
      • 👨‍💻 SpringSecurity
      • 🌵 JPA
    • MSA
      • MSA 강좌 - 이도원 강사님
    • Docker(도커)
    • 코딩테스트
      • 🧮 프로그래머스
      • 🎲 백준
    • 항해99
      • 🕛 1주차
      • 🕐 2주차
      • 🕑 3주차
      • 🕒 4주차
    • AWS
    • CI와CD

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 취리코
  • 카우치코딩
  • 취업리부트코스
  • 개발자포트폴리오
  • 개발자취업
  • 개발자취준
  • 카우치코딩_포트폴리오_멘토링
  • 항해99
  • 카우치코딩_팀프로젝트
  • 개발자이력서
  • 코딩테스트
  • couchcoding
  • 개발자포토폴리오

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
늦은산책
🌲 웹서버 와 웹 애플리케이션 서버(WAS)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.