개발
자바 스프링 개발 시작하기 - 10일차 스타터 & 프로파일로 미니 API 완성
스택큐힙리스트
2025. 7. 17. 19:35
반응형
1. 왜 ‘스타터’와 ‘자동 설정’부터 배워야 할까?
- Starter: spring-boot-starter-* 의존성 하나면 관련 라이브러리와 설정이 한꺼번에 준비됩니다.
- Auto-Configuration: 클래스패스에 올라간 라이브러리를 스프링이 감지해, 빈·설정 파일을 자동으로 구성합니다. 덕분에 “프로젝트 생성 → 코딩 → 실행”까지 단 몇 분!
- 이득: 설정 실수를 줄이고, 비즈니스 로직 개발에만 집중할 수 있습니다.
2. spring-boot-starter-web로 5분 만에 REST API 만들기
- 프로젝트 생성
- Spring Initializr(https://start.spring.io)
- Dependencies → Spring Web, Lombok 선택
- Java 17, Gradle/Maven 선택 후 Generate
- Controller 추가
@RestController @RequestMapping("/api") public class GreetingController { @GetMapping("/hello") public String hello() { return "Hello, Spring Boot!"; } } - 실행
./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가 완성됐습니다!
반응형