배포는 일반적으로 아래의 4단계를 거쳐 진행된다.

| Development | 개인이 로컬환경에서 개발, 테스팅. 독립적으로 개발하므로 서로 영향주지 않음 | | --- | --- | | Integration | 각자 개발한 코드를 통합. 코드 간 conflict 해결. | | Staging | production과 유사한 환경에서 통합 테스트. 실제 데이터를 통해 관계자들에게 검증하는 단계 | | Production | 개발 환경과 구분 실제로 서비스가 제공되는 상태 |

개발 환경 변수(environment variable)

각 단계별, 특히 개발과 프로덕션 단계에서의 환경은 다르기 때문에 작성한 코드가 다른 환경에 따라서 다른 설정을 갖도록 해야 한다. 예를 들어 개발 단계에서는 로컬 DB를 사용하므로 로컬 DB 계정을 설정하겠지만, 프로덕션 단계에서는 서비스 제공 서버의 DB를 사용하므로 그곳에 맞는 설정을 해야할 것이다.

환경 변수를 통해 개발 환경에 맞게 다른 설정을 적용할 수 있게끔 할 수 있다. 가령 Spring boot에서 application-dev 프로필을 만들어서 개발환경에서는 이 프로필을 적용하는 식으로 사용하는 것을 의미한다.