Spring/SpringMVC

자바 백엔드 웹 기술 역사

느리지만 꾸준하게 2022. 4. 21. 17:11
  • 서블릿 - 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 => 자세히 살펴보면

 

스프링 웹 플럭스(Spring WebFlux)

 

특징

  • 비동기 Non-blocking 처리
  • 최소 Thread로 최대 성능 - Thread Context Switching 비용 효율화
  • 함수형 스타일로 개발 - 동시처리 코드 효율화
  • Servlet 기술 사용 x

그런데

  • Web flux는 기술적 난이도 매우 높음
  • 아직은 RDB 지원 부족(Redis, DynamoDB, Elastic Search, MongoDB 에서 많이 지원된다.)
  • 일반 MVC Thread Model도 충분히 빠르다.
  • 실무에서 아직 많이 사용하지 않음(전체 1% 이하)

 

 

 

HTML을 편리하게 생성하는 뷰 기능

 

  • JSP
  • 속도 느림, 기능 부족

 

  • 프리마커(Freemaker), Velocity(벨로시티)
  • 속도 문제 해결, 다양한 기능

 

  • 타임리프(Thymeleaf)
  • Natural Template : HTML 모양을 유지하면서 뷰 Template 적용 가능
  • 스프링 MVC와 강력한 기능 통합
  • 최선의 선택, 성능은 프리마커, 벨로시티가 더 빠름 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<출처 김영한: 스프링 MVC 1편 - 벡앤드 웹 개발 핵심 기술>

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -

www.inflearn.com

 

'Spring > SpringMVC' 카테고리의 다른 글

HTTP 요청 데이터 - 개요  (0) 2022.04.21
HttpServletRequest - 기본 사용법  (0) 2022.04.21
HttpServletRequest - 개요  (0) 2022.04.21
Hello 서블릿  (0) 2022.04.21
서블릿 - 프로젝트 생성  (0) 2022.04.21