자바 백엔드 웹 기술 역사

과거

  • 1997년 서블릿

    • 자바 코드로 짜야 하므로 HTML를 동적으로 생성하는 게 어려웠다.

  • 1999년 JSP

    • HTML 생성은 편리하지만 비즈니스 로직까지 너무 많은 역할을 담당하게 된다.

  • 서블릿, JSP를 조합한 MVC 패턴

    • 모델, 뷰 컨트롤러로 역할을 나누어 개발한다.

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

    • MVC 패턴을 자동화한다.

    • 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능을 지원한다.

    • ex) 스트럿츠, 웹워크, 스프링 MVC(과거 버전)

현재

  • 애너테이션 기반의 스프링 MVC

    • @Controller

    • MVC 프레임워크의 춘추 전국 시대가 마무리된다.

  • 스프링 부트의 등장

    • 서버를 내장한 스프링 부트가 등장한다.

    • 과거에는 서버에 WAS를 직접 설치하고 소스는 WAR 파일을 만들어 설치한 WAS에 배포했다.

    • 스프링 부트는 빌드 결과인 JAR에 WAS 서버가 포함되어 빌드가 단순화되었다.

최신

스프링 웹 기술이 분화되고 있다.

  • Web Servlet

    • Spring MVC

  • Web Reactive

    • Spring WebFlux

WebFlux

  • 비동기로 non blocking을 처리한다.

  • 최소 스레드로 최대 성능을 낸다,

    • 스레드 컨텍스트 스위칭 비용을 효율화한다.

  • 함수형 스타일로 개발할 수 있다.

    • 동시 처리 코드의 효율성을 높인다.

  • 서블릿 기술을 사용하지 않는다.

    • netty를 이용한다.

하지만 웹 플럭스는 기술적인 난이도가 매우 높다. 아직 RDB에 대한 지원이 부족하다. 일반 MVC의 스레드 모델도 충분히 빨라서 실무에서 아직 많이 사용하지는 않는다.

자바 뷰 템플릿

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

JSP

속도가 느리고 기능이 부족하다.

프리마커, 벨로시티

속도 문제를 해결했으며 다양한 기능이 있다.

타임리프

내추럴 템플릿으로 HTML의 모양을 유지하면서 뷰 템플릿을 적용할 수 있다. 스프링 MVC와 기능이 통합되어 있어 최선의 선택이다. 단, 성능은 프리마커와 벨로시티가 더 빠르다.

Last updated