반응형
해당 글에서는 Spring Boot 기반 로컬, QA, 운영 환경에서 각각 다른 환경파일을 사용하는 방법에 대해서 공유합니다.
1) 개발환경
분류 | 이름 | 버전 |
언어 | Java | 11 |
프레임워크 | Spring Boot | 2.7.12 |
프레임워크 | Spring Framework | 6.0.9 |
의존성 관리 | Gradle | 7.6.1 |
개발 툴 | IntelliJ IDEA | 2023.1 |
API 테스트 툴 | Postman |
2) application.properties 파일 설정
💡 application.properties 란?
- Spring Boot 애플리케이션의 구성 속성을 설정하는 데 사용되는 파일입니다.
- 이 파일은 애플리케이션의 클래스 경로에 위치하며, 키-값 쌍의 형식으로 구성됩니다. 이 파일을 사용하면 애플리케이션의 동작을 구성할 수 있습니다.
- 예를 들어, 데이터베이스 연결 정보, 로깅 설정, 서버 포트, 보안 구성 등을 지정할 수 있습니다.
# application.properties 파일
# Local (test-local), QA (test-qa), PROD (test-prd)
spring.profiles.active=test-local
💡 해당 properties 파일 내에서 spring.profiles.active 속성을 통해서 값을 지정하면 Spring Boot 애플리케이션의 프로파일을 활성하는 데 사용합니다.
💡 예를 들어 application-dev.properties 파일에 있는 속성을 application-prod.properties 파일에서 다르게 설정할 수 있습니다. 이를 통해 테스트와 프로덕션 환경에서 다른 구성을 사용할 수 있습니다.
💡 또한 properties 파일뿐만 아니라 yml 혹은 yaml 파일 형태로도 파일을 구성할 수 있습니다.
3) 각각 파일 별 yaml 파일 구성
💡 resources/config 디렉토리를 생성하고 로컬, QA, PRD 형태로 파일별로 yaml 파일을 구성하였습니다.
💡 환경파일은 아래의 환경에서 각각 필요에 따라 변경하기 쉽도록 구성한 환경 파일입니다.
파일명 | 분류 | 설명 |
application-test-local.yml | 로컬 환경 | 로컬 개발 환경에서 사용하는 환경파일을 관리하는 페이지입니다. |
application-test-qa.yml | QA 환경 | 운영 환경 이전의 QA 개발환경에서 사용하는 환경파일을 관리하는 페이지입니다. |
application-test-prd.yml | 운영 환경 | 운영 환경에서 사용하는 환경파일을 관리하는 페이지 입니다. |
💡 서버의 포트만 지정을 하는 yml 파일을 구성하였습니다.
# 프로젝트의 로컬 환경 파일입니다. : test-local
# Spring boot Server Configuration
server:
port: 8000
4) 서버 실행
1. 로컬 환경에서 로컬 파일을 참조하는 경우
# Local (test-local), QA (test-qa), PROD (test-prd)
spring.profiles.active=test-local
2. QA 환경에서 QA 파일을 참조하는 경우
# Local (test-local), QA (test-qa), PROD (test-prd)
spring.profiles.active=test-qa
5) 기타 참고사항
1. 여러 개의 파일을 참조 방법
💡 프로젝트 내에서 두 개의 yml 파일을 함께 불러오고 싶은 경우가 생길 수 있습니다.
💡 두 개의 yml 파일을 불러옵니다
spring.profiles.active=multiflex-local, multiflex-oauth
server.tomcat.basedir=.
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%{yyyy-MM-dd HH:mm:ss}t\t%s\t%r\t%{User-Agent}i\t%{Referer}i\t%a\t%b
💡 아래와 같이 두 개의 파일이 불러와짐을 확인하였습니다.
오늘도 감사합니다. 😀
반응형
'Java > 아키텍처 & 디자인 패턴' 카테고리의 다른 글
[Java] MacOS 환경에서 Java JDK 설정 및 변경하기 : homebrew, 다운로드 파일 (2) | 2023.06.28 |
---|---|
[Java] Gradle 버전 확인 및 변경 방법 (2) | 2023.06.27 |
[Java] 스레드(Thread) 이해하기 -1 : 구조, 상태, 예시 (0) | 2023.04.17 |
[Java/Library] Lombok 이해하고 적용하기 -2 : 심화 및 적용 (0) | 2023.03.27 |
[Java] RESTful API 설계 방법 -2 : 구성하기 (0) | 2023.03.26 |