클라우드
테스트 서버 구축하기
smallsoft
2024. 11. 12. 20:22
필요성
프로젝트를 진행하면서 실제 배포 서버와 유사한 환경에서 동작하는 테스트 서버의 필요성을 느끼게 되었다, 꽤 다양한 이유가 있었지만 크게는 다음과 같은 점에서 필요성을 느끼게 되었다.
- 끊기는 흐름
프론트, 백엔드 개발자가 완성한 코드를 검증하기 위해 배포 서버에 업데이트를 적용해야 했는데 이 적용 시간이 너무 오래 걸렸다. 이는 협업과정이 비효율적으로 이루어지게 된 큰 요인이 되었다. - 클라우드 개발자 이슈
클라우드 환경에서 배포를 처음 진행했기에 여러 작업들이 익숙하지 않아 시간이 소모되었고나의 작업이 완료되기 전까지 제대로 된 배포 환경을 제공하기 어려웠다. - 협업의 비효율성
완성된 하나의 배포 환경이 없고, 클라우드 개발자인 내가 배포환경에 모니터링, 로그 수집등 여러 요소를 추가하는 중에도 프론트엔드, 백엔드에서도 지속적으로 개발내용이 추가되다 보니 문제가 발생했을 때 누구의 잘못인지를 체크하기에 어려웠다.
위와 같은 이유로 테스트만을 위한 서버가 구축되어야 한다 생각했다.
당연히 처음에는 그냥 간단하게만 구축해야겠다 생각했지만 아무런 기준과 설계 없이 테스트 배포 환경을 구축하려 하니 많은 문제점이 생겼고 아래는 내 나름대로 테스트 환경에서 필요한 기능들을 정리해 보았다.
테스트 서버에서 필요한 것들
- 자신이 작성한 코드를 최대한 빠르게 확인해야 한다.
- 자신이 작성한 코드를 서버에 배포하고 배포가 완료되면 이를 확인하는 과정은 너무 번거롭고 시간낭비가 심하다. 개발자는 로컬에서 코드를 실행하고 클라우드에서 동작중인 테스트서버와 연동해 자신의 코드를 확인해야 한다.
- 로컬에서의 작업이 끝나면 코드를 업로드하는 즉시 자동으로 테스트서버에 적용되야 한다.
- 테스트서버는 항상 최신 상태를 유지해야 한다.
테스트서버 아키텍처
위는 테스트서버의 아키텍처와 시퀀스 다이아그램을 시각화하였다.
프론트엔드 서버는 테스트서버, 배포서버에서 API 요청 주소가 달라지므로 도메인주소를 환경변수로 관리해줘야 한다.
개발자는 각각 환경에 맞춰 환경변수를 변경해줘야 한다. 아래는 각 상황에서 프론트서버가 받아와야 할 도메인에 대한 설정이다.
- 로컬에서 테스트할 때는 API 주소를 테스트 서버의 백엔드 도메인으로 설정해야 한다.
- 테스트 서버에 배포할 때는 API 주소를 Localhost로 설정해야 한다. 이는 백엔드 개발자의 테스트환경을 위함이다.