728x90
자바 웹 기술 역사 (과거 사용 기술)
- 서블릿 - 1997
- HTML 생성이 어렵다.
- JSP - 1997
- HTML 생성은 편리하지만 비즈니스 로직까지 너무 많은 역할을 담당한다.
- 서블릿, JSP 조합 MVC 패턴 사용
- 모델, 뷰, 컨트롤러로 역할을 나누어 개발한다.
- 핵심은 비즈니스 로직 부분과 화면을 렌더링하는 부분으로 역할을 나눴다.
- MVC 프레임워크 춘추 전국 시대 - 2000년 초 ~ 2010년 초
- 다 같이 MVC 패턴으로 개발을 하다보니깐 MVC 패턴을 기반으로 하는 프레임워크가 엄청 많이 나오게 되었다.
- MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능을 지원한다.
- 그당시 MVC 프레임워크 종류 : 스트럿츠, 웹워크, 스프링 MVC(과거버전)
자바 웹 기술 역사 (현재 사용 기술)
- 애노테이션 기반의 스프링 MVC 등장
- MVC 프레임워크의 춘추 전국 시대 마무리.
- 스프링 부트 등장
- 스프링 부트는 내장 서버를 가진다.
- 과거에는 서버에 WAS를 직접 설치하고, 소스를 War 파일을 만들어서 설치한 WAS에 배포했다.
- 스프링 부트는 빌드 결과(Jar)에 WAS 서버를 포함한다. → 빌드 배포 단순화
- 톰캣 설치를 안해도 된다.
자바 웹 기술 역사 (최신기술) - 스프링 웹 기술의 분화
- 스프링 웹 기술이 2가지로 나눠진다.
- Web Servlet - Spring MVC
- 서블릿 기반으로 동작한다.
- 멀티 쓰레드 지원
- Web Reactive - Spring WebFlux
- 완전 최신 기술
- Web Servlet - Spring MVC
🔍 Web Reactive - Spring WebFlux
💡 특징
- 비동기 넌 블러킹 처리 지원
- 최소 쓰레드로 최대 성능을 낸다.
- 쓰레드 컨텍스트 스위칭 비용을 효율화시켰다.
- 함수형 스타일로 개발한다.
- 동시 처리 코드 효율이 높다.
- 서블릿 기술을 사용하지 않는다.
- 웹 플럭스는 기술적 난이도가 매우 높다.
- 아직은 RDB(관계형 데이터 베이스) 지원이 부족하다.
- 굳이 WebFlcx 아니여도 일반 MVC의 쓰레드 모델도 충분히 빠르다.
- 아직 실무에서 많이 사용하지 않는다.
자바 뷰 템플릿 역사
- 뷰 템플릿이란, HTML을 편리하게 생성하는 뷰 기능을 의미한다.
- 뷰 템플릿은 기존에 있는 정적인 요소(HTML, CSS등 마크업)과 뷰 인스턴스에서 정의하는 동적인 요소들(데이터, 비즈니스 로직)을 연결해 사용자가 볼 수 있는 형태의 HTML로 변환해주는 속성이다.
🔍 JSP
- 속도가 느리고 기능이 부족하다.
🔍 프리마커(Freemarker), 벨로시티(Velocity)
- 속도가 빠르고 다양한 기능을 가지고 있다.
🔍 타임리프(Thymeleaf)
- 내추럴 템플릿 : HTML 형태를 유지하면서 뷰 템플릿 적용이 가능하다.
- 기능이 스프링 MVC와 통합되어 있다.
- 스프링으로 개발한다면 타임리프를 선택하는 것이 최선의 선택이다.
- 하지만 성능만 따지고 보면 프리마커와 벨로시키가 더 빠르다.
728x90
'[ Spring ] > SpringMVC 1편' 카테고리의 다른 글
[Spring] HttpServletRequest / HTTP 요청 데이터를 얻는 3가지 방법 (0) | 2022.02.15 |
---|---|
[Spring] 서블릿 (0) | 2022.02.12 |
[Spring] 서버 사이드 렌더링(SSR), 클라이언트 사이드 렌더링(CSR) (0) | 2022.02.11 |
[Spring] HTML, HTTP API (0) | 2022.02.11 |
[Spring] 멀티 쓰레드 (0) | 2022.02.11 |