[Spring Boot] Spring Boot로 프로덕션 환경 배포 준비하기 - (1) Profile

2023. 9. 2. 18:40기술 창고/Spring

728x90
SMALL

이번에는 프로덕션 환경에서 사용 가능한 어플리케이션을 쉽게 만들어 배포할 수 있도록 하는 Spring Boot의 중요한 기능을 몇 가지 알아보겠습니다.

 

 

Profile 기능

첫 번째로 살펴볼 기능은 Profile을 사용하여 어플리케이션 설정을 관리하는 기능입니다.
어플리케이션에는 다양한 환경이 있습니다.
개발 환경, QA 환경, 스테이지 환경, 프로덕션 환경 등등.
동일한 어플리케이션의 다양한 환경에서는 다양한 설정이 필요합니다.
동일한 코드에서 다양한 환경에 대한 다양한 설정이 있어야 할 필요가 있죠.

다른 데이터베이스와 통신하거나 다른 웹 서비스를 호출할 수도 있습니다.
개발 환경은 개발 데이터베이스와 통신하고 테스트 환경은 테스트 데이터베이스와 통신하며, 프로덕션 환경은 프로덕션 데이터베이스와 통신합니다.
이것이 Profile의 개념이라고 볼 수 있습니다.

Profile을 통해 환경 별 설정을 제공할 수 있습니다.
즉, 다양한 환경에 맞는 설정을 관리해야 할 때마다 이러한 각 환경을 위한 별도의 Profile을 만들면 됩니다.
마치 인스타그램, 페이스북, 구글의 여러 부계정을 만드는 것처럼 말이죠.

간단하게 Profile 기능을 사용해보겠습니다.

 

현재 만들어놓은 프로젝트에 application.properties 파일이 있습니다.
이 application.properties 파일을 src/main/resources 경로 안에 있습니다.
application.properties 에는 로깅 레벨 수준을 정의하는 설정값이 존재합니다.

이것을 개발 환경에서는 debug 수준이 아니라 trace 수준으로 출력해보고자 합니다.
trace 수준을 더욱 많은 로깅 정보를 출력합니다.

프로덕션 환경에서는 info 수준으로 출력하려고 합니다.
모든 정보를 로깅하는 것이 아니라 중요한 정보만 로깅하려고 하는 것이죠.

 

application.properties 파일을 복사해서 같은 경로에 우선 개발 환경 파일로 application-dev.properties 명으로 붙여넣어줍니다.
로깅 설정을 말한 대로 trace 수준으로 변경합니다.

 

이번에는 프로덕션 환경용 파일을 만들어줍니다.
위의 과정과 동일하게 application.properties 파일을 복사해서 application-prod.properties 파일명으로 붙여넣어준 뒤, 로깅 레벨 수준을 info로 설정해줍니다.

현재 이 어플리케이션은 기본적으로 어떠한 Profile도 사용하고 있지 않습니다.
Profile을 사용하고 있지 않는다면 어플리케이션은 기본 application.properties에 설정된 기본 설정들을 사용하게 됩니다.
이제 준비는 되었으니 우선 프로덕션 Profile을 설정해보겠습니다.

 

 

기본 application.properties 파일에 들어가서 spring.profiles.active=prod라고 설정해줍니다.
특정 프로필을 설정하려면 application.properties에 있는 기본 설정값과 application-prod의 값을 함께 병합해야 합니다.
application-prod에서 어떤 것을 설정하든 해당 특정 프로필의 우선순위가 더 높습니다.
따라서 application-prod의 우선 순위가 높기 때문에 application-prod.properties 파일의 설정값들만 현재 출력되게 됩니다.

 

프로덕션 환경 설정 반영

 

 

이번에는 개발 환경 Profile을 설정해보겠습니다.

 

마찬가지입니다.
기본 application.properties 파일에 들어가서 spring.profiles.active=dev라고 설정해줍니다.
Profile을 설정했기 때문에 dev.properties 파일의 설정값들만 반영되어 출력되게 됩니다.

 

개발 환경 설정 반영

trace 수준은 더욱 자세한 로그 정보들을 보여주는 것이기 때문에 debug 수준, info 수준의 로깅 정보들도 같이 나오는 것입니다.

이제 이런 Profile 기능을 사용하여 테스트를 하거나, 프로덕션 환경, 개발 환경마다 각각의 설정값들을 수정하면서 적용시켜 개발을 진행할 수 있습니다.

 

 

 

+ 로깅 수준

추가적으로 이런 로깅 수준 설정들은 여러 가지가 있습니다.
(1) trace : 로그에 있는 하위 수준의 로깅 정보들을 포함하여 모든 정보들을 출력하는 설정.
(2) debug : info 수준보다 훨씬 더 많은 정보를 출력.
(3) info : 기본적인 로깅 수준으로서 로깅된 모든 정보를 출력.
(4) warning : error 수준보다 한 단계 위의 설정값이며, 조금 더 많은 정보를 출력하는 설정.
(5) error : 오류와 예외만 출력하는 설정.
(6) off : 전체 로깅을 끄는 설정.

이러한 다양한 로깅 수준을 대부분의 로깅 프레임워크에서 일반적으로 사용합니다.
환경에 따라 맞는 로깅 수준을 적용하고 Profile을 사용하면 로깅 정보를 빠르게 파악하는 데에 도움을 줄 수 있습니다.

728x90
반응형
LIST