자바 백엔드 웹 기술 역사

2023. 3. 27. 01:03·BackEnd/스프링 MVC 1편

자바 웹 기술 역사

과거 기술

  • 서블릿 - 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 (완전 최신)

 

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

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

 

자바 뷰 템플릿 역사

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

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

 

 

 

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

 

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

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

www.inflearn.com

 

'BackEnd > 스프링 MVC 1편' 카테고리의 다른 글

HTML, HTTP API, CSR, SSR  (0) 2023.03.27
동시 요청 - 멀티 쓰레드  (0) 2023.03.26
스프링 웹 MVC  (0) 2023.03.26
'BackEnd/스프링 MVC 1편' 카테고리의 다른 글
  • HTML, HTTP API, CSR, SSR
  • 동시 요청 - 멀티 쓰레드
  • 스프링 웹 MVC
인프라 감자
인프라 감자
  • 인프라 감자
    삶은 인프라
    인프라 감자
  • 전체
    오늘
    어제
    • 분류 전체보기 (243)
      • 클라우드&인프라 (28)
        • 인프라 공부 (4)
        • AWS 구조와 서비스 (18)
        • 클라우드 공부 (4)
        • Terraform (2)
      • AWS Cloud School (13)
        • project (5)
        • Linux, Network (6)
        • Docker (2)
      • BackEnd (162)
        • JAVA 공부 (15)
        • 알고리즘 공부 (71)
        • MySQL 문제 풀기 (8)
        • 스프링 핵심 원리 - 기본편 (18)
        • 스프링 MVC 1편 (4)
        • 자바 ORM 표준 JPA 프로그래밍 (21)
        • 실전! 스프링 부트와 JPA 활용1 (8)
        • 실전! 스프링 부트와 JPA 활용2 (5)
        • 스프링 데이터 JPA (8)
        • Querydsl (4)
      • 혼자하는 프로젝트 (32)
        • 배달의 민족 클론코딩 (7)
        • 나만의 프로젝트 (10)
        • 스프링 부트로 구현한 웹 (15)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Email
    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    다이나믹 프로그래밍
    자바
    자동 배포
    상속
    네트워크 기본 용어
    querydsl
    정렬
    중첩 선언
    완전탐색
    linux
    프로그래머스
    스프링 핵심 원리-기본편
    조합
    백트래킹
    VPN
    이것이 자바다
    유니온 파인드
    dp
    쿼드 압축
    디팬스 게임
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
인프라 감자
자바 백엔드 웹 기술 역사
상단으로

티스토리툴바