자바 웹 기술의 역사

bo04·2022년 5월 31일
0

spring-mvc1

목록 보기
5/9

자바 웹 기술의 역사

  1. 서블릿 등장
    비즈니스 로직을 제외한 모든 연결 과정을 다 처리해줘서 편리하나 문제는 자바로 짜는거라 동적인 html 생성이 까다로웠음.
  2. jsp 등장
    jsp 덕분에 서블릿의 html 생성 문제가 어느정도 해결되었으나 문제는 여기에 비즈니스 로직을 여기에 넣는 경우가 많아서 유지보수가 매우 힘들었음.
  3. 서블릿, jsp 조합 mvc 패턴 등장
    비즈니스 로직과 뷰를 나눠서 유지보수를 쉽게 하기 위해 모델,뷰,컨트롤러로 역할을 나눠서 개발하기 시작함
  4. mvc 프레임워크 춘추전국 시대
    mvc 패턴으로 수많은 프레임워크가 쏟아져나왔고 아직 기준이나 대세가 자리잡기 전이었음. 그래도 이덕분에 mvc 패턴 자동화나 웹 기술을 편리하게 사용할 수 있는 다양한 기능도 많이 나옴.
  5. 애노테이션 기반의 스프링 mvc 등장
    애노테이션 덕분에 스프링 mvc가 수많은 mvc 프레임워크의 기준으로 자리잡음.
  6. 스프링 부트의 등장
    스프링을 사용하기 훨씬 쉽게 해주는 스프링 부트가 단숨에 대세로 떠오름. 무엇보다도 스프링 부트는 서버가 내장되어있어서 까다로웠던 빌드 배포가 훨씬 단순해짐
  7. 스프링 웹 기술이 web servlet과 web reactive로 분화됨
  • web servlet-spring mvc: 기존의 서블릿, mvc 기술
  • web reactive-spring webflux: 최신 기술로 서블릿 기술을 사용하지 않고 netty를 사용함. 쓰레드의 수를 cpu core의 수와 동일하게 맞춰서 쓰레드 컨텍스트 스위칭 비용이 안들고 최소 스레드로 최대 성능을 볼 수 있음. 함수형 스타일로 개발함. 한마디로 자바도 node.js같이 개발이 가능해짐.

webflux는 아직 관계형 데이터베이스 지원이 부족하고 기술적 난이도가 매우 높음. 그리고 무엇보다도 스프링 mvc 스레드로도 왠만하면 커버가 가능하므로 아직까진 잘 사용하지 않음

자바 뷰 템플릿 역사

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

  1. jsp 등장
    속도가 굉장히 느리고 기능도 부족함
  2. freemarker,velocity 등장
    속도도 빠르고 다양한 기능을 지원함. 그러나 발전이 더딤.
  3. thymeleaf
  • 내추럴 템플릿: html 모양을 유지하면서 뷰 템플릿을 적용할 수 있음
  • jsp나 freemarker같은 경우에는 html 파일을 열었을때 if문같은 js 코드가 보였는데 thyemeleaf는 html tag로 넣기 때문에 그런 문제가 없음
  • 스프링 mvc와 같이 사용했을때 매우 강력함

0개의 댓글