[인턴기록] 개발환경 (dev, stg, prod)

Romy·2021년 11월 25일
1

인턴기록

목록 보기
5/11

각자의 개발 과정에 따라 역할, 목적이 다르고 그에 따라 시스템의 크기도 다르다

Local

  • 개발을 하기 위해서 각 개발자 PC의 개발 및 테스트 환경
  • ex) 각 PC에 MySQL등의 DB와 Tomcat 등의 제품을 설치하고 Eclipse와 같은 개발 툴과 컴파일러 등이 설치되어 있는 환경

주의할 점

: 모든 개발자가 같은 개발 환경을 사용해야한다. 다른 version의 JVM를 사용하거나 다른 버전의 Tomcat을 사용하면 정작 코드를 합칠 때, local에서잘 작동했던 코드가 작동하지 않는 경우 발생

개발환경 표준화 방법

: 전체 개발 환경을 zip 파일 형태로 묶어서 사용하는 방법이 가장 일반적

DEV

  • 각 개별 개발자들이 만든 코드를 합쳐서 서버 환경에서 테스트해볼 수 있는 환경
    소스코드를 형상관리 시스템에 commit하면 이 코드는 dev 환경에 자동으로 배포되고 이 환경에서 테스트가 된다
  • 기능 개발을 위주로 하기 때문에 서버 환경은 production보다 훨씬 작다
  • production이 클러스터링 환경으로 수개의 서버로 구성된다면 개발 환경은 한 두개의 서버로 기능 구현이 가능한 정도로 구축하는 것이 일반적이다.

Integration

  • 통합개발환경
  • 여러 개의 컴포넌트를 동시 개발하는 프로젝트가 있고 각 컴포넌트가 다른 컴포넌트에 대해서 depency를 가지고있을 때 컴포넌트를 통합 및 테스트 하는 환경
  • dev 환경과 마찬가지고 최소한 set으로 구성하되, dev 환경에서 릴리즈가 되면 주기적으로 deploy한다
  • ex) 단말과 서버를 같이 개발하는 환경의 경우 이 환경에서 통합 진행

QA testing

  • QA 엔지니어에 의해서 사용되는 환경
  • short release 주기에 따라서 개발 환경에서 QA 환경으로 배고되고 여기서 기능 및 비기능(Load Test)등을 QA 엔지니어가 수행
  • 비기능 테스트를 수애할 시에는 production과 거의 유사한 환경을 만들어 놓고 테스트 수행.

Staging

  • prod환경과 거의 동일한 환경을 만들어 놓은 환경
  • prod환경으로 이전하기 전에 여러가지 비 기능적인 부분(Security, 성능, 장애 등)을 검증하는 환경

Production

  • 실제 서비스를 위한 운영 환경

local 서버에서 각자 코드를 만들고 깃허브 등을 이용해 개발자들끼리 dev 서버에서 코드를 합쳐 qa 등 테스트를 충분히 해보고 stg에 올려 실제 기능을 점검, 검증한 뒤 prod로 운영

profile
👩‍💻 IT Engineering

0개의 댓글