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로 손쉽게 전환
'자바 > 스프링' 카테고리의 다른 글
[스프링] @RequestParam 어노테이션 (0) | 2025.07.03 |
---|---|
[스프링] 요청 매핑 어노테이션 (0) | 2025.07.03 |
[스프링] @ResponseBody, ResponseEntity (1) | 2025.07.03 |
[스프링] application.properties 파일 (2) | 2025.07.02 |
[스프링 프레임워크] 기본 개념 정리 1 (22) | 2023.10.18 |