[!주제] > - 부가적인 기능 활성화를 위한 스타터 사용 > - REST API 메서드를 노출하는 서비스를 구현하기 위한 스프링 웹 라이브러리 사용 > - 속성과 YAML 파일을 활용해 서비스 컨피규레이션 사용자 정의 > - 상태 점검 및 모니터링 기능 구성 > - 애플리케이션이 다른 모드에서 동작하도록 스프링 부트 프로파일 사용 > - 내장, 원격의 NoSQL DB와의 상호작용 위한 ORM기능 사용

스프링 부트 소개

스프링 부트는 표준 스프링 컨피규레이션과 가장 크게 다른 점은 간단하다. 이러한 간단함은 스타터와 관련이 있다.

스타터

프로젝트 의존성에 포함될 수 있는 artifact 해당 artifact의 역할은 기대하는 기능을 구현하기 위해 애플리케이션에 포함해야 하는 다른 의존성을 제공하여 즉시 사용할 수 있기에 별도의 설정은 필요 없다.

즉, 자동 컨피규레이션이 되어 스타터에 포함된 아티팩트는 기본 설정이 존재하며 속성, 다른 유형의 스타터로 쉽게 재정의할 수 있다.

예를 들어, spring-boot-starter-web을 포함하면 애플리케이션이 기본 웹 컨테이너를 내장해 기본 포트(8080)을 사용한다.

마이크로 서비스와 스프링 부트의 관계

spring-boot-starter-web을 통해 웹 컨테이너를 애플리케이션에 포함하게 된다. 반면에 표준 스프링 컨피규레이션에서는 애플리케이션에 웹 컨테이너를 포함하는 대신 애플리케이션을 WAR형태로 웹 컨테이너에 배포한다.

마이크로서비스에서는 다른 서비스와의 독립성이 중요하다. 다만, 표준 스프링 컨피규레이션으로 처리 시, 데이터베이스, 웹 컨테이너와 같은 공통의 자원들이 하나의 웹 컨테이너에 여러 WAR파일을 배포하게 되기에 좋지 않은 패턴이다.