1. 과거 사용 기술

1.1 서블릿 - 1997

  1. HTML 생성이 어려움

1.2 JSP - 1999

  1. HTML 생성은 편리하지만, 비지니스 로직까지 너무 많은 역할을 담당하고 있음.
  2. JSP 파일 안에 비지니스 로직도 넣고 하다보니 수천 줄이 되어 버림… 유지보수 헬!!🔥

1.3 서블릿, JSP 조합 MVC 패턴 사용

  1. 모델, 뷰, 컨트롤러로 역할을 나누어 개발
  2. 화면이 고장나면 - View
  3. 로직이 고장나면 - Servlet

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

  1. MVC패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원
    1. 많은 개발자들이 이거 다 비슷한데? 자동화 할수 있겠다!!
  2. 스트럿츠(과거 국내에서 강세였던 것), 웹워크, 스프링 MVC(과거 버전)
  3. 그래서 과거에는 스트럿츠를 앞에 깔고, 뒤에 스프링을 넣고 개발을 많이 했다고 함.

2. 현재 사용 기술

춘추 전국 시대의 통합 - Annotation 기반의 스프링 MVC 등장

  1. @Controller
  2. MVC 프레임워크의 춘추 전국 시대 마무리
  3. 왜냐!!
    1. 어떤 기술은 A를 선택하면 B라는 단점이 있고 B를 선택하면 A라는 단점이 존재했음.
    2. 하지만 Annotation 기반의 스프링 MVC는 그 모든걸 해결하였다.
    3. 스프링 MVC는 처음부터 스프링과 통합이 되어 있다.
    4. 아까 말했던 것 처럼 앞쪽에는 스트럿츠, 뒤쪽에는 스프링을 사용했었는데 스프링 MVC는 이미 스프링과 붙어 나와서 그럴 필요가 없음.
    5. 기존 MVC 패턴 뿐만 아니라 에노테이션 기반이기 때문에 굉장히 유연하고 편리하게 MVC 코드를 작성할 수 있게 해준다. 그러면서 그냥 전국 통일이 되었다.

스프링 부트의 등장

  1. 스프링 부트는 서버를 내장해옴. → 개발자들이 불편했던 것들을 부트가 자동화해주기 시작함.
    1. 과거에는 톰갯같은 WAS를 서버에 직접 설치를 해야했다. 그리고 소스 코드는 소스 코드대로 따로 빌드를 함. jar → war → WAS에 배포
    2. jar → war → WAS에 배포
  2. 서버에 톰캣을 설치할 필요가 없어짐. 그냥 소스 코드를 작성하고 실행하면 서버가 뜬다! → 빌드 배포 단순화(혁신)

3. 최신 기술 - 스프링 웹 기술의 분화

Web Servlet → Spring MVC