본문 바로가기
Spring Tutorial

[스프링 MVC 1] 웹 애플리케이션 이해: 웹 서버, 웹 애플리케이션 서버

by 미소5 2023. 7. 16.
  • HTTP 기반으로 통신한다.
    • 웹 브라우저에서 URL을 치면, 인터넷을 통해 서버에 접근하고, 서버에서 HTML을 만들어 웹 브라우저에 전달하면, 웹 브라우저가 클라이언트에게 HTML 화면을 보여준다.
      • 클라이언트에서 서버로 데이터를 전송할 때, 서버에서 클라이언트로 데이터를 응답할 때, 둘 다 HTTP 프로토콜 기반으로 동작한다.
    • HTTP 메시지에 모든 것을 전송 (거의 모든 형태의 데이터를 전송할 수 있다.) 
      • HTML, TEXT
      • 이미지, 음성, 영상, 파일
      • JSON, XML (API)
      • 서버 간에 데이터를 주고받을 때도 대부분 HTTP 사용

 


  • 웹 서버 
    • HTTP 기반으로 동작하는 서버
    • 정적리소스 제공 (+기타 부가기능)
      • 정적(파일)HTML, CSS, JS, 이미지, 영상
    • 웹 서버 예) NGINX, APACHE

 

 

  • 웹 애플리케이션 서버 (WAS: Web Application Server) 
    • HTTP 기반으로 동작하는 서버
    • 웹 서버 기능 다 포함 (정적리소스 제공 등)
    • 프로그램 코드를 실행해서 애플리케이션 로직 수행
      • 동적HTML, HTTP API(REST API) (JSON)
      • 서블릿, JSP, 스프링 MVC
    • WAS 예) 톰캣, Jetty, Undertow

 

 


 

  • 웹 서버, 웹 애플리케이션 서버(WAS) 차이
    • 웹 서버는 정적리소스(파일), WAS는 애플리케이션 로직 실행 가능
      • 하지만, 웹 서버도 프로그램을 실행하는 기능을 포함하기도 하고, 웹 애플리케이션 서버도 웹 서버의 기능을 제공한다. (구분하기가 모호..)
      • 자바는 서블릿 컨테이너 기능을 제공하면 WAS (하지만, 서블릿없이 자바코드 실행하는 서버 프레임워크도 있음)
    • 결론 →WAS는 애플리케이션 코드를 실행하는 데에 더 특화

 


 

  • 웹 시스템 구성

 

  • WAS, DB
    • WAS와 DB만으로 웹 시스템 구성 가능
    • 문제
      • WAS가 너무 많은 역할 → 서버 과부하 우려
      • 가장 비싼 애플리케이션 로직이, 정적 리소스 때문에 수행이 어려울 수 있다.
      • WAS 장애시 오류 화면도 노출 불가능

WAS가 너무 많은 역할을 담당한다!

 

 

 

  • WEB, WAS, DB
    • 정적 리소스는 웹 서버가 처리하고, 웹 서버는 애플리케이션 로직같은 동적인 처리가 필요하면 WAS에 요청을 위임 →WAS는 중요한 애플리케이션 로직 처리를 전담
    • 장점
      • 효율적인 리소스 관리
        • 정적 리소스가 많이 사용되면, Web 서버 증설
        • 애플리케이션 리소스가 많이 사용되면, WAS 증설
      • 정적 리소스만 제공하는 웹 서버는 잘 죽지 않고, 애플리케이션 로직이 동작하는 WAS 서버는 잘 죽는다. →즉, WAS, DB 장애시 WEB 서버가 오류화면 제공 가능

웹서버는 정적리소스, WAS는 애플리케이션 로직

 

 



 

Spring 입문2 -spring 웹 개발 기초 (tistory.com)

 

Spring 입문2 -spring 웹 개발 기초

스프링 부트가 제공하는 Welcome Page static/index.html @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "sara!!"); // model(data:sara!!) return "hello"; //컨트롤러에

joly156.tistory.com

 


 

728x90
반응형