공부한것들을 정리하는 블로그 입니다.
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 본문
1) 정적 컨텐츠
1. 브라우저에 localhost:8080/hello-static.html 입력
2. 내장 톰켓서버에서 스프링 컨테이너의 hello-static 컨트롤러 메소드가 있는지 확인
- 있을 경우, 해당 컨트롤러 실행
3. 없을 경우, resources: static/hello-static.html을 찾은 후, 단순한 html 컨텐츠를 반환
- resources/static 하위
- 파일명 : hello-static.html
- 동적인 동작은 없는 단순한 html 컨텐츠를 반환
2) MVC와 템플릿 엔진
1. 브라우저에 localhost:8080/hello-mvc 입력
2. 내장 톰켓서버에서 스프링 컨테이너의 hello-static 컨트롤러 메소드가 있는지 확인
- 있을 경우, 해당 컨트롤러 실행
3. 있을 경우, hello-mvc @GetMapping("hello-mvc") 컨트롤러를 실행
- @RequestParam의 required = true (default) 이므로 반드시 값이 있어야 한다.
- 없으면 오류응답
- required = false 로 명시해주면 없어도 오류처리 x
3. 브라우저에 localhost:8080/hello-mvc?name=spring 입력
- QueryString에서 name에 spring이 매핑됨
- viewResolver가 명시된(정해진) 디렉터리 하위에서, 확장자명을 붙인 파일명을 찾아 리턴
3) API
1. 정적 컨텐츠 vs 템플릿엔진 vs API(String, Object)
- 템플릿엔진, API 방식 : 동적컨텐츠 방식
- 차이점
- 템플릿엔진 방식 : 데이터를 VIewResolver를 통해 HTML로 내려줌
- API 방식 : HttpMessageConverter가 작동하여 String, JSON 등의 형식으로 데이터만 HTTP Body에 담아 응답
2. 메서드에 사용 : @ResponseBody 어노테이션을 사용
- HttpMessageConverter가 작동
- 데이터를 http body에 담아 응답
- String, JSON 등의 형식
3. 컨트롤러에 사용 : @RestController
- 메서드에 각각 @ResponseBody 어노테이션을 붙이지 않아도 동일하게 일괄 적용
4. 객체(Object)를 API방식으로 응답
- JSON형식으로 응답
- MappingJackson2HttpMessageConverter가 작동 (JSON = 스프링의 default = Jackson 라이브러리)
- 데이터를 XML 등으로 응답하고 싶으면
- 설정 값, 라이브러리를 변경하거나
- http Accept 헤더와 서버의 컨트롤러 반환타입정보를 조합해서 HttpMessageConverter를 변경하면 됨
'Spring > 강의' 카테고리의 다른 글
스프링 핵심 원리 - 고급편 (0) | 2022.03.17 |
---|---|
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (0) | 2022.03.17 |
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (0) | 2022.03.17 |
스프링 핵심 원리 - 기본편 (0) | 2022.03.17 |
모든 개발자를 위한 HTTP 웹 기본 지식 (0) | 2022.03.17 |