Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

spring boot web starter 정리 #12

Open
secret-papa opened this issue Jul 20, 2024 · 0 comments
Open

spring boot web starter 정리 #12

secret-papa opened this issue Jul 20, 2024 · 0 comments

Comments

@secret-papa
Copy link
Owner

secret-papa commented Jul 20, 2024

Spring boot Starter Web

웹 개발을 위한 스타터 패키지로 Tomcat, http에 필요한 모든 도구 제공(Spring MVC), JSON을 Java 객체로 제공하거나 Java객체를 JSON 객체로 변환하는 JSON 처리(Jackson)을 제공한다.

Auto configuration을 제공하여 개발자가 별도의 설정 없이도 web 개발을 진행할 수 있다

——
Spring MVC
Spring boot starter web은 http 통신에 필요한 모든 기능을 Spring MVC를 통해 제공한다.
Spring MVC는 Servlet API 기반으로 동작하는 Framework로 모든 요청은 DispatcherServlet 거친다.
DispatchServlet은 HandlerMapping과 ViewResolver를 통해 요청을 처리하고 응답을 생성하며 view를 처리한다.

HandlerMapping은 요청을 처리할 적절한 Controller를 찾는 역할을 하며, Controller는 클라이언트의 요청을 처리하고 응답을 반환하는 역할을 한다.
Controller는 일반적으로 View 이름과 Model 객체를 담고 있는 ModelAndView 객체를 반환하며 DispatcherSevelt은 이 정보를 사용하여 HTTP 응답을 생성한다.
ViewResolver는 Controller가 반환한 View 이름을 실제 뷰로 변환하는 역할을 하며 View는 최종적으로 클라이언트에게 반환될 응답을 랜더링한다.

Request -> DispatchServlet -> HandlerMapping -> Controller -> 처리 -> Model -> DispatcherSevlet -> Response

——
Spring Web

  1. Web Application Context: IoC container를 확장하여 Web Application에 특화된 기능 제공
  2. Multipart File Upload
  3. Web Utility Classes: 웹 개발에 유용한 유틸 클래스 제공
  4. HTTP 요청 및 응답 핸들링: HTTP 요청을 JAVA 객체로 변환 그 반대도 가능
  5. Web Client: 비동기, 논블로킹 웹 클라이언트, RESTful 웹 서비스를 호출하는 데 사용된느데 이는 RestTemplate의 대체제로 Reactive Programming 모델을 따른다.

Spring Web은 일반적으로 Spring MVC및 Spring WebFlux와 함께 사용한다.

——
내장형 Tomcat
Tomcat은 Java 웹 서버 (Servlet Container)중 하나이며 웹 서버의 역할과 Java Application 실행 환경을 제공한다.

구동
SpringApplication.run()을 호출하여 애플리케이션을 부트스트랩한다.
——

Jackson
Java객체를 JSON로 변환하거나 JSON를 Java 객체로 변환할 수 있게 만들어주는 라이브러리

Refs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant