0. intro

스프링을 공부해나가면서 어노테이션엔 익숙했지만 구체적인 작동 방식에 대해서는 잘 몰랐다.

이번에 CS스터디에서 Dispatcher Servlet 주제를 발표하기로 결정되었다. 관련해서 찾아봤는데 익숙한 내용들(스페셜 빈…)도 있었고 몰랐거나 잘못 알고있던 부분(Filter와 Interceptor의 작동 위치)들도 있었다.

1) 서블릿(Java Servlet)?

자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다. (…)

자바 서블릿은 [자바 EE](<https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_EE>) 사양의 일부분으로, 주로 이 기능을 이용하여 쇼핑몰이나 온라인 뱅킹 등의 다양한 웹 시스템이 구현되고 있다.

https://ko.wikipedia.org/wiki/자바_서블릿

자바 표준이다. Jakarta EE 스펙이다.

즉, 서블릿(Servlet)은 클라이언트 HTTP 요청을 처리하고, 그 결과를 반환하는 웹 프로그래밍 기술이다.

2) J2EE(Java EE)?

자바 기술로 어플을 만들 때 필요한 스펙(구성요소, api, 런타임 컨테이너, 서비스 등에 대한 표준 사양)들의 집합이다. 이전에는 J2EE라 불리었으나 버전 5.0 이후로 Java EE로 개칭되었다. https://ko.wikipedia.org/wiki/자카르타_EE

JSP(Java Server Page), Java Servlet, EJB(Enterprise JavaBeans) 등의 구성요소로 구성된다. 개발자들은 이런 구성요소들로 대규모 분산 응용 프로그램을 구축할 수도 있다.

우리는 이런 Java EE 응용 프로그램을 JAR 파일로 변환해 인스턴스로 배포하게 된다~

하지만 서블릿을 활용한 J2EE만으로는 엔터프라이즈 애플리케이션을 운영하기 어렵다.

1. 디스패처 서블릿(Dispatcher Servlet)?