Spring MVC

자바의 백엔드 웹 기술 역사

cwchoiit 2024. 4. 25. 14:06
728x90
반응형
SMALL

참고자료:

 

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

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

www.inflearn.com

 

저번 포스팅에선 서블릿에 대해 알아봤다. 서블릿은 HTTP 프로토콜을 통해 클라이언트와 서버간 통신이 가능하게 해주는 것이었다. 개발자 대신 HTTP 요청정보와 응답정보를 만들어주고, 외부 요청이 들어오면 그 요청을 처리하는 서블릿을 서블릿 컨테이너에서 호출하면서 진행된다.

 

이제 서블릿으로 직접 웹 애플리케이션을 만들어 볼건데 그 전에 웹 기술의 역사와 HTML, HTTP API, CSR, SSR과 같은 용어 정리를 한 번 하고 넘어가자. 우선 반드시 알아두어야 할 키워드는 다음과 같다.

 

  • 정적 리소스 - 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공

 

  • HTML 페이지 - 동적으로 필요한 HTML 파일을 생성해서 전달

이때 브라우저는 HTML 페이지를 해석하는 역할을 한다.

 

 

  • HTTP API - HTML이 아니라 데이터를 전달한다. 주로 JSON형식을 사용하고 다양한 시스템(앱, 웹, 서버)에서 호출할 수 있다.

 

그래서 앱, 웹, 서버 어디서나 요청을 할 수 있고 요청에 따라 적절한 응답값을 화면이 아닌 데이터로 돌려주는 것이 HTTP API이다.

 

서버사이드 렌더링(SSR)

서버 사이드 렌더링은 서버에서 HTML 최종 결과물을 만들어서 웹 브라우저에 전달하는 방식이다. 주로 정적인 화면에 사용한다. 대표적인 기술로는 Thymeleaf가 있다.

클라이언트 사이드 렌더링(CSR)

HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해서 적용한다. 주로 동적인 화면에 사용한다. 그러니까 서버에서는 이 화면을 만들기 위해 필요한 스크립트와 디자인을 클라이언트에 주고 클라이언트가 그 코드를 서버에 요청하는 방식이다. 대표적인 기술로는 React, Vue가 있다.

 

자바 웹 기술 역사

  • 서블릿 - 1997
    • HTML 생성이 어려움
  • JSP - 1999
    • HTML 생성은 편리하지만 비즈니스 로직까지 너무 많은 역할 담당
  • 서블릿, JSP 조합 MVC 패턴 사용
    • 모델, 뷰, 컨트롤러로 역할을 나누어 개발
  • 다수의 MVC 프레임워크가 출몰(2000 - 2010)
  • 애노테이션 기반의 스프링 MVC 등장
    • @Controller
  • 스프링 부트의 등장
    • 스프링 부트는 서버를 내장하고 있다. 무슨 말이냐면 과거에는 서버에 WAS를 직접 설치하고, 소스는 War 파일을 만들어서 설치한 WAS에 배포했는데 스프링 부트는 빌드 결과(Jar)에 WAS 서버를 포함하고 있다. 그래서 빌드, 배포의 단순화가 됐다.
    • 스프링 부트는 스프링 프레임워크로 개발할 때 필요한 여러 설정을 개발자 대신 해준다. 그리고 최적의 버전 호환성도 맞춰준다.

그래서 스프링 MVC, 스프링 부트가 최종 병기가 된 상태이다.

여기에 스프링이 공식적으로 지원하는 Thymeleaf라는 뷰 템플릿과 같이 사용하면 된다.

 

728x90
반응형
LIST