* 스프링 부트의 핵심 라이브러리
- spring-boot-starter-web
- Spring-boot-starter-tomcat : 톰캣(웹서버)이 내장되어있다.
- Spring-webMVC : 스프링 웹 MVC
- spring-boor-starter-thymeleaf : 타임리프 템플릿 엔진(View)
- spring-boot-starter(공통) : 스프링부트 + 스프링코어 +로깅
- Spring-boot
-Springc-core
- Spring-boot-starter-logging
-logback,slf4j
* 스프링 부트의 테스트 라이브러리
- Juit : 테스트 프레임워크
- mockito : 목 라이브러리
- assertj : 테스트 코드를 좀 더 편하게 작성하도록 도와주는 라이브러리
- spring-test : 스프링 통합 테스트 지원
* 스프링 부트는 맨 처음 static/index.html 파일을 읽게 된다 -> welcome 파일 설정 !
* 스프링 부트에서 컨트롤러의 리턴값으로 문자열을 반환하면 뷰 리졸버(viewResolver)가 화면을 찾아서 처리한다.
템플릿엔진 기본 viewName 매핑 !
resources:template/ +{ViewName} + .html
* 스프링 웹개발
1) 정적 컨텐츠(그냥 파일을 그대로 고객에게 전달해주는 방식)
2) MVC와 템플릿엔진(서버에서 동적으로 변형 후 전달해주는 방식)
(ex. jsp, php 등 -> html을 바로 주지 않고 서버에서 프로그래밍 후에 html을 동적으로 바꿔서 보낸다.)
3) API
: ex. JSON이라는 데이터 구조 포맷으로 클라이언트에게 전달해주는 방식
: 서버끼리 통신할 때 사용하기도 함
: react나 vue 쓸 떄도 포맷을 사용함
* 정적컨텐츠
: 웹브라우저 상에서 localhost:5090/hello-static.html로 요청이 들어오게 되면 내장 톰캣 서버에서
스프링에게 넘겨준다.
스프링은 컨트롤러에서 먼저 hello-static을 매핑하는 컨트롤러를 찾는다. 하지만 이 때 아무 컨트롤러도
발견되지 않으면 resources : static/hello-static 을 찾아주게 된다.
* MVC와 템플릿 엔진
- MVC : Model - View(화면을 그리는데에 집중) - Controller
: 웹브라우저 상에서 localhost:5090/hello-mvc.html로 요청이 들어오게 되면 내장 톰캣 서버에서 스프링에게 넘겨준다.
스프링은 컨트롤러에서 hello-mvc를 매핑하는 컨트롤러를 찾고 리턴값으로 반환되는 hello-template를
viewResolver로 넘기게 되며 viewResolver는 해당 template를 찾아서 view로 띄우게 된다.
* API
: 값이 JSON의 방식으로 넘어간다.(name, value)의 형태 !
: 웹브라우저 상에서 localhost:5090/hello-api.html로 요청이 들어오게 되면 내장 톰캣 서버에서 스프링에게 넘겨준다.
스프링이 컨트롤러에서 hello-api를 발견했는데 이때, @ResponseBody 어노테이션이 붙어있을 경우,
http에 대한 응답에 이 데이터를 그대로 넘기게 된다.
그런데 이때 이 응답이 문자열(StringConverter)이 아닌 객체가 넘어가게 될 경우엔 JsonConverter(default)가
동작해 JSON 방식으로 파싱해서 HTTP 응답에 반환한다.
- 기본 문자처리 : StringHttpMessageConverter
- 기본 객체처리 : MappingJackson2HttpMessageConverter
* annotation
- @GetMapping(path) : 해당 path로 들어오는 url을 매핑(매칭)해준다.
- @ResponseBody : 응답 body에 리턴값을 직접 넣겠다. JSON으로 default가 되어있어 자동으로 JSON변환됨
'BackEnd > Spring Boot' 카테고리의 다른 글
[Spring Boot] DB 정보 세팅하기 (0) | 2021.11.10 |
---|
댓글