Spring MVC 1편 웹 애플리케이션 이해

신재원·2023년 1월 15일
1

Spring MVC 1편

목록 보기
1/35

🌍 웹 서버, 웹 애플리케이션 서버

  • 웹 서버 ( Web Server)
    • HTTP 기반으로 동작
    • 정적 리소스 제공, 기타 부가기능
    • 예) APACHE
  • 웹 애플리케이션 서버 ( WAS = Web Application Server)
    • 사용자에 따라 동적으로 웹 페이지를 다르게 보여줄수있다.
    • 웹 서버기능 포함 + 정적 리소스 제공
    • 특징
      • 프로그램 코드를 실행해서 애플리케이션 로직 실행
      • 동적 HTML,
      • HTTP API (JSON) (Rest API) (많이 사용)
      • 서블릿, JSP, 스프링 MVC
    • 예) 톰캣(Tomcat)
  • http 메시지에 모든것을 전송
    • JSON, XML(API)등등
    • 서버간에 데이터를 주고 받을 때도 대부분 http 사용

정리 ( 웹서버와 WAS 차이 )

  • 웹 서버는 "정적 리소스 (파일)", WAS는 "애플리케이션 로직"
  • 사실 둘의 용어도 경계도 모호하다.
    • 웹 서버도 프로그램을 실행하는 기능을 포함하기도 한다.
    • 웹 애플리케이션 서버도 웹 서버의 기능을 제공함
  • 자바는 서블릿 컨테이너 기능을 제공하면 WAS
  • ""WAS는 애플리케이션 코드를 실행하는데 더 특화되어있다.""

웹 시스템 구성 - WAS, DB

  • WAS가 너무 많은 역할을 담당, 서버 과부하 우려
    ( HTML, CSS, JS, 이미지 등)
  • 가장 비싼 애플리케이션 로직 (비즈니스 로직) 이 정적 리소스 때문에 수행이 어려울 수 있음
  • WAS 장애시 오류 화면도 노출 불가능

📢 웹 시스템 구성 - WEB, WAS, DB

  • 정적 리소스는 "웹 서버"가 처리
  • 웹 서버는 애플리케이션 로직같은 "동적인 처리" 가 필요하면 WAS에 요청을 위임
  • WAS는 중요한 애플리케이션 로직 처리 전담
  • WAS,DB 장애시 WEB 서버가 오류 화면제공 가능 (웹 서버는 잘 죽지않음, WAS 서버는 잘 죽음)

추가로 효율적인 리소스 관리를 할수있음
1. 정적 리소스가 많이 사용될 것 같은 경우 ➡ WEB 서버 증설
2. 애플리케이션 로직 같은 리소스가 많이 사용될 것 같은 경우 ➡ WAS 서버 증설

❗❗ 한마디로 업무를 분담한다는 것

0개의 댓글