[Day 26 | Spring] Spring Boot 시작하기

y♡ding·2024년 11월 18일

데브코스 TIL - Spring

목록 보기
7/46

Spring Boot

시작하기

Spring Boot는 Spring Framework를 기반으로 한 어플리케이션 프레임워크로, 개발자가 최소한의 설정만으로 애플리케이션을 빠르게 개발할 수 있도록 도와줍니다. Spring Boot를 사용하면 자동 설정 기능, 내장 서버 지원, 종속성 관리 등으로 인해 복잡한 설정 없이 개발을 시작할 수 있습니다.

핵심 구성 요소 및 특징

  1. 자동 설정 (Auto Configuration)
    @SpringBootApplication 어노테이션을 사용하면 Spring Boot가 자동으로 애플리케이션의 설정을 구성합니다.

  2. 독립 실행형 어플리케이션
    내장된 Tomcat, Jetty, 또는 Undertow 서버를 제공하여 별도의 WAS(Web Application Server)를 설정할 필요가 없습니다.

  3. SpringApplication 클래스
    Spring Boot 애플리케이션의 시작점이며, SpringApplication.run() 메서드를 통해 애플리케이션 실행을 시작합니다.


코드 설명

기본 Spring Boot 애플리케이션

package org.example.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication          // 1. Spring Boot 애플리케이션 시작점
public class Boot01Application {

    public static void main(String[] args) {
        // Spring Boot 애플리케이션 시작
        SpringApplication.run(Boot01Application.class, args);
    }
}
  • @SpringBootApplication:

    • 애플리케이션의 시작 클래스에 선언하며, 내부적으로 다음 3개의 기능을 결합합니다:
      1. @SpringBootConfiguration: Spring의 구성 클래스로 동작.
      2. @EnableAutoConfiguration: 필요한 설정을 자동으로 구성.
      3. @ComponentScan: 특정 패키지를 스캔하여 빈(Bean)을 자동 등록.
  • SpringApplication.run(Boot01Application.class, args):

    • Spring Boot 애플리케이션 실행을 시작합니다.

다양한 방식으로 Spring Boot 실행

Spring Boot 애플리케이션은 여러 방식으로 실행될 수 있습니다. 아래는 다양한 실행 방법입니다.

package org.example.boot;

import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;

@SpringBootApplication
public class Boot01Application {

    public static void main(String[] args) {
        // Spring Boot 시작

        // 1. 간단한 실행
        SpringApplication.run(Boot01Application.class, args);
        
        /*
        // 2. SpringApplication 객체 사용
        SpringApplication app = new SpringApplication(Boot01Application.class);
        // 시작 시 환경 설정
        app.setBannerMode(Banner.Mode.OFF);   // 배너 출력 OFF
        app.run(args);
        */
        
        // 3. SpringApplicationBuilder 사용
        new SpringApplicationBuilder()
                .sources(Boot01Application.class)  // 소스 클래스 설정
                .bannerMode(Banner.Mode.OFF)       // 배너 출력 OFF
                .run(args);
    }
}

1. 기본 실행

  • 가장 간단한 방식으로 SpringApplication.run()을 호출합니다.
  • 일반적인 개발에서 주로 사용됩니다.

2. SpringApplication 객체 사용

  • SpringApplication 객체를 생성하여 실행 시 추가적인 설정을 커스터마이즈할 수 있습니다.
  • 예: 배너 비활성화(Banner.Mode.OFF).

3. SpringApplicationBuilder 사용

  • 체이닝 스타일로 구성할 수 있으며, 더 복잡한 설정을 제공하는 경우 유용합니다.

제작 가능한 어플리케이션 종류

  1. Windows Application

    • CUI (Character User Interface): 콘솔 기반 애플리케이션.
    • GUI (Graphical User Interface): 데스크톱 애플리케이션.
    @SpringBootApplication
    public class MyApplication {
        public static void main(String[] args) {
            SpringApplication.run(MyApplication.class, args);
        }
    }
  2. Web Application

    • HTML 기반 Web Application
    • REST API Application
    @RestController // RESTful 웹 컨트롤러
    public class MyController {
        @GetMapping("/hello")
        public String hello() {
            return "Hello, World!";
        }
    }

주요 설정 옵션

배너(Banner) 출력

  • Spring Boot는 기본적으로 애플리케이션 실행 시 배너를 출력합니다.
  • 필요에 따라 배너를 끄거나 사용자 정의할 수 있습니다:
    • 배너 끄기: app.setBannerMode(Banner.Mode.OFF)
    • 사용자 정의 배너: banner.txt 파일을 resources 디렉토리에 추가.

실행 시 설정 추가

  • application.properties 또는 application.yml 파일에서 환경을 추가로 설정할 수 있습니다.
    예: 포트 변경, 프로파일 활성화 등.

Spring Boot를 활용하면 빠르고 효율적으로 어플리케이션을 개발할 수 있으며, 다양한 실행 방식과 커스터마이즈 옵션을 통해 확장 가능성을 제공합니다.

0개의 댓글