1. 과거 사용 기술
1.1 서블릿 - 1997
- HTML 생성이 어려움
1.2 JSP - 1999
- HTML 생성은 편리하지만, 비지니스 로직까지 너무 많은 역할을 담당하고 있음.
- JSP 파일 안에 비지니스 로직도 넣고 하다보니 수천 줄이 되어 버림… 유지보수 헬!!🔥
1.3 서블릿, JSP 조합 MVC 패턴 사용
- 모델, 뷰, 컨트롤러로 역할을 나누어 개발
- 화면이 고장나면 - View
- 로직이 고장나면 - Servlet
1.4 MVC 프레임워크 춘추 전국 시대 - 2000년 초 ~ 2010년 초
- MVC패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원
- 많은 개발자들이 이거 다 비슷한데? 자동화 할수 있겠다!!
- 스트럿츠(과거 국내에서 강세였던 것), 웹워크, 스프링 MVC(과거 버전)
- 그래서 과거에는 스트럿츠를 앞에 깔고, 뒤에 스프링을 넣고 개발을 많이 했다고 함.
2. 현재 사용 기술
춘추 전국 시대의 통합 - Annotation 기반의 스프링 MVC 등장
- @Controller
- MVC 프레임워크의 춘추 전국 시대 마무리
- 왜냐!!
- 어떤 기술은 A를 선택하면 B라는 단점이 있고 B를 선택하면 A라는 단점이 존재했음.
- 하지만 Annotation 기반의 스프링 MVC는 그 모든걸 해결하였다.
- 스프링 MVC는 처음부터 스프링과 통합이 되어 있다.
- 아까 말했던 것 처럼 앞쪽에는 스트럿츠, 뒤쪽에는 스프링을 사용했었는데 스프링 MVC는 이미 스프링과 붙어 나와서 그럴 필요가 없음.
- 기존 MVC 패턴 뿐만 아니라 에노테이션 기반이기 때문에 굉장히 유연하고 편리하게 MVC 코드를 작성할 수 있게 해준다. 그러면서 그냥 전국 통일이 되었다.
스프링 부트의 등장
- 스프링 부트는 서버를 내장해옴. → 개발자들이 불편했던 것들을 부트가 자동화해주기 시작함.
- 과거에는 톰갯같은 WAS를 서버에 직접 설치를 해야했다. 그리고 소스 코드는 소스 코드대로 따로 빌드를 함. jar → war → WAS에 배포
- jar → war → WAS에 배포
- 서버에 톰캣을 설치할 필요가 없어짐. 그냥 소스 코드를 작성하고 실행하면 서버가 뜬다! → 빌드 배포 단순화(혁신)
3. 최신 기술 - 스프링 웹 기술의 분화
Web Servlet → Spring MVC
- 쓰레드 풀 기반 방식
- 우리가 일반적으로 사용하는 기술들