Spring boot 환경과 기초 / 기존 Spring에서 무엇이 달라졌나

쿠우·2022년 11월 29일
0

- 빌드 관리와 구성 라이브러리

그래들에서 부트에 관해 빌드 관리할 때, 부트에 어떤것이 있나 보면 톰캣이 내장 되어있다.
스프링 부트에서는 스프링코어에 관련된 것들을 다 땡겨 쓴다.

log관련해서는 두 라이브러리 많이 쓴다. (logback / slf4j)

테스트는 Junit5


- 웹개발 기초

시작 페이지에 대해

스프링부트는 view 단 관련해서 resuources 폴더 안 static 폴더에
index.html 을 우선적으로 첫 페이지로 등록하고 없으면 templates에서 찾고 동작한다.

- Spring 동작 흐름

  1. URL이 입력 되면

  2. 내장된 톰켓 서버로 전달된 후

  3. 스프링컨테이너에서 관련 컨트롤러를 찾는다.(없으면 그냥 자원폴더에서 맞춤 경로로 찾는다.)

  4. 톰켓 서버를 지나 해당 view를 브라우저에 보여줌

- MVC와 템플릿 엔진 방식

  • MVC는 기존 배웠던 model(영속적) - Controller(비즈니스) - view(표현)
  • 템플릿 엔진은 전달 받은 값에 따라 변환 처리 되도록 함

흐름

  1. 웹브라우저 (URL에 쿼리스트링으로 해당 값 전송)
  2. 내장 톰캣서버
  3. (스프링컨테이너) helloController의 return hello-template +model값 전달
  4. (스프링컨테이너)hello-template.html 에서 model값에 맞춰 표현
  5. 톰캣 서버 지나서 브라우저에서 표현

- API 방식

템플릿 엔진 방식과의 차이점


@ResponseBody 어노테이션이 추가 되었다.
템플릿 엔진 방식은 html코드를 바탕으로 값을 받아 내보내는데
API방식은 문자열 그대로 보낸다 이런 차이점을 가짐

따라서 API방식 사용법은

주로 객체 등 정보를 JSON같은 방식으로 문자 데이터를 보낼 때 이용(Spring에서는 기본이 json)

API 동작흐름

  1. 웹브라우저
  2. 내장 톰켓 서버
  3. (스프링 컨테이너) helloController에서 @ResponseBody
  4. viewResolver가 아닌 HttpMessageConverter가 반응. 반환된 정보가 객체면 Json 단순 문자면 String Converter가 반응
  5. 내장 톰켓 서버
  6. 웹브라우저가 정보를 JSON 또는 String으로 표현

Spring과 Spring boot

https://incomeplus.tistory.com/344 이 블로그 글이 감사하게도 이해가 쉽게 아주 정리가 잘되어있습니다.

  • 기존 Spring 의 구성

  • Spring boot = 기존 Spring 의 구성 + α
    α =아래 사진 (더 많은 기능이 있지만 라이브러리에서 확인한 것들만 요약)

결론적으로

위에 추가된 라이브러리나 기능을 통하여

  • Spring Boot는 Spring 프레임워크의 기능을 더 쉽게 사용할 수 있도록 도와준다.
  • 디펜던시 관리 및 설정 자동화 기능을 제공하여 개발자의 시간 및 노력을 줄일 수 있다.
  • 스프링 기반의 어플리케이션을 빠르게 개발할 수 있도록 해준다.
  • 자동 설정 기능을 제공하여 스프링 기반의 어플리케이션을 쉽게 설정할 수 있다.
  • 스프링 기반의 어플리케이션을 통합 개발 환경에서 개발할 수 있다.
  • 스프링 기반의 어플리케이션의 성능을 최적화할 수 있는 도구들을 제공한다.

따라서 Spring boot 는 Spring 기반의 프레임워크를 사용할 때 개발자가 기능 개발에 더 집중 할 수 있게 도와준다.

profile
일단 흐자

0개의 댓글