웹어플리케이션에서의 개발 환경 구분
- 개발, 테스트, 운영 단계에서 발생하는 요구사항 및 상황을 관리하고 처리하기 위함
- 크게 프로덕션(production), 로컬(local), 스테이징(staging)으로 나뉨
- 그외에도 개발(dev), 테스트(QA), 통합(Integration) 환경이 있음
- 조직에 따라 환경이 상이
(이미지 출처 - https://shuu.tistory.com/41)
- Local -> Dev -> QA -> Staging -> Prod
환경 구분
1. 프로덕션(Production) 환경
- 사용자 들이 접근하는 운영 환경
- application이 최종 배포되는 환경
- 안정성, 성능이 최우선
- 에러 및 예외처리가 잘 되어 있어야 함
- 로그와 모니터링을 통한 문제 대응
2. 로컬(Local) 환경
- 개발자가 개인 개발을 진행하는 환경 (localhost)
- 코드를 수정 및 테스트, 새로운 기능 개발하는 단계에서 사용
- 로컬 DB나 가짜 데이터 사용하여 개발 및 디버깅
- 에러 디버깅과 기능개발에 초점
3. 스테이징(Staging) 환경
- 실제 production 환경과 유사한 환경을 구성하여 테스트
- 실제 운영환경과 동일한 설정 및 데이터 활용하여 application의 실제 동작 확인
- 개발한 기능을 미리 배포 및 통합 테스트, QA 테스트 실행
- production 배포 전에 문제 사전 발견 및 수정하여 production이 안정적으로 배포 되도록 함
4. 서버개발 환경(Dev)
- 개발자들이 각 코드를 합쳐 테스트할 수 있는 환경
- 다수의 개발자가 함께 작업, 각자의 내용을 통합
- 다른 환경과 연결하여 테스트 하는 경우가 많음. 외부 시스템과의 통합 및 테스트를 위한 설정 포함.
5. 통합 개발 환경 (Integration)
- 컴포넌트가 의존성을 가질 때, 여러 컴포넌트를 통합하고 동시에 테스트하는 환경
6. 테스트 (QA)
- 소프트웨어 품질 확보를 위한 테스트 및 개발을 수행하는 환경
- 테스트 케이스 작성, 자동화된 테스트 실행, 결과 분석
- QA 엔지니어를 위한 환경. 기능테스트, 환경테스트, 성능테스트 실행
참고