자바 웹 기술은 변천사가 있어왔다.
아래는 과거에 사용했던 기술들이다.
1997년도에 처음 서블릿을 사용했으며, 이 당시에는 HTML 생성이 어려웠다.
1999년도에 들어 JSP를 사용하였고, HTML 생성은 편리하지만 비즈니스 로직까지 너무 많은 역할을 담당했다.
그 이후 서블릿, JSP 조합으로 MVC 패턴을 만들어 사용했는데, 모델, 뷰, 컨트롤러 역할로 나누어 개발했다.
2000년대 초부터 2010년대 초까지 MVC 프레임워크 춘추전국시대였다.
MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능을 지원했다.
스트럿츠, 웹워크, 스프링 MVC(과거 버전)
현재는 아래와 같은 기술들을 사용하고 있다.
애노테이션 기반의 스프링 MVC를 사용한다
- @Controller
- MVC 프레임워크의 춘추 전국 시대가 마무리된다.
스프링부트의 등장
- 스프링 부트는 서버를 내장하고 있다.
- 과거에는 서버에 WAS를 직접 설치하고, 소스는 War 파일을 만들어서 설치한 WAS에 배포했는데,
- 스프링 부트는 빌드 결과(Jar)에 WAS 서버를 포함하여 빌드와 배포를 단순화했다.
최신 기술들은 스프링 웹 기술의 분화
- Web Servlet - Spring MVC
- Web Reactive - Spring WebFlux
스프링 웹 플럭스(WebFlux)
웹 플럭스의 특징으로는
- 비동기 Non-Blocking 처리를 한다
- 최소 쓰레드로 최대 성능을 뽑아내는데, 쓰레드 컨텍스트 스위칭 비용이 효율화된다
- 함수형 스타일로 개발하고, 동시 처리 코드를 효율화한다.
- 서블릿 기술을 사용하지 않는다.
그런데, 웹 플럭스는 기술적 난이도가 매우 높다.
아직은 RDB 지원이 부족하고, 일반 MVC의 쓰레드 모델도 충분히 빠르다.
실무에서 아직 많이 사용하지 않는다.
자바 뷰 템플릿은 여러가지가 있는데, HTML을 편리하게 생성하는 뷰 기능을 제공한다
JSP
- 속도가 느리고 기능이 부족하다
프리마커(Freemarker), Velocity(벨로시티)
- JSP의 속도 문제를 개선하였고 다양한 기능을 제공한다
타임리프(Thymeleaf)
- 내추럴 탬플릿 : HTML 모양을 유지하면서 뷰 템플릿 적용이 가능하다
- 스프링 MVC와 강력한 기능 통합을 제공한다
- 현재로서는 최선의 선택이다. 하지만 성능은 프리마커, 벨로시티가 더 빠르다
'스프링 > 스프링 웹' 카테고리의 다른 글
[Spring] 서블릿(Servlet) 만들기 (0) | 2023.05.16 |
---|---|
[Spring] 서블릿(Servlet) 프로젝트 환경 설정 (IntelliJ) (0) | 2023.05.16 |
[Spring] HTML, HTTP API, CSR, SSR (0) | 2023.05.15 |
[Spring] 동시요청 - 멀티 쓰레드 (0) | 2023.05.15 |
[Spring] 서블릿(Servlet) 개념 (0) | 2023.05.15 |
댓글