본문 바로가기
Spring Tutorial

[스프링 MVC 5] 웹 애플리케이션 이해: 자바 백엔드 웹 기술의 역사

by 미소5 2023. 7. 24.
  • 자바 웹 기술 (과거)
    • 서블릿 - 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 - 스프링 웹 플럭스(WebFlux) 
      • 특징
        • 비동기 넌 블러킹 처리
        • 최소 쓰레드로 최대 성능 - 쓰레드 컨텍스트 스위칭 비용 효율화
        • 함수형 스타일로 개발 - 동시처리 코드 효율화
        • 서블릿 기술 사용X
      •  그런데
        • 웹 플럭스는 기술적 난이도 매우 높음
        • 아직은 RDB 지원 부족
        • 일반 MVC의 쓰레드 모델도 충분히 빠르다.
        • 실무에서 아직 많이 사용하지는 않음 (전체 1% 이하)

 

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

 



[스프링 MVC 3] 웹 애플리케이션 이해: 동시 요청 - 멀티 쓰레드 (tistory.com)

 

[스프링 MVC 3] 웹 애플리케이션 이해: 동시 요청 - 멀티 쓰레드

서블릿 객체는 쓰레드가 호출한다! 쓰레드: 애플리케이션 코드를 하나하나 순차적으로 실행하는 것 자바 메인 메서드를 처음 실행하면, main이라는 이름의 쓰레드가 실행 →쓰레드가 없다면 자

joly156.tistory.com

 

728x90
반응형