본문으로 바로가기

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

category Web/Web 2022. 3. 30. 00:54

과거 기술

 

  • 서블릿(1997) - HTML 생성이 어려움
  • JSP(1999) - HTML 생성은 편리하지만, 비즈니스 로직까지 너무 많은 역할 담당
  • 서블릿, JSP 조합 MVC 패턴 사용 - 모델, 뷰, 컨트롤러로 역할을 나누어 개발
  • MVC 프레임워크 춘추전국 시대(2000년 초 ~ 2010년 초) - MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원

 

현재 사용 기술

 

  • 애노테이션 기반의 스프링 MVC 등장 - @Controller -> MVC 프레임워크 춘추전국 시대 마무리
  • 스프링 부트의 등장 - 서버를 내장
    • 과거에는 서버에 WAS를 직접 설치하고 소스는 War 파일을 만들어서 설치한 WAS에 배포
    • 스프링 부트는 빌드 결과(Jar)에 WAS 서버 포함 -> 빌드 배포 단순화

 

최신 기술 

 

스프링 웹 기술의 분화

 

  • Web Servlet - Spring MVC
  • Web Reactive - Spring WebFlux

 

Spring WebFlux

 

특징

 

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

But

  • 기술적 난이도 매우 높음
  • 아직은 RDB 지원 부족
  • 일반 MVC의 쓰레드 모델도 충분히 빠름
  • 실무에서 아직 많이 사용하지 않음(전체 1% 이하)

 

 

자바 뷰 템플릿 역사

 

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

 

  • JSP - 속도 느림, 기능 부족
  • 프리마커(Freemarker), Velocity(벨로시티) - 속도 문제 해결, 다양한 기능
  • 타임리프(Thymeleaf)
    • 내추럴 템플릿: HTML의 모양을 유지하면서 뷰 템플릿 적용 가능
    • 스프링 MVC와 강력한 기능 통합
    • 최선의 선택, 단 성능은 프리마커와 벨로시티가 더 빠름

'Web > Web' 카테고리의 다른 글

[WEB] JWT 및 웹 보안 이해하기  (0) 2023.09.15
[WEB] Web Server / Web Container / Web Application Server  (0) 2022.08.31
[WEB] HTML, HTTP API, CSR, SSR  (0) 2022.03.30
[WEB] 동시 요청 - 멀티 쓰레드  (0) 2022.03.29
[WEB] 서블릿  (0) 2022.03.29