Spring Boot

김수민·2023년 4월 4일
0

백엔드 부트캠프

목록 보기
49/52

Spring Boot를 사용해야하는 이유

  • XML 기반의 복잡한 설계 방식 지양
  • 의존 라이브러리의 자동 관리
  • 애플리케이션 설정의 자동 구성
  • 프로덕션급 애플리케이션의 손쉬운 빌드
  • 내장된 WAS를 통한 손쉬운 배포

XML 기반의 복잡한 설계 방식 지양

Spring Boot 이전의 Spring 애플리케이션 개발을 위한 설정은 굉장히 복잡하였음. 그러나 Spring Boot로 인해 개발자는 Spring의 복잡한 설정에 대한 어려움으로부터 벗어날 수 있게 되었음.

의존 라이브러리의 자동 관리

Spring Boot 이전에는 애플리케이션에서 필요한 라이브러리를 사용하기 위해서는 필요한 라이브러리의 이름과 버전을 일일이 추가해주어야했음. 이로 인해 라이브러리 간의 버전 불일치로 인한 빌드 및 실행 오류 역시 빈번하게 발생하였음. 그러나 Srping Boot의 starter 모듈 구성 기능을 통해 의존 라이브러리를 수동으로 설정해야 하는 불편함이 사라짐.

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    implementation 'com.h2database:h2'
}

위의 코드는 Spring Boot에서 웹 애플리케이션을 개발하기 위한 기본적인 의존 라이브러리 설정의 예. 코드에서 보다시피 단 네 줄의 설정만으로 데이터베이스와의 연동은 물론 애플리케이션에 대한 모든 테스트까지 진행할 수 있음.

애플리케이션 설정의 자동 구성

Spring Boot는 스타터 모듈을 통해 설치되는 의존 라이브러리를 기반으로 애플리케이션의 설정을 자동으로 구성함.

  • "implementation 'org.springframework.boot:spring-boot-starter-web'"와 같은 스타터가 존재한다면 애플리케이션이 웹 애플리케이션이라고 추측한 뒤 웹 애플리케이션을 띄울 서블릿 컨테이너(디폴트: Tomcat) 설정을 자동으로 구성함
  • 'implementation 'org.srpingframework.boot:spring-boot-starter-jdbc'"와 같은 스타터가 존재한다면 애플리케이션에 데이터베이스 연결이 필요하다고 추측한 뒤, JDBC 설정을 자동으로 구성함.
    이러한 자동 구성을 활성화하기 위해서는 아래와 같은 애너테이션을 코드에 추가해두는 것 뿐임.
@SpringBootApplication  // (1)
public class SampleApplication {
    public static void main(String[] args) {
        SpringApplication.run(SampleApplication.class, args);
    }
}

(1)과 같이 @SpringBootApplication 애너테이션을 Spring 애플리케이션 코드에 추가해주면 Spring Boot에서 자동 구성 설정을 활성화해줌.

프로덕션급 애플리케이션의 손쉬운 빌드

Spring Boot을 사용하면 개발한 애플리케이션 구현 코드를 손쉽게 구현하여 직접 빌드 결과물을 War 파일 형태로 WAS(Web Application Server)에 올릴 필요가 없음.

WAS(Web Application Server)란, 구현된 코드를 빌드해서 나온 결과물을 실제 웹 애플리케이션으로 실행되게 해주는 서버

내장된 WAS를 통한 손쉬운 배포

Spring Boot는 Apache Tomcat이라는 WAS를 내장하고 있기때문에 별도의 WAS를 구축할 필요가 없으며 Spring Boot을 통해 빌드된 jar 파일을 이용해서 명령어 한 줄(java -ar <jar 파일명>.jar)만 입력해주면 서비스 가능한 웹 애플리케이션을 실행할 수 있음.

0개의 댓글