자바 웹 기술 역사
- 서블릿 -1997 (WAS에서의 HTTP문서 해석의 과정에서 TCP연결에 멀티쓰레드 등 어려움을 겪어 만들어짐)
+ HTML 생성이 어려움 (자바코드로 짜야해서..)
-JSP-1999 (위의 문제를 해결하기 위해)
+ HTML 생성은 편리하지만, 비지니스 로직까지 너무 많은 역할 담당
-서블릿,JSP 조합 MVC 패턴 사용
+ 모델, 뷰 컨트롤러로 역할을 나누어 개발
- MVC 프레임워크 춘추 전국 시대 - 2000년 초 ~ 2010년 초
+ MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원
+ 스트럿츠, 웹워크, 스프링 MVC(과거버전)
애노테이션 기반의 스프링 MVC 등장
-@Controller
-MVC 프레임워크의 춘추 전국 시대 마무리
스프링 부트의 등장
- 스프링 부트는 서버를 내장
- 과거에는 서버에 WAS를 직접 설치하고, 소스는 WAR파일을 만들어서 설치한 WAS에 배포
- 스프링 부트는 빌드 결과(JAR)에 WAS 서버 포함 -> 빌드 배포 단순화
자바 웹 기술 역사
최신 기술 - 스프링 웹 기술의 분화
-WEB Servlet - Spring MVC
-WEB Reactive - String WebFlux (완전 최신기술)
+ 특징
-비동기 넌 블러킹 처리
- 최소 쓰레드로 최대 성능 - 쓰레드 컨텍스트 스위칭 비용 효율화 (cpu에 딱맞춤)
- 함수형 스타일로 개발 - 동시처리 코드 효율화
- 서블릿 기술 사용 X
+그런데?
- 웹 플럭스는 기술적 난이도 매우 높음
- 아직도 RDB 지원 부족 (관계형 데이터 베이스)
- 일반 MVC의 쓰레드 모델도 충분히 빠르다
- 실무에서 아직 많이 사용하지는 않음 (전체 1% 이하)
자바 뷰 템플릿 역사
HTML을 편리하게 생성하는 뷰 기능
JSP
- 속도 느림, 기능 부족
프리마커(Freemarker), Velocity(벨로시티)
- 속도 문제 해결, 다양한 기능
타임리프(Thymeleaf)
- 내추럴 템플릿: HTML의 모양을 유지하면서 뷰 템플릿 적용가능
- 스프링 MVC와 강력한 기능 통합
- 최선의 선택, 단 성능은 프리마커, 벨로시틱가 빠름