본문 바로가기

MVC

[MVC] 자바 백엔드 웹 기술 역사

자바 웹 기술 역사

과거 기술 🌟

서블릿 - 1997

  개발자들이 TCP/IP 연결하고 멀티쓰레드 등등 고민할게 너무 많았음

  자바코드로 짜야되서 동적으로 생성하기 너무 힘듬..

 HTML을 동적으로 생성이 어려움

 


JSP - 1999

  HTML 생성은 편리하지만, 비즈니스 로직까지 너무 많은 역할 담당

  JSP 하나의 파일이 수천 줄 이상이 되어버리는 유지보수 난이도는.. 🤬

 

 

서블릿, JSP 조합 MVC 패턴 사용
  모델, 뷰 컨트롤러로 역할을 나누어 개발

  서로의 역할을 쪼갬

  비즈니스 로직 부분과 화면을 렌더링하는 부분을 나눔

 

 

MVC 프레임워크 춘추 전국 시대 - 2000년 초 ~ 2010년 초

 비슷한 부분이 많은데 프레임워크 한번 만들어볼까?

MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원
스트럿츠, 웹워크, 스프링 MVC(과거 버전)

 

 

현재 사용 기술 🌏

애노테이션 기반의 스프링 MVC 등장 

  @Controller
  MVC 프레임워크의 춘추 전국 시대 통일

 

스프링 부트의 등장
스프링 부트는 서버를 내장
과거에는 서버에 WAS를 직접 설치하고, 소스는 War 파일을 만들어서 설치한 WAS에 배포
스프링 부트는 빌드 결과(Jar)에 WAS 서버 포함 -> 빌드 배포 단순화

 

 

 

최신 기술 - 스프링 웹 기술의 분화 🚀

  1. Web Servlet - Spring MVC 
  2. Web Reactive - Spring WebFlux

 

 

최신 기술 - 스프링 웹 플럭스(WebFlux) 👽

 

특징
비동기 넌 블러킹 처리
최소 쓰레드로 최대 성능 - 쓰레드 컨텍스트 스위칭 비용 효율화
함수형 스타일로 개발 - 동시처리 코드 효율화
서블릿 기술 사용X (Netty)


그런데
웹 플럭스는 기술적 난이도 매우 높음
아직은 RDB 지원 부족
일반 MVC의 쓰레드 모델도 충분히 빠르다.
실무에서 아직 많이 사용하지는 않음 (전체 1% 이하)

 

 

자바 뷰 템플릿 역사 ✍

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


JSP
속도 느림, 기능 부족


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


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

'MVC' 카테고리의 다른 글

[MVC] 스프링 MVC  (0) 2024.07.18
[MVC] 프론트 컨트롤러 패턴  (0) 2024.07.16
[MVC] 서블릿, JSP, MVC 패턴 적용  (0) 2024.07.15
[MVC] 서블릿  (0) 2024.07.12
[MVC] 웹 서버, 웹 애플리케이션 차이점  (0) 2024.07.11