Spring Boot

Yuno·2024년 8월 14일

JavaSpring

목록 보기
16/16

✏️ Spring Boot 란?

Spring 프레임워크를 기반으로 하는 Java 개발 플랫폼으로, 복잡한 설정 없이 빠르게 애플리케이션을 개발할 수 있도록 돕는 도구.
Spring Boot는 Spring의 다양한 기능을 제공하면서도 설정과 구성을 자동으로 처리하여 개발자의 편의를 극대화함


📌 Spring Boot의 주요 특징

  1. 자동 구성(Auto-Configuration)
  • Spring Boot는 애플리케이션의 클래스패스와 설정에 따라 자동으로 적절한 빈을 생성하고 설정함
  • @EnableAutoConfiguration 어노테이션을 통해 자동 구성을 활성화함. 보통 @SpringBootApplication 에 포함되어 사용됨
  1. 스타터 패키지(Starter Package)
  • 다양한 기능을 손쉽게 사용할 수 있도록 하는 종합적인 의존성 모음. 예를들어, spring-boot-starter-web 은 웹 애플리케이션 개발에 필요한 의존성을 포함
  • 각 스타터는 특정 기능을 위한 설정과 라이브러리를 포함하여 개발자가 복잡한 의존성 관리를 신경 쓰지 않도록 함
  1. 임베디드 서버(Embedded Server)
  • Spring Boot 는 Tomcat, Jetty, Undertow와 같은 임베디드 웹 서버를 지원함. 별도의 서버 설치 없이 애플리케이션을 실행할 수 있음
  • spring-boot-starter-web 을 사용하면 기본적으로 Tomcat이 포함되어 실행됨
  1. 외부 설정(Externalized Configuration)
  • application.properties 또는 application.yml 파일을 통해 애플리케이션의 설정을 외부화할 수 있음
  • 다양한 환경별 설정을 관리하기 용이함
  1. Production-Ready Features
  • Spring Boot는 애플리케이션의 모니터링 및 관리를 위한 다양한 기능을 제공함. 예를들어, /actuator 엔드포인트를 통해 애플리케이션의 상태를 확인하고 관리할 수 있음
  1. 개발 도구(Developer Tools)
  • spring-boot-devtools 를 사용하면 개발 중 자동으로 애플리케이션을 재시작하거나 핫스와핑(hot swapping) 기능을 제공하여 개발 효율성을 높임

📌 기본 구성 요소

  1. @SpringBootApplication
  • Spring Boot 애플리케이션의 핵심 어노테이션. @Configuration, @EnableAutoConfiguration, @ComponentScan 을 포함하여 애플리케이션의 기본 설정을 제공
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyApplication {
	public static void main(String[] args) {
    	SpringApplication.run(MyApplication.class, args)
    }
}
  1. application.properties, application.yml
  • 애플리케이션의 설정을 관리하는 파일입니다. 데이터베이스 연결, 서버 포트, 로깅 설정 등을 정의할 수 있음

application.properties

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=password

application.yml

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: root
    password: password
  1. 스타터(Starters)
  • Spring Boot 가 제공하는 스타터 패키지는 특정 기능을 쉽게 추가할 수 있도록 함. 예를들어, spring-boot-starter-web 은 웹 애플리케이션에 필요한 의존성을 포함
  1. @RestController
  • RESTful 웹 서비스를 구축할 때 사용하는 컨트롤러. @Controller@ResponseBody 의 조합으로, HTTP 요청을 처리하고 JSON 형식으로 응답을 반환
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class MyController {
	@GetMapping("/hello")
    public String hello() {
    	return "Hello, World!";
    }
}
  1. Actuator
  • Spring Boot의 Actuator는 애플리케이션의 상태를 모니터링하고 관리할 수 있는 엔드포인트를 제공. /actuator/health/actuator/info 를 통해 애플리케이션의 상태를 확인할 수 있음
management.endpoints.web.exposure.include=*
curl http://localhost:8080/actuator/health
profile
Hello World

0개의 댓글