Stay Hungry Stay Foolish

자바/스프링

[스프링] 프로필(Profile)이란?

dev스카이 2025. 7. 8. 09:44

Profile

Spring Boot에서 프로필은 실행 환경을 구분하기 위한 태그 같은 개념이다. 대표적으로 개발(dev)/테스트(test)/운영(prod) 환경마다 DB 접속 정보, 로깅 레벨, 외부 API 키, 캐시 및 보안 설정 등이 달라지는데, 코드를 건드리지 않고 설정 파일만 바꿔 끼울 수 있게 해 주는 기능이다.

 

프로필용 설정 파일("프로필 파일") 구조

파일 이름 when load 역할
application.properties 또는 .yml 항상 로드되는 공통 설정 JPA, Flyway 같은 공통 옵션
application-dev.properties dev 프로필이 활성화됐을 때만 H2 메모리 DB, 디버그 로그
application-prod.yml prod 프로필이 활성화됐을 때만 MySQL 접속 정보, 로깅 최소화

 

즉, 프로필 파일이란 별도의 파일 형식이 아니라 application-<profile>.properties/.yml로 끝나는 설정 파일을 가리키는 말이다.

 

프로필 활성화 방법

1. 환경 변수

SPRING_PROFILES_ACTIVE=dev ./gradlew bootRun

 

2. JVM 옵션

java -jar app.jar -Dspring.profiles.active=prod

 

3. application.properties 안에서 지정 (잘 쓰진 않음)

spring.profiles.active=dev

 

이렇게 하면 공통 파일 + 지정한 프로필 파일의 내용을 합쳐서 애플리케이션이 기동된다.

 

왜 써야 할까?

  • 환경별 설정 분리 → 실수로 운영 DB에 접속하는 사고 예방
  • 민감 정보 관리 → 운영 비밀번호를 Git에 커밋하지 않아도 됨
  • 배포 자동화 →  CI/CD 파이프라인에서 SPRING_PROFILES_ACTIVE=prod 만 주면 끝

 

📌 정리

  • 프로필 파일 = application-<profile>.properties 또는 .yml
  • Spring Boot는 실행 시 공통 + 활성 프로필 파일을 합쳐서 로드
  • SPRING_PROFILES_ACTIVE로 손쉽게 전환