스프링 부트의 특징 - with 스프링

휘Bin·2023년 6월 14일
0
post-thumbnail

의존성 관리

스프링 프레임워크는 개발에 필요한 각 모듈의 의존성을 직접 설정해야 한다. 그리고 호환되는 버전을 명시해야 정상적으로 동작한다.

하지만 스프링 부트에서는 'spring-boot-starter'라는 의존성을 제공한다. 여러 종류, 그리고 각 라이브러리의 기능과 관련해 자주 사용되고 서로 호환되는 버전의 머듈 조합을 제공한다. 이를 통해 개발자는 라이브러리 호환 문제를 해결할 수 있는 것이다.

  • 많이 사용되는 spring-boot-starter 라이브러리를 몇 가지 소개하겠다.
  1. spring-boot-starter-web : 스프링 MVC를 사용하는 RESTful 애플리케이션을 만들기 위한 의존성이다. 기본적으로 내장 톰캣이 포함되어 있어 jar 형식으로 실행 가능하다.
  2. spring-boot-starter-test : JUnit Jupiter, Mockito 등의 테스토용 라이브러리를 포함한다.
  3. spring-boot-starter-jdbc : HikariCP 커넥션 풀을 활용한 JDBC 기능을 제공한다.
  4. spring-boot-sstarter-security : 스프링 시큐리티 기능을 제공한다.
  5. spring-boot-starter-data-jpa : 하이버네이트를 활용한 JPA 기능을 제공
  6. spring-boot-starter-cache : 스프링 프레임워크의 캐시 기능을 제공
  • spring-boot-starter를 이용해 여러 라이브러리를 함께 사용하면 의존성이 겹칠 수 있다. 이로 인해 버전 충돌이 발생할 수 있는데, 의존성 조합 충돌 문제가 없도록 'spring-boot-starter-parent'가 검증된 조합을 제공한다.

자동설정

스프링 부트는 스프링 프레임워크의 기능을 사용학 위해 자동 설정(Auto Configuration)을 지원한다. 자동 설정은 애플리케이션에 추가된 라이브러리를 실행하는 데 필요한 호나경 설정을 알아서 찾아준다. 즉, 애플리케이션을 개발하는 데 필요한 의존성을 추가하면 프레임워크가 이를 자동으로 관리해준다.

예로 들면, @SrpingBootApplication 어노테이션이 있다. 이 어노테이션은 여러 어노테이션을 합쳐 놓은 인터페이스이다.
스프링 부트 애플리케이션이 실행되면 @ComponentScan 어노테이션이 @Component 시리즈 어노테이션이 붙은 크랠스를 발견해 빈(bean)에 등록한다. 이후 @EnableAutoConfiguration 어노테이션을 통해 'spring-boot-autoconfigure' 패키지 안에 spring.factories 파일을 추가해 다양한 자동 설정이 일부 조건을 거쳐 적용된다.
이 설정은 각 파일에 설정된 @Conditional의 조건을 충족할 경우 빈에 등록되고 애플리케이션에 자동 반영된다.

내장 WAS

스프링 부투의 각 웹 애플리케이션에는 내장 WAS(Web Applicaiton Server)가 존재한다.
스프링 부투의 자동 설정 기능은 톰캣에도 적용 되어 설정 없이도 톰캣을 실행할 수 있다.
물론, 필요에 따라 톰캣이 아닌 다른 웹 서버(Jetty, Undertow 등)로 대체할 수도 있다.

모니터링

개발이 끝나고 서비스를 운영하는 시기가 오면 해당 시스템이 사용하는 스레드, 메모리, 세션 등의 주요 요소들을 모니터링해야 한다. 스프링 부트에는 스프링 부트 액추에이터(Spring Boot Actuator)라는 지체 모니터링 도구가 있다. 이는 다른 글에서 조금 더 자세히 다뤄보겠다!

profile
One-step, one-step, steadily growing developer

0개의 댓글