공부 자료:
스프링 웹 개발 기초
< 웹을 개발하는 세 가지의 방법 >
-
정적 컨텐츠 : welcome page처럼 서버에서 뭐 하는 것 없이 파일을 !그냥 그대로! 웹브라우저에 내려주기
-
MVC 와 템플릿 엔진: 서버에서 프로그래밍해서 HTML을 조금 동적으로 변환하여 내려주기
-
API : JSON이라는 데이터 구조 포맷으로 클라이언트에게 데이터를 전달하는 방식 , API만 내려주면 화면에서 클라이언트가 알아서 그리고 정리 / 또는 서버끼리 데이터 흐를 때 API방식으로 주고받기도 한다.
> 정적 컨텐츠
스프링부트는 자동적으로 정적 컨텐츠 기능을 제공한다.
-
Static Content를 /static 디렉토리 아래에서 찾아서 기능을 제공한다.
-
url이들어오면 컨트롤러는 먼저 mapping 된 컨트롤러를 찾는데,
해당 url에 해당하는 컨트롤러가 없다면, source에 들어가 html 콘텐츠를 찾아 반환한다.
> MVC 와 템플릿 엔진 동작
MVC란, 모델-뷰-컨트롤러
템플릿 엔진, html 에서 변환해준다
과거에는 컨트롤러와 뷰가 분리되어있지 않았고, 뷰에서 모든 것을 다했다.
왜 분리했을까?
>> 프로그래밍을 할 때 '관심사'를 분리해야 한다.
-
View: 화면을 그리는 데에 모든 역량을 집중
-
Controller & Model : 비즈니스 로직이나 내부적으로 처리하는 데에 집중
helloController에서 RequestParm으로 받은 "user" 파라미터 값으로 name을 Model에 담아
return "hello-template"을 찾아 해당 템플린 엔진 처리
> API
html로 내리냐 api로 데이터를 바로 내리냐의 방식의 차이를 알고 있으면 된다.
@ResponseBody 가 사용되면
HTTP의 BODY에 문자내용을 직접 반환하게 되는데
객체를 반환하는 경우에는
객체를 JSON형식으로 바꾸어 반환한다.
이때 사용되는 객체 처리 Converter : MappingJackson2HttpMessageConverter
(클라이언트의 HTTP Accept Header 와 서버의 Controller 반환 타입 정보 둘을 조합하여 Converter가 선택된다.)
'자기발전소 > # JAVA' 카테고리의 다른 글
Spring Boot 실습 2: Repository (0) | 2020.11.06 |
---|---|
Spring Boot 실습 1: 비즈니스 로직 (0) | 2020.11.05 |
Spring Boot 공부 기록 2 (0) | 2020.11.05 |
Spring Boot 공부 기록 1 (0) | 2020.11.04 |
JAVA : SingleTon 싱글톤 패턴 (0) | 2020.11.03 |