본문 바로가기
BackEnd/Spring Boot

[Spring Boot] Spring Boot 시작하기

by pplucy 2021. 3. 16.

* 스프링 부트의 핵심 라이브러리
- 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

댓글