
application-prod.properties는 보통 Spring Boot 애플리케이션에서 "prod" (production) 프로파일용으로 사용하는 설정 파일입니다. 아래에 핵심 개념과 사용법, 주의사항을 정리합니다. 무엇인가 - 파일명 규칙: application-{profile}.properties 형태의 프로파일 전용 설정 파일 중 하나로, 여기서 {profile}이 "prod"인 경우입니다. - 목적: 운영(프로덕션) 환경에서만 적용할 설정(예: DB 접속 정보, 로깅 레벨, 캐시/연결 풀 설정 등)을 분리해 관리하기 위함입니다. 동작 방식(요약) - Spring Boot는 활성 프로파일(spring.profiles.active)에 따라 application.properties 외에 application-{profile}.properties 파일을 추가로 로드합니다. - 예: spring.profiles.active=prod로 설정하면 application-prod.properties가 로드되어 일반 application.properties의 설정을 덮어쓸 수 있습니다. - 활성화 방법: application.properties에 spring.profiles.active=prod, 또는 JVM 옵션/커맨드라인(--spring.profiles.active=prod), 환경변수, 또는 스프링 코드에서 설정 가능. 파일 위치(기본 검색 경로) Spring Boot의 기본 검색 우선순위(파일 시스템과 클래스패스 기준, 위에서 아래로 우선 적용): 1. 명령행 인수 2. JAVA 시스템 프로퍼티 3. OS 환경변수 4. ./config/ (jar 실행 디렉터리 하위의 config 폴더) 의 application-*.properties 5. 실행 디렉터리(같은 폴더)의 application-*.properties 6. classpath:/config/ 의 application-*.properties 7. classpath:/ 의 application-*.properties (참고: 세부 버전마다 약간의 차이가 있을 수 있음) 우선순위(설정 소스 간) - 일반적으로 command-line > env vars > 외부 application-{profile}.properties > 내부(classpath) application-{profile}.properties > application.properties 순으로 덮어씌워집니다. 예시 내용 - application-prod.properties에 들어갈 항목 예: spring.datasource.url=jdbc:mysql://prod-db:3306/app spring.datasource.username=app_user spring.datasource.password=secret (비밀값은 파일에 직접 두지 않는 것이 권장) server.port=8080 logging.level.root=INFO management.endpoints.web.exposure.include=health,info 보안·운영상 주의사항 - 비밀번호·시크릿을 코드 레포에 평문으로 저장하지 마세요. 대안: 환경변수, 외부 시크릿 매니저(HashiCorp Vault, AWS Secrets Manager 등), Kubernetes Secret, 암호화된 설정 등. - 프로덕션 전용 설정은 테스트/개발 설정과 분리해 실수로 잘못된 프로파일로 운영되는 일을 방지하세요. - 배포 자동화(CI/CD)에서 프로파일 활성화와 비밀 관리 방식을 명확히 하세요. 대체 형식 및 고급 - YAML 사용 가능: application-prod.yml 형태로 동일 목적 사용. - spring.profiles.include로 프로파일을 포함하거나 spring.profiles.active로 활성화 가능. - 프로파일별 프로퍼티는 @Profile 애노테이션이나 조건부 빈 생성에도 사용됩니다. 요약 - application-prod.properties는 Spring Boot에서 "prod" 프로파일을 위해 사용되는 설정 파일로, 운영 환경에 특화된 설정을 정의하고 기본 application.properties를 덮어쓰도록 설계되어 있습니다. 프로파일 활성화 방식과 우선순위를 이해하고, 시크릿은 안전한 방법으로 관리하세요.