본 포스팅은 인프런 - 스프링 MVC 1편을 강의를 바탕으로 공부하고 정리한 글입니다.
자바 웹 기술 역사
과거
- 서블릿 (1997)
- 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 - Spring WebFlux
- 비동기 넌 블러킹 처리를 한다.
- 최소 쓰레드로 최대 성능 → 쓰레드를 CPU 코어 수에 맞춰서 사용해 쓰레드 컨텍스트 스위칭 비용 효율화
- 함수형 스타일로 개발 → 동시처리 코드 효율화
- 서블릿 기술 사용 X
- 하지만 웹 플럭스는 기술적 난이도가 매우 높다.
- 아직은 RDB(관계데이터베이스) 지원이 부족하다.
- 일반 MVC의 쓰레드 모델도 충분히 빠르다.
- 때문에 실무에서는 아직 많이 사용하지 않는다.
자바 뷰 템플릿 역사
- 뷰 템플릿 : HTML을 편리하게 생성하는 뷰 기능
- JSP
- 속도 느림, 기능 부족
- 프리마커(Freemaker), Velocity(벨로시티)
- 속도 문제 해결, 다양한 기능
- 타임리프(Thymeleaf)
- 내추럴 템플릿 : HTML의 모양을 유지하면서 뷰 템플릿을 적용할 수 있다.
- 스프링 MVC와 강력한 기능 통합
- 최선의 선택
- 단, 성능은 프리마커, 벨로시티가 더 빠르다
'🌱 Spring > Web MVC' 카테고리의 다른 글
스프링 MVC 웹 페이지 만들기 (0) | 2022.03.22 |
---|---|
로깅 (0) | 2022.03.18 |
스프링 MVC 기본 기능 (0) | 2022.03.18 |
스프링 MVC 구조 이해하기 (0) | 2022.03.17 |
MVC 프레임워크 만들기 (0) | 2022.03.16 |
서블릿, JSP, MVC 패턴으로 웹 애플리케이션 개발하기 (0) | 2022.03.15 |
서블릿 (0) | 2022.03.14 |
웹 애플리케이션의 이해 (0) | 2022.03.11 |