Java를 사용합 웹 개발의 시초로 서버에서 동적으로 콘텐츠를 생성하기 위해 사용되었고 클라이언트의 요청을 받고 그에 대한 응답을 생성하는 기본적인 구조를 제공했다
코드의 복잡성이 증가하고 유지보수가 어려워졌음
JSP는 HTML 내에 Java 코드를 삽입할 수 있는 기술로 웹페이지를 더 쉽게 동적으로 생성할 수 있도록 도와주었음
JSP 내에 비즈니스 로직을 분리할 수 없음
웹 애플리케이션의 유지보수성과 확장성을 크게 향상시킴
개발자가 중복적으로 설정해줘야 하는 부분들이 다수 발생함
Annotation을 통해 애플리케이션 설정의 복잡함을 줄여주었다
더 직관적이고 간결한 방식으로 웹 애플리케이션을 개발할 수 있게 되었다
Spring 프레임워크를 보다 쉽게 사용하도록 만든 도구로 설정과 복잡한 초기 설정 작업을 자동하 함
개발자들이 빠르게 애플리케이션을 개발할 수 있도록 도와줌
Web Servlet
Spring MVC
- 안정적이고 동기식 프로그래밍 모델을 기반으로 한 웹 애플리케이션 개발에 널리 사용됨
Web Reactive
Spring WebFlux
- 비동기 및 넌블로킹 모델을 기반으로 한 웹 프레임워크로 높은 동시성을 요구하는애플리케이션에서 효율적인 성능을 제공한다. 함수형 프로그래밍 스타일을 지원하며 서블릿 기술 대신 Netty 등의 비동기 서버를 사용한다.
- 서블릿 기술을 사용하지 않으며 실시간 데이터를 처리하거나 높은 동시성을 요구하는 애플리케이션에 적합하다
- RDBMS 지원 부족과 높은 기술적 난이도 등으로 인해 아직은 MVC 모델이 많은 실무에서 더 많이 사용되고 있다.