[Springboot] Spring Profiles

Jimin·2024년 5월 28일
0

SpringBoot 정리

목록 보기
2/6

Profile이란?

서버 개발을 하기 위한 단계

  1. Local: 컴퓨터에서 개발을 하려면 각 개발자 PC에 개발 및 테스트환경이 셋업되어야 한다.
    이를 local 개발 환경이라고 한다.
  2. Dev: 나 혼자 개발을 마친 뒤, 내가 만든 기능이 다른 팀원들과 함께 작업하는 공간에서도 잘 작동하는지 확인해야한다.
    DEV 서버는 서버 팀에서 만든 모든 코드를 합쳐서 올리는 환경이다. 로컬에서 개발을 마치면 dev 서버에 해당 기능을 배포해 다른 기능과 충돌이 없는지 확인한다.
    여기서 dev 서버는 기능 개발에만 주력하기 때문에 서버 환경 자체가 prod(상용)서버와는 규모의 차이가 있다.
  3. Stage: 기능 구현만 해 놓고 실제 데이터나 서버 규모는 훨씬 작은 dev와 달리, stage 환경에서는 prod와 거의 동일하게끔(db 세팅까지) 구성해 놓는다.
    운영 환경에 최종 배포하기 전에 한 번 더 검증하기 위한 공간이다.
    QA/STAGE 서버가 분리되어 있는 경우도 있다.
  4. Prod: 실제 서비스 운영 환경이다.

이렇게 하나의 기능이 개발되어 최종 서비스 단까지 나가려면,
local -> dev -> (QA) -> stage -> prod 라는 각기 다른 개발환경을 거치게 되는데,
각 환경마다 필요한 객체 주입부터 여러가지 설정이 달라진다.
따라서 어느 환경에 배포하느냐에 따라 설정에 필요한 값을 그때그때 바꾸어서 주입해주어야 한다.

Spring profile

Spring profile은 배포환경에 따라 자동으로 스프링 프레임워크 내 설정값에 대한 bean 주입을 각기 다르게 설정할 수 있도록 도와주는 역할을 한다.

  • profile: 각기 다른 환경에 주입할 Bean의 묶음이다.
  • property: profile 안에 들어갈 외부 설정 값의 모음
  • profile과 property를 .properties 혹은 .yml 형태의 파일로 구현한다.
profile
https://github.com/Dingadung

0개의 댓글