백엔드 개발자가 프론트와 데이터를 주고 받을때 고려해야하는 것
정적 리소스
고정된 HTML파일,CSS,JS,이미지,영상 등을 제공
주로 웹브라우저
HTML페이지
동적으로 필요한 HTML 파일을 생성해서 전달
웹브라우저 : HTML 해석
HTTP API
HTML이 아니라 데이터를 전달(데이터만 주고 받으며,UI화면이 필요하면,클라이언트가 별도처리)
주로 JSON형식 사용
다양한 시스템에서 호출
서로 HTML을 보여주는 전송을 제외한 모든 곳에서 사용
SSR-서버 사이드 렌더링
:서버에서 최종 HTML을 생성해서 클라이언트에 전달(HTML이 서버에서 다만들어짐)
:주로 정적인 화면에 사용
:관련기술 : JSP,타임리프=>백엔드 개발자
CSR-클라이언트 사이드 렌더링
: HTML 결과를 자바스크립트를 사용해 웹 브라우저에 동적으로 생성해서 적용
(클라이언트쪽에서 개발)
:주로 동적인 화면에 사용,웹 환경을 마치 앱처럼 필요한 부분만 변경할 수 있음
:EX) 구글지도,Gmail,캘린더 앱 등등
관련기술 : React, Vue.js ->웹 프론트엔드 개발자
참고
-React, Vue.js를 CSR+SSR을 동시에 지원하는 웹 프레임워크도 있다
-SSR을 사용해도 자바스크립트를 사용해 일부를 동적으로 변경가능하다
자바 웹 기술 역사
=>과거기술
- 서블릿 -1997
HTML 생성이 어려움
- JSP -1999
HTML 생성은 편리하나,비즈니스 로직까지 너무 많은 역할 담당
- 서블릿,JSP 조합 MVC 패턴 사용
모델,뷰 컨트롤러로 역할을 나눠 개발
- MVC 프레임워크 춘추 전국 시대 - 2000년 초~2010년 초
MVC 패턴 자동화,복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원
스트럿츠,웹워크,스프링 MVC(과거버전)
=>현재기술
- 어노테이션 기반의 스프링 MVC 두둥등장
@Controller
MVC 프레임 워크의 춘추 전국 시대 마무리
- 스프링 부트의 등장
스프링 부트는 서버를 내장
과거에는 서버에 WAS를 직접 설치해서,소스는 War파일을 만들어 설치한 WAS에 배포
스프링 부트는 빌드 결과(Jar)에 WAS서버 포함 -> 빌드 배포 단순화
스프링 웹 기술의 분화
- Web Servlet -Spring MVC
- Web Servlet -Spring WebFlux
최신 기술 - 스프링 웹 플럭스(WebFlux)
- 특징
: 비동기 nun 블로킹 처리
: 최소 쓰레드로 최대 성능 - 쓰레드 컨텍스트 스위칭 비용 효율화
: 함수형 스타일로 개발 - 동시처리 코드 효율화
: 서블릿 기술 사용x
=> 그러나 웹플럭스는 기술적 난이도가 매우 높다
아직은 RDB 지원 부족
일반 MVC의 쓰레드 모델도 충분히 빠르다
실무에서 아직 많이 사용하지는 않는다
자바 뷰 템플릿 역사
HTML을 편리하게 생성하는 뷰 기능
JSP
: 속도 느림,기능 부족
프리마커(Freemarker),Velocity(벨로시티) => 잘 발전을 안함
: 속도 문제 해결,다양한 기능
타임리프(Thymeleaf)
: 내추럴 템플릿 : HTML의 모양을 유지하면서 뷰 템플릿 적용 가능
=> 프리마커나 벨로시티는 코드가 들어가서 JSP가 다 보이지만 Thymeleaf는 속성같은 곳에 태그를 넣어 문제를 해결하기 때문에 깔끔하다.
: 스프링 MVC와 강력한 기능 통합
: 최선의 선택,단 성능은 프리마커,벨로시티가 더 빠름
결론 => 타임리프가 기능제공이 많아서 JSP로 하면 오래 걸릴 것이 타임리프에서는 잠깐이면 된다.
'Language & Framework & GIT > Spring' 카테고리의 다른 글
[Spring] SpringMVC_3 # Hello 서블릿 (0) | 2022.08.19 |
---|---|
SprignMVC_1 #웹서버/WAS/서블릿 (0) | 2022.08.14 |
[Spring]@NotNull @NotEmpty @NotBlank 의 차이 (0) | 2022.08.09 |
Spring ORM & DB (0) | 2022.08.06 |
[Spring] @RequestParam (0) | 2022.08.04 |
댓글