오봉이와 함께하는 개발 블로그
스프링 MVC - 자바 백엔드 웹 기술 역사 본문
728x90
자바 백엔드 웹 기술 역사
과거 기술
- 서블릿 - 1997
- TCP/IP 연결, 멀티 쓰레드 등 신경 쓸 부분이 너무 많아서 탄생
- 자바 코드로 짜야하기 때문에 동적인 HTML 생성이 어렵다.
- JSP - 1999
- HTML, 자바 코드 모두 작성가능
- HTML 생성은 편리하지만, 비즈니스 로직까지 너무 많은 역할을 담당했다.
- JSP 한 파일에 너무 많은 코드가 있어 유지보수 거의 불가능
- 서블릿, JSP 조합 MVC 패턴 사용
- 모델, 뷰, 컨트롤러로 역할을 나누어 개발
- 비즈니스 로직과 화면을 나눠서 개발했다.
- MVC 프레임워크 춘추 전국 시대 - 2000년 초 ~ 2010년 초
- MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능을 지원하기 시작
- 스트럿츠, 웹워크, 스프링 MVC(과거 버전)
현재 사용 기술
- 어노테이션 기반의 스프링 MVC 등장
- @Controller
- MVC 프레임워크의 시대 마무리
- 스프링 부트의 등장
- 스프링을 사용하며 신경써야 할 복잡한 설정을 했어야 했는데 초기에 설정을 간편하게 해줌
- 스프링 부트는 서버를 내장
- 과거에는 서버에 WAS를 직접 설치하고 소스는 War 파일을 만들어서 설치한 WAS에 배포
- 스프링 부트는 빌드 결과(Jar)에 WAS 서버 포함 -> 빌드, 배포 단순화
최신 기술 - 스프링 웹 기술의 분화
- Web Servlet - Spring MVC
- Web Reactive - Spring WebFlux
Spring WebFlux
- 특징
- 비동기 넌 블러킹 처리
- 최소 쓰레드로 최대 성능 - 쓰레드 컨텍스트 스위칭 비용 효울화
- 함수형 스타일로 개발 - 동시처리 코드 효울화
- 서블릿 기술 사용 X
- 그림자
- 웹 플럭스는 기술적 난이도가 매우 높다
- 아직 RDB 지원이 부족하다.
- 일반 MVC의 쓰레드 모델도 충분히 빠르다
- 실무에서 아직 많이 사용하지 않는다(전체 1% 이하)
자바 뷰 템플릿 역사
HTML을 편리하게 생성하는 뷰 기능이다.
- JSP
- 속도 느림
- 기능 부족
- Freemarker(프리마커), Velocity(벨로시티)
- 속도 문제 해결
- 다양한 기능
- 하지만 잘 발전하지 않음
- Thymeleaf(타임리프)
- 내추럴 템플릿이다.
- HTML의 모양을 유지하면서 뷰 템플릿 적용 가능
- 스프링 MVC와 강력한 기능 통합
- 스프링에서 밀어주는 뷰 템플릿
- 최선의 선택이 될 것.
- 단, 성능은 프리마커, 벨로시티가 더 빠르다.
- 내추럴 템플릿이다.
출처 : 인프런 김영한 지식 공유자님 강의 - 스프링 MVC 1편 백엔드 웹 개발 핵심 기술
728x90
'이론' 카테고리의 다른 글
CleanCode - 의미있는 이름 (0) | 2023.12.26 |
---|---|
스프링 MVC 1 - MVC 패턴 개요 (0) | 2022.08.11 |
스프링 MVC 1 - HTML, HTTP API, CSR, SSR (0) | 2022.08.09 |
스프링 MVC 1 - 웹 서버&웹 애플리케이션 서버 (0) | 2022.08.08 |
HTTP - 캐시와 조건부 요청 헤더, 프록시 캐시, 캐시 무효화 (0) | 2022.08.08 |
Comments