스프링MVC

웹 애플리케이션과 서블릿

salmon16 2023. 7. 31. 20:41

웹 서버

HTTP 기반으로 동작한다.

정적 리소스를 제공한다 (HTML, CSS, JS 이미지 영상)

예) NGINX, APACHE

 

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

HTTP 기반으로 동작한다.

프로그램 코드를 실행해서 애플리케이션으로 로직을 수행한다.

예) 톰캣, Jetty, Undertow

WAS는 정적 리소스, 애플리케이션 로직 모두 제공가능해서 WAS, DB만으로 시스템 구성이 가능하다.

하지만 WAS만으로 너무 많은 역할을 담당하면 서버가 과부하가 생길 수 있다.

그래서 웹 서버는 정적 리소스를 처리하고 동적 처리가 필요하면 WAS에 요청을 한다.

이러면 효율적인 리소스관리가 쉽다 

  • 정적 리소스가 많으면 Web서버 증설
  • 애플리케이션 리소스가 많으면 WAS증설

서블릿

서블릿은 자바클래스의 일종으로 개발자가 HTTP 스펙을 매우 편리하게 사용하도록 도와준다

예로 HTML Form으로 데이터를 전송하는 상황을 보자

HTML Form으로 전송을 하면 웹 브라우저가 HTTP 요청 메시지를 만들어서 서버로 보내게 된다.

그러면 위와 같은 과정들을 서버에서 처리를 해주어야 한다. 

초록 박스인 비즈니스 로직 실행 부분을 제외하면 다른 서버에서도 반복되는 작업이다.

그래서 서블릿이 초록 박스 부분을 제외한 것들을 대신 처리해 준다.

 

서블릿 사용

urlPatterns에 URL이 호출되면 서블릿 코드가 실행된다(service함수).

HTTP 요청 정보를 편리하게 사용할 수 있는 HttpServletRequest

HTTP 응답 정보를 편리하게 제공할 수 있는 HttpServeltResponse 객체들이 생성된다.

개발자는 request에서 정보를 꺼내서 사용하고 Response객체에 HTTP응답 정보를 편리하게 입력할 수 있다.

서블릿 컨테이너는 서블릿을 관리한다.

서블릿 객체 싱글톤으로 관리된다 그러므로 공유 변수사용에 주의해야한다.

 

출처 : 스프링MVC 1편 - 백엔드 웹 개발 핵심 기술 김영한

'스프링MVC' 카테고리의 다른 글

JSP 사용하기  (0) 2023.08.02
HttpServletResponse 사용  (0) 2023.08.02
HTTP 요청 데이터  (0) 2023.08.02
서블릿 사용해 보기  (0) 2023.08.01
멀티 쓰레드  (0) 2023.07.31