SW 개발 환경
SW 개발 환경
SW 개발 환경의 종류
소프트웨어 혹은 서버를 개발함에 있어서 여러 환경에서 개발을 수행하게 됨. 아래는 개발을 진행하는 환경들의 종류.
- Local
- Dev
- Integration
- QA
- Staging
- Production
Local
- 각 개발PC 마다 설치된 로컬 개발 환경
- 여러 개발자의 환경 및 버전 등이 동일해야 추후에 합칠 때 문제가 없음.
- 이를 위해 전체 개발 환경을 zip 형태로 묶어서 사용하거나 Docker등의 컨테이너 기술 사용.
Dev
- 각 개발자들이 만든 코드를 합쳐서 서버에서 테스트 해 볼 수 있는 개발 환경.
- 코드를 커밋하면 자동으로 이 환경에 배포되고, 테스트가 진행됨.
Integration
- 여러 개의 컴포넌트가 의존성이 있는 경우 해당 컴포넌트를 통합 및 테스트하는 환경.
- 최소한으로 구성됨.
QA
- QA 엔지니어가 사용하는 테스트 환경으로, 운영 환경과 유사하게 만듦.
- 기능 / 비기능 테스트를 수행.
Staging
- 운영 환경 이전에 여러 가지 비 기능적인 부분을 최종적으로 검증하는 스테이징 환경.
- 운영 환경과 거의 동일하게 만들고, continuous delivery는 이 환경까지 배포.
Production (Live)
- 실제로 서비스하는 운영 환경.
- Continuous deployment는 이 환경까지 배포.
특징
- 각 개발 환경은 별도로 운영됨.
- 모든 환경이 필요한 것은 아니고, 상황에 따라 몇 개의 환경을 합치기도 함.
- 개발 환경이 많을수록 테스트가 용이하지만, 그만큼 관리를 더 해야 함.