
이미지출처 : https://shuu.tistory.com/41
일반적인 서버 개발환경은 local / dev / integration / qa / staging / production 환경으로 나뉜다.
개발, 테스트, 운영 단계에서 발생하는 요구사항 및 상황을 관리하고 처리하기 위함
조직에 따라 환경이 상이하다.
먼저 개발을 하려면, 각자 개발자 PC에 개발 및 테스트 환경이 셋업되어야 한다.
각 개발자마다 설치된 서버 환경을 local 환경이라고 한다.
ex) MySQL 등의 DB, Tomcat, Eclipse와 같은 개발 툴, 컴파일러 등
서버 개발 환경은 각 개발자들이 작업한 코드를 Merge 하여 서버 환경에서 테스트를 해볼 수 있는 환경이다.
- 개발자들이 각 코드를 합쳐 테스트할 수 있는 환경
- 다수의 개발자가 함께 작업, 각자의 내용을 통합
- 다른 환경과 연결하여 테스트 하는 경우가 많음
- 외부 시스템과의 통합 및 테스트를 위한 설정 포함
스테이징 서버(Staging Server)는 다른 말로 정말 많이 불린다.
예를 들어, 스테이징 서버를 테스트 서버(Test Server) QA 서버(QA Server)등으로 부른다
이 스테이징 서버는 운영 서버 환경과 거의 100%로 비슷할 정도로 환경을 맞춘 다음, 운영 서버에서 사용되는 데이터를 가지고 실질적으로 운영 서버에 반영하기 전에 테스트를 거치는 곳이다.
즉, 운영 서버(Production Server)에 반영하기 전 최종 확인을 하는 서버라고 할 수 있다.
- 실제 production 환경과 유사한 환경을 구성하여 테스트
- 실제 운영환경과 동일한 설정 및 데이터 활용하여 application의 실제 동작 확인
- 개발한 기능을 미리 배포 및 통합 테스트, QA 테스트 실행
- production 배포 전에 문제 사전 발견 및 수정하여 production이 안정적으로 배포 되도록 함
운영 서버(Production Server)는 실질적으로 운영을 하기 위한 서버로 스테이징 서버에서 정상적으로 작동되는 기능들이 운영 서버에 반영된다
- 사용자들이 접근하는 운영 환경
- application이 최종 배포되는 환경
- 안정성, 성능이 최우선
- 에러 및 예외처리가 잘 되어 있어야 함
- 로그와 모니터링을 통한 문제 대응