정적 컨텐츠, MVC와 템플릿 엔진, API 이 3가지는 웹 개발에서 가장 중요한 기초라고 볼 수 있습니다.
개발을 하게 된다면 필수적으로 알아야 하는 내용이므로 작성하였습니다.
1. 정적 컨텐츠
파일을 그대로 클라이언트에게 전달하는 것
Static Content
By default, Spring Boot serves static content from a directory called /static (or /public or /resources or /META-INF/resources) in the classpath. It uses the ResourceWebHandler from Spring WebFlux so that you can modify that behavior by adding your own WebFluxConfigurer and overriding the addResourceHandlers method.
정적 콘텐츠
기본적으로 스프링 부트는 클래스 경로에 있는 /static(또는 /public 또는 /resources 또는 /META-INF/resources) 디렉토리의 정적 콘텐츠를 제공합니다. 스프링 웹플럭스의 ResourceWebHandler를 사용하여 자신만의 WebFluxConfigurer를 추가하고 addResourceHandler 메서드를 재정의하여 해당 동작을 수정할 수 있습니다.
2. MVC와 템플릿 엔진
서버에서 변형된 파일을 클라이언트에게 전달하는 것
MVC: Model, View, Controller
내장 톰캣 서버는 웹브라우저의 요청을 받아 스프링 컨테이너에 매핑되어있는 컨트롤러를 통해 메서드를 호출합니다
이때 Model에는 전달할 데이터를 key, value 형태로 값을 담아 리턴값(hello-template)으로 문자를 반환하면 viewResolver가 화면을 찾아서 처리합니다
viewResolver는 view를 찾아주고 템플릿 엔진을 연결해주는 역할을 합니다 ( ex) template/hello-template.html )
Thymeleaf 템플릿 엔진 처리를 통해 렌더링 된 파일을 클라이언트에게 반환합니다
스프링 부트 템플릿엔진 기본 viewName 매핑
`resources:templates/`+{ViewName}+`.html`
3. API
JSON 데이터 포맷 형태로 클라이언트에게 전달 하는 것
@ResponseBody 를 사용 - Http 통신 프로토콜의 Body에 문자 내용을 직접 반환
`viewResolver` 대신에 `HttpMessageConverter` 가 동작
기본 문자처리(StringConverter): `StringHttpMessageConverter`
기본 객체처리(JsonConverter): `MappingJackson2HttpMessageConverter`
byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
참고: 클라이언트의 HTTP Accept 해더와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 `HttpMessageConverter` 가 선택된다.
'Java' 카테고리의 다른 글
| Math 관련 내장함수 (0) | 2024.11.13 |
|---|---|
| Array 관련 내장함수 (1) | 2024.11.10 |
| String 관련 내장함수 (0) | 2024.11.08 |
| 디자인 패턴(Design Pattern) (0) | 2024.11.05 |
| Java introduction (7) | 2024.11.04 |