[LG CNS AM Inspire Camp 1기] BE - SpringBoot 들어가기

이슬아·2025년 1월 23일

LG CNS AM Inspire Camp 1기

목록 보기
13/20

✏️ SpringBoot란

Spring Boot는 Spring Framework를 기반으로 한 자바 애플리케이션 개발을 간편하게 만들어주는 도구이다 .

기존의 Spring Framework를 사용할 때, 개발자는 설정(XML 또는 Java 기반)을 직접 작성해야 하고, 복잡한 의존성 관리나 환경 설정이 필요했다.
Spring Boot는 이러한 번거로움을 해결하기 위해 등장한 "Spring의 간소화된 확장 버전"이라고 할 수 있다.

SpringBoot 특징

1️⃣ 자동 설정 (@SpringBootApplication)

@SpringBootApplication은 Spring Boot 애플리케이션을 설정하는 기본 어노테이션으로 내부적으로 아래 세 가지 어노테이션을 포함하고 있다.

  • @SpringBootConfiguration: Spring의 설정 클래스를 정의
  • @EnableAutoConfiguration: Spring Boot의 자동 설정 기능을 활성화
  • @ComponentScan: 현재 패키지와 하위 패키지에서 Spring 빈(Bean)을 검색

이를 통해 추가 설정 없이 Spring Boot의 기본 기능을 바로 사용할 수 있다.

✔️ @Configuration

  • Spring에서 설정 클래스임을 나타내는 어노테이션
  • 자바 기반 설정을 정의하는 데 사용되며, XML 설정을 대체한다
  • 이 어노테이션이 붙은 클래스 내부에서 Spring 빈(Bean)을 정의할 수 있다.

Bean 등록: 메서드에 @Bean을 붙이면 해당 객체가 Spring 컨테이너에 빈으로 등록됨

@Configuration
public class AppConfig {

    @Bean
    public MyService myService() {
        return new MyService();
    }
}

✔️ @EnableAutoConfiguration

  • Spring Boot의 자동 설정을 활성화
  • 의존성에 따라 필요한 설정을 자동으로 구성
  • 예) spring-boot-starter-web을 추가하면 Tomcat 내장 서버와 Spring MVC가 자동으로 설정됨

    spring-boot-starter-web은 Spring MVC와 관련된 라이브러리(Tomcat, Spring Web, Jackson 등)를 포함하고 있다.
    @EnableAutoConfiguration이 없다면 Spring Boot의 자동 설정 기능이 동작하지 않으므로 Spring MVC 설정과 내장 서버 구성을 직접 해야 한다.

✔️ @ComponentScan

  • Spring 컨테이너가 Bean으로 등록할 클래스를 스캔하도록 지시하는 어노테이션
  • 지정한 패키지와 하위 패키지를 스캔하여 @Component, @Service, @Repository, @Controller 등이 붙은 클래스를 찾아 자동으로 Spring Bean으로 등록한다
  • 외부 라이브러리의 클래스는 @Component 같은 Spring 어노테이션이 없으므로, 자동으로 스캔되지 않기 때문에 @Configuration 클래스에서 직접 Bean으로 등록한다

2️⃣ 스타터 의존성 (dependencies)

스타터 의존성은 특정 기능을 간편하게 구현할 수 있도록 관련 라이브러리를 묶어 제공하는 패키지이다.

  • spring-boot-starter-web: RESTful 웹 서비스와 MVC 구현에 필요한 의존성
  • spring-boot-devtools: 코드 변경 시 애플리케이션 자동 재시작, 리소스 변경 시 브라우저 라이브 리로딩 등 개발 편의성 제공
  • spring-boot-starter-test: 테스트 작성에 필요한 JUnit, Mockito 등의 의존성
  • junit-platform-launcher: 테스트 실행을 위한 런처

3️⃣ 독립 실행

Spring Boot 애플리케이션은 내장 웹 서버(Tomcat, Jetty 등)를 포함하고 있어 별도의 외부 WAS 없이 실행 가능하며 JAR 파일로 패키징되어 배포와 실행이 간편하다.

4️⃣ 프로덕션 준비 기능 (Actuator)

애플리케이션 모니터링 및 관리를 지원하는 도구이다.

  • CPU, 메모리 사용량, HTTP 요청 상태 등의 메트릭스 제공.
  • /actuator 경로를 통해 관리와 모니터링 데이터 제공.

5️⃣ 간편한 설정

Spring Boot는 application.propertiesapplication.yml 파일을 통해 환경 설정을 간편하게 구성.

예) 내장 서버 포트를 변경: server.port=8081

6️⃣ CLI 지원

Spring Boot CLI(Command Line Interface)는 명령줄에서 애플리케이션을 실행하거나 테스트할 수 있고, Groovy 스크립트를 활용해 빠르게 애플리케이션 작성 가능하다.

0개의 댓글