개념.log/Spring

Spring Web MVC - Servlet

_2J 2023. 2. 4. 00:00

 

 

 

 

HTTP 기본

0. HTTP 상태 코드 HTTP 상태 코드 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 아래는 HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드의 목록이다. IANA가 현재 공식 HTTP 상

ljg960730.tistory.com

 

 

자바 플랫폼 엔터프라이즈 에디션 ( Java Platform Enterprise Edition , Java EE 또는 J2EE)

- 자바 언어를 사용하여 엔터프라이즈 애플리케이션을 만들 수 있는 플랫폼인 동시에 표준 스펙의 집합.

- 웹 애플리케이션 (JSP, Servlet) 부터 데이터베이스 접근 (JDBC)이나 자바 메시징 처리 (JMS) 까지 다룬다.

 

 

 

1. Servlet

- J2EE의 스펙 중 서블릿은 HTTP 프로토콜을 사용하여 데이터를 주고 받는 서버용 프로그래밍 스펙을 의미한다.

- 서블릿은 javax.servlet.Servlet 인터페이스 형태로 Java API에서 제공하며, 이를 구현한 클래스도 서블릿 또는 서블릿 애플리케이션이라고 한다.

- 서블릿 애플리케이션들을 관리하고 실행하는 서버를 서블릿 컨테이너(Servlet Container) 또는 `WAS(Web Application Server)`라고 한다.

- J2EE의 서블릿 스펙을 구현한 WAS는 여러 종류가 있다. ( Tomcat, Jetty, Undertow ... )

- 스프링 웹 MVC 프레임워크도 J2EE 표준인 서블릿을 포함하고 있으며 WAS를 이용하여 웹서비스를 한다.

Servlet 3.0 : 비동기(asynchronous) 서블릿 기능 지원
Servlet 3.1 : Non-Blocking 방식의 IO 기능 지원
Servlet 4.0 : HTTP2.0 기반의 기능 지원

 

 

서블릿 컨테이너, was가 헷갈립니다. - 인프런 | 질문 & 답변

안녕하세요 강의 잘 듣고 있습니다. 그런데 WAS,서블릿 컨테이너, 서블릿 객체가 헷갈려서 질문드립니다. 강의 중, 서블릿 컨테이너는 톰캣처럼 서블릿을 지원하는 WAS라고 하셨습니다.  더불어,

www.inflearn.com

 

 

1. Request

- 서블릿 스펙에 따라 브라우저가 전송한 HTTP 요청 정보는 javax.servlet.http.HttpServletRequest객체에 포함된다.

 

2. WAS 에서 HTTP 파싱 후 Thread가 Servlet 객체 호출 HttpServletRequest 객체 넘김

- 서블릿 애플리케이션에서는 필요한 HTTP 헤더나 쿼리 문자열 등 여러 정보를 파싱하고 참조할 수 있는 메서드들을 제공한다. 

 

3. Servlet에서 비즈니스 로직 수행

- 서블릿 애플리케이션은 사용자 요청에 따라 데이터 저장소에서 데이터를 조회하거나 값을 변경하는 작업을 실행한다.

 

4. Response

- 실행된 결과는 javax.servlet.http.HttpServletResponse 객체에 설정되어 사용자에게 응답한다.

 

 

전통적인 서블릿 애플리케이션은 데이터를 다루는 로직과 HTML 코드까지 하나의 클래스에 서로 얽혀있어 유지보수나 코드 파악에 어려움이 많음.스프링 웹 MVC는 웹 애플리 케이션의 기능을 크게 3가지로 분류하고 각 역할에 맞게 클래스를 분리하여 동작하는 MVC 패턴을 활요한 방식을 제공한다. 

 

 

 

 

 
스프링 부트로 개발하는 MSA 컴포넌트
마이크로서비스 아키텍처는 대규모 서비스의 ‘정답’처럼 여겨지기도 하지만, 실제로 구현하기도 어렵고 여러 시스템이 유기적으로 얽혀 있어 운영이 쉽지 않은 복잡한 아키텍처다. 그러므로 개발 단계나 운영 단계에서 아키텍처에 대한 이해가 매우 중요하다. 이를 돕기 위해 오랫동안 MSA 컴포넌트를 개발하며 커리어를 쌓아온 베테랑 개발자가 MSA 환경에서 컴포넌트를 짤 때 알아야 할 것들을 실무 관점으로 풀어냈다.
저자
김병부
출판
길벗
출판일
2022.11.18