스택큐힙리스트

자바 스프링 개발 시작하기 - 10일차 스타터 & 프로파일로 미니 API 완성 본문

개발

자바 스프링 개발 시작하기 - 10일차 스타터 & 프로파일로 미니 API 완성

스택큐힙리스트 2025. 7. 17. 19:35
반응형

1. 왜 ‘스타터’와 ‘자동 설정’부터 배워야 할까?

  • Starter: spring-boot-starter-* 의존성 하나면 관련 라이브러리와 설정이 한꺼번에 준비됩니다.
  • Auto-Configuration: 클래스패스에 올라간 라이브러리를 스프링이 감지해, 빈·설정 파일을 자동으로 구성합니다. 덕분에 “프로젝트 생성 → 코딩 → 실행”까지 단 몇 분!
  • 이득: 설정 실수를 줄이고, 비즈니스 로직 개발에만 집중할 수 있습니다.

2. spring-boot-starter-web로 5분 만에 REST API 만들기

  1. 프로젝트 생성
    • Spring Initializr(https://start.spring.io)
    • Dependencies → Spring Web, Lombok 선택
    • Java 17, Gradle/Maven 선택 후 Generate
  2. Controller 추가
    @RestController
    @RequestMapping("/api")
    public class GreetingController {
    
        @GetMapping("/hello")
        public String hello() {
            return "Hello, Spring Boot!";
        }
    }
  3. 실행
    ./gradlew bootRun   # 또는 mvn spring-boot:run
    curl http://localhost:8080/api/hello

    결과
    : Hello, Spring Boot! — 첫 API 성공!

3. 프로파일(Profile)로 환경별 설정 분리하기

Dev·Test·Prod 환경마다 DB URL이나 로깅 레벨이 다를 때, spring.profiles.active만 바꿔서 배포합니다.

# application.yml
spring:
  profiles:
    active: dev     # 기본 프로파일

---

spring:
  config:
    activate:
      on-profile: dev
server:
  port: 8080
greeting: "Hello from DEV"

---

spring:
  config:
    activate:
      on-profile: prod
server:
  port: 80
greeting: "Hello from PROD"
 
  • 실행 시 프로파일 지정
java -jar demo.jar --spring.profiles.active=prod

4. 자동 설정 뜯어보기

  • @SpringBootApplication 안에는 @EnableAutoConfiguration이 포함돼 있습니다.
  • 스프링은 META-INF/spring.factories 파일을 읽어 조건에 맞는 @Configuration 클래스를 로딩하고, @ConditionalOn* 어노테이션으로 필요 여부를 판단합니다.
  • 필요 시 spring.autoconfigure.exclude로 특정 자동 설정을 끌 수도 있습니다.

5. 오늘의 핵심 정리

  • Starter + Auto-Config = 설정 지옥 탈출
  • Profile = 환경별 속성 분리, 실수 방지
  • 이제 당신만의 미니 REST API가 완성됐습니다!
반응형
Comments