테스트 환경 구축 배경

이번 주에 저희 Booqiuz 서비스의 CI/CD 환경을 구축하는 것을 마무리 하였습니다. 배포 환경까지 다 구축하여 금요일 데모 데이 전에 배포를 진행하였습니다. 배포를 진행해보니 추가적으로 변경해야 할 부분들이 생겼고, 변경사항을 적용하기 위해 변경 사항을 작성한 브렌치developmain 브렌치로 머지한 후에 제대로 배포가 되었는지 다시 확인해야 하는 경우가 발생했습니다.

그래서 저희 조는 테스트 환경의 필요성을 느껴 실제 배포 환경과 동일한 테스트 환경을 배포하고 테스트를 완료한 후에 실제 배포 환경에 적용해보자는 의견이 나왔습니다. 다들 이러한 의견에 동의하여 샌드박스 환경 구축에 대해 알아보려고 합니다.

샌드박스 환경이란?

저는 지금까지 서비스 배포 경험이 없어 배포 환경을 테스트 환경처럼 사용하였습니다. 그래서 테스트 환경에 관한 샌드박스 환경 , 테스트 컨테이너 , 스테이징 환경 과 같은 용어가 낯설었기 때문에 먼저 해당 용어들에 대해 정리해보려고 합니다.

테스트 컨테이너

테스트 컨테이너는 소프트웨어 테스트를 위해 격리된 환경을 제공하는 컨테이너 기반의 테스트 도구를 말해요. 주로 Docker를 사용하여 애플리케이션 테스트에 필요한 의존성을 빠르고 안전하게 구성할 수 있도록 돕습니다.

샌드박스 환경

샌드박스 환경 은 애플리케이션, 코드, 또는 프로세스를 격리된 환경에서 실행하여 실제 시스템에 영향을 주지 않고 안전하게 테스트하거나 실행할 수 있도록 만든 환경을 의미해요. 주로 보안, 테스트, 개발, 또는 디버깅 목적으로 사용되며, 실제 운영 환경과 비슷하지만 분리된 공간에서 작동하도록 설계됩니다.

스테이징 환경

**스테이징 환경**은 애플리케이션이나 시스템을 운영 환경과 최대한 비슷하게 구성한 테스트 환경이에요. 주로 코드 배포나 새로운 기능을 운영 환경에 실제로 적용하기 전에 최종적으로 테스트하기 위해 사용됩니다.

저희는 실제 배포 환경과 거의 동일한 환경에서 실행하고 검증해 보는 것을 원하기 때문에 테스트 서버를 만들어 실제 테스트 환경을 배포하기로 하였습니다.

Docker를 이용한 테스트 서버 구축