본문 바로가기
스프링/스프링 웹

[Spring] 자바 백엔드 웹 기술 역사(서블릿, JSP, MVC)

by drCode 2023. 5. 16.
728x90
반응형

자바 웹 기술은 변천사가 있어왔다.

 

아래는 과거에 사용했던 기술들이다.

 

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와 강력한 기능 통합을 제공한다

 - 현재로서는 최선의 선택이다. 하지만 성능은 프리마커, 벨로시티가 더 빠르다

 

728x90
반응형

댓글