성장에 목마른 코린이

[Java] Spring과 Spring Boot의 차이, Spring Boot Starter 본문

Java/Spring Boot

[Java] Spring과 Spring Boot의 차이, Spring Boot Starter

성장하는 코린이 2022. 10. 21. 14:35
728x90

Spring Framework는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 Spring이라고도 불립니다.

동적인 웹사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있습니다.

대한민국 공공기관의 웹서비스 개발 시 사용을 권장하고 있는 전자정부 표준 프레임워크의 기반 기술로서 쓰이고 있습니다.

 

Spring의 장점

1. 경량 컨테이너

2. IoC(Invertion of Control: 제어 역행)

3. DI(Dependency Injection: 의존성 주입)

4. AOP(Aspect-Oriented Programming: 관점지향 프로그래밍)

 

Spring Boot

Spring Framework는 기능이 많은 만큼 환경설정이 복잡한 편입니다.

이에 어려움을 느끼는 사용자들을 위해 나온 것이 스프링 부트입니다.

Spring Boot는 Spring Framework를 사용하기 위한 설정의 많은 부분을 자동화하여 편하게 스프링을 활용할 수 있게 돕습니다.

Spring Boot starter dependency만 추가해주면 바로 API를 정의하고, 내장된 Tomcat이나 Jetty로 웹 서버를 실행할 수 있습니다.

심지어 Spring 홈페이지의 Initializer를 사용하면 바로 실행 가능한 코드를 만들어줍니다.

실행환경이나 의존성 관리등의 인프라 관련등은 신경쓸 필요 없이 바로 코딩을 시작하면 됩니다.

 

Spring과 Spring Boot의 차이점

1. Embed Tomcat을 사용하기 때문에, Spring Boot 내부에 Tomcat이 포함되어있습니다.

따로 Tomcat을 설치하거나 매번 버전을 관리해 주어야 하는 수고로움을 덜어줍니다.

2. starter를 통한 dependency 자동화:

과거 Spring Framework에서는 각각의 dependency들의 호환되는 버전을 일일이 맞추어 주어야 했고,

때문에 하나의 버전을 올리고자 하면 다른 dependency에 까지 영향을 미쳐 version 관리에 어려움이 많았다.

하지만, 이제 starter가 대부분의 dependency를 관리해주기 때문에 이러한 걱정을 많이 덜게 되었다.

3. XML설정을 하지 않아도 된다.

4. jar file를 이용해 자바 옵션만으로도 손쉽게 배포가 가능합니다.

Spring Actuator를 이용한 애플리케이션의 모니터링과 관리를 제공합니다.

 

Spring Boot starter

starter란 특정 목정을 달성하기 위한 의존성 그룹이라고 생각하면 이해하기 쉽다.

starter는 마치 npm처럼 간편하게 dependency를 제공해주는데,

만약 우리가 JPA가 필요하다면 pom.xml(메이븐)이나 build.gradle(그레들)에

'spring-boot-starter-data-jpa' 만 추가해주면 spring boot가 그에 필요한 라이브러리들을 알아서 받아온다.

Comments