Study/spring

[Java] spring-boot-starter-web 라이브러리의 역할

 

spring-boot-starter-web은 스프링 부트에서 많이 사용하는 라이브러리입니다.

이 라이브러리의 의미와 역할에 대해 정리해보았습니다.

 

spring-boot-starter-web이란?

spring-boot-starter-web은 웹 요청을 처리하기 위한 의존성이 포함되어있는 라이브러리입니다.

내부에는 아래 라이브러리들이 포함되어있습니다.

  • spring-web
  • spring-webmvc
  • spring-boot-starter
  • spring-boot-starter-tomcat
  • spring-boot-starter-json

 

이 라이브러리의 하위에 jackson, spring-core, spring-bean 등 많은 의존성들이 포함되어있어서 수많은 라이브러리를 가져올 필요 없이 spring-boot-starter-web 하나만 쓰면 하위의 기능들을 모두 사용할 수 있게 됩니다.

 

 

spring-boot-starter-web의 역할

spring-boot-starter-web은 웹 요청을 처리하기 위해 사용하는데, 구체적으로 어떤 역할을 하는지 살펴보겠습니다.

 

 

 

 

spring-web

스프링에서 웹 요청을 처리하기 위한 라이브러리입니다.

  • GET, POST 등의 요청을 받을 수 있게 하는 @GetMapping, @PostMapping이나 헤더, 바디 값을 받을 수 있게하는 @RequestHeader, @RequestBody와 같이 웹 요청을 처리할 수 있는 어노테이션들이 포함되어 있습니다.
  • Multipart 요청을 처리할 수 있는 MultipartFile 클래스를 제공합니다.
  • RestTemplate같은 HTTP 클라이언트 클래스가 포함되어 있어서 스프링 서버를 통해 HTTP 요청을 보낼 수 있습니다.
  • @ExceptionHandler나 @ControllerAdvice로 요청 처리 도중에 발생하는 예외를 잡아 적절한 응답값을 내보낼 수 있습니다.

 

spring-webmvc

MVC(Model-View-Controller) 기능을 처리하기 위한 라이브러리입니다.

  • DispatcherServlet을 통해 HTTP 요청을 받아서 적절한 컨트롤러로 매핑시켜주고, 응답값을 클라이언트에게 반환할 수 있습니다.
  • Model 객체를 통해 뷰에 데이터를 전달할 수 있습니다.
  • ViewResolver 객체를 통해 컨트롤러가 반환한 값으로 뷰 템플릿을 찾아서 렌더링할 수 있습니다.

 

spring-boot-starter-tomcat

스프링 부트에서 사용하는 톰캣 웹서버와 관련된 라이브러리입니다.

  • 이 라이브러리가 있어야 스프링 부트에서 톰캣 웹서버를 사용할 수 있습니다. 만약 tomcat이 아닌 다른 웹서버를 사용하고싶다면 spring-boot-starter-web에서 tomcat 라이브러리를 제외해야 합니다.
  • 스프링 프로젝트와 연결할 포트(ex. 8080)를 설정할 수 있습니다.
  • 스프링에서 웹소켓을 사용할 수 있습니다(spring-boot-starter-websocket 필요).

 

spring-boot-starter-json

Json과 관련된 작업을 처리하는 라이브러리입니다.

  • @JsonIgnore 어노테이션으로 특정 필드를 응답값에서 제외할 수 있습니다.
  • json 문자열을 Json 객체로 변환할 수 있습니다.
  • 자바 객체를 Json으로 변환할 수 있습니다.
  • Json을 자바 객체로 변환할 수 있습니다.