프로젝트를 수행할 때 서버 여러 개가 구동된다. 그 중에서도, 로컬서버(Local), 개발서버(DEV), 스테이지서버(STG), 운영서버(PRD)에 대해 알아보려고 한다.
Local
- 개발을 하기 위한 각 개발자 PC의 테스트 환경
- ex) 각 PC에 MySQL 등의 DB와 Tomcat 등의 제품을 설치하고 Eclipse와 같은 개발 툴과 컴파일러 등이 설치되어 있는 환경, lost:8080으로 띄우는 서버
주의할 점
: 모든 개발자가 같은 개발 환경을 사용해야 한다. 다른 버전의 JVM을 사용하거나 다른 버전의 Tomcat을 사용하면 정작 코드를 합칠 때, local에서 잘 작동했던 코드가 작동하지 않는 경우가 발생한다.
개발환경 표준화 방법
: 전체 개발 환경을 zip 파일 형태로 묶어서 사용하는 방법이 가장 일반적
DEV
- 개발자들의 개인 개발 환경이 아닌 1개의 통합된 환경에서 테스트를 할 수 있는 서버
- 기능 개발을 위주로 하기 때문에 서버 환경은 PRD보다 훨씬 작다
- PRD가 클러스터링 환경으로 수 개의 서버로 구성된다면 개발 환경은 한 두 개의 서버로 기능 구현이 가능한 정도로 구축하는 것이 일반적이다.
STG (stage)
- 실제 운영 환경과 거의 동일한 환경으로 만들어놓고 기능을 검증하는 환경 (보안, 성능, 장애 등)
- Staging 환경은 Prod와 동일한 인프라 구성을 가지고 있는 별도의 서버군
존재 이유
: 성능 테스트는 두 가지 경우로 나눌 수 있다
- 서비스가 오픈되기 전 성능 테스트
- 운영 중인 서비스의 성능 테스트
전자의 경우, 사용자가 없기 때문에 문제가 발생하지 않는다. 하지만 후자의 경우 운영중인 서비스를 중단시킬 수 없기 때문에 Staging 서버를 구성한다.
성능 테스트가 자주 필요하다면 Stage 환경을 유지할 필요가 있지만, 자주 테스트를 하지 않는다면 유지하지 않는 것이 좋다. (성능 테스트를 할 때마다 새로 서버군을 구성하는 것은 매우 비효율적)
PRD (production)
- 실제 서비스를 위한 운영 환경
정리
Local 서버에서 각자 코드를 만들고 깃허브 등을 이용해 개발자들끼리 DEV 서버에서 코드를 합쳐 QA 등 테스트를 충분히 해보고 STG에 올려 실제 기능을 점검, 검증한 뒤 PRD로 운영
반응형
'etc > 기타' 카테고리의 다른 글
유튜브가 동영상을 저장하는 방법 (0) | 2023.02.05 |
---|