ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 소프트웨어 개발 환경
    개발 관련/개념 2021. 2. 17. 01:33

    Local 환경

    컴퓨터에 개발 및 테스트 환경 또는 서버를 셋업한 환경

    개발자마다 설치된 서버 환경

    모든 개발자가 같은 개발 환경을 사용

    다른 개발자들과 충돌 위험 X

    환경 구성에 대한 완전한 제어

    (개발 및 디버깅에 필요할 수 있는) 로그 파일에 대한 액세스 권한

    zip파일 or VM 기반 이미지 배포 or Docker 컨테이너 사용

     


    Development (dev) 환경

    서버 개발 환경

    코드 업데이트, 모든 커밋/브랜치로 이루어져있는 환경

    개별 개발자들이 만든 코드를 합쳐서 서버 환경에서 테스트해볼 수 있는 환경

    사용자가 사용하는 환경과 다르게 구성

    실제 데이터를 건들이지 않게 코드 작성

    (로컬/더미 데이터베이스 연결)

    개발자들은 새로운 기능이 어떻게 작동하는지 확인하고, 개선사항을 시도

    많은 예비 테스트 수행

    로컬 환경에서 잘 작동하는지 확인

    가능한 한 철저히 코드 검토

    기능 개발 위주 → prod 환경보다 훨씬 작음

     


    QA 환경

    데이터, 하드웨어 및 소프트웨어에 대한 업그레이드 절차를 테스트하는 환경

    QA 엔지니어에 의해 사용되는 환경

    Production 환경과 밀접하게 시뮬레이션

    테스트와 관련된 모든 활동 (+ 기능, 비기능, 탐색, 빌드, 회귀 테스트 등) 수행

    릴리스 빌드에 대해 확신하면, Stage로 이동

     


    Stage 또는 Staging 환경

    Production 환경과 거의 '동일'

    로컬 대신 서버에 모든 코드

    Production 환경을 건들이지 않고, 되도록이면 많은 서비스 연결

    무거운 테스트 수행

    데이터베이스 마이그레이션 테스트, 구성 변경

    Production 전에 업그레이드/패치 및 여러가지 비기능적인 부분을 테스트

    버전 업데이트에 있어 발생하는 이슈 발견 및 해결

    주로 B2C 서비스 개발과 같이 릴리스가 잦은 경우에 사용

    고객이 있을 경우, 프로젝트가 어떻게 보이고 작동하는지 데모 제공

    → 고객은 피드백 제공

     

    = 마지막으로 점검 및 다듬는 환경

     


    Sandbox

    Production 환경에서 '테스트 하지 않은 코드 변경과 철저한 실험'을  분리한 테스트 환경

    Staging 환경보다 제한 ↓

    Production 환경과 비슷하며,

    다른 버전, dependencies, 플러그인 등을 시도해볼 수 있음

    개발 중인 프로그램 및 코드를 정밀하게 테스트하기 위한 최소한의 기능을 복제

    테스트를 위해 외부로부터의 연결점, 접근 및 영향을 필터링 또는 차단할 수있는 통제된 환경

     


    Production (prod) 환경

    프로젝트를 실제 운영하는 환경

    모든 업데이트 및 테스트 후, 사용자가 최종 코드에 접근하는 환경

    → 환경 중 가장 중요!

    사용자에 의해 버그/오류 발견

    roll-out 선호 → 일부 사용자에게 먼저 변경 사항 릴리스, 점차 모든 사용자에게 적용

    모든 업데이트를 동시에 릴리스할 필요 X

     


     

    '개발 관련 > 개념' 카테고리의 다른 글

    디버깅  (0) 2021.05.09
    모듈  (0) 2021.05.09
    도메인 주도 설계 (DDD)  (0) 2021.04.11
    점진적 개발 모델 Vs 반복적 개발 모델  (0) 2021.01.29
    소프트웨어 개발 수명 주기(SDLC) 모델  (0) 2020.09.30
Designed by Tistory.