본문 바로가기
Projects/2021-CVI (백중원)

210915(수) - Dev Server 고민

by jum0 2021. 9. 15.

목차

  • Dev Server 환경 고민

Dev Server 환경 고민

첫 번째 고민은 dev server의 앤드 포인트가 실제 서비스 앤드 포인트와 왜 달라야 하는지였다.

혼자 생각하기로 dev server 배포 페이지는 스프린트 마무리쯤에 코드가 프리징 되었을 때, 실제 서비스 페이지와 동일한 콘텐츠를 보여주고 동일한 기능을 갖춰야 한다고 생각했다. 그래서 .env.development 파일에서 앤드 포인트가 .env.production과 달라야 하는지 이해가 되지 않았다. 그런데 다시 생각해 보니, dev server에서 실제 서비스와 백엔드 앤드 포인트가 같으면 안 된다는 것을 알게 되었다. 그렇게 된다면, dev server에서 테스트하기 위해 추가한 글이나 삭제한 글이 그대로 서비스에 반영되기 때문이다. 그래서 dev server에서 실제 서비스와 다른 앤드 포인트를 주는 게 맞다고 느꼈다.

두 번째 고민은 dev server를 webpack development 모드로 번들링하고 있는 부분이었다.

일단 결론은 webpack production 모드로 번들링 하는 게 더 맞다는 의견이다. 그 이유로 성능 측정과 관련되어, 실제 서비스 배포가 일어나기 전에 성능을 측정하기 번거롭기 때문이다. 빌드 후 파일들을 실행하여 확인이 가능하지만, 실제 서비스 환경을 dev server에 똑같이 배포하면 실제 서비스와 동일한 환경에서 손쉽게 측정 및 확인할 수 있다. 추가적으로 production 모드로 번들링 하게 되면 프론트엔드 개발자에게 dev server의 존재 이유를 찾을 수 있다고 생각했다. dev server는 백엔드 개발자 입장에서 frontend 작업 영역으로 이동해서 서버를 직접 구동하지 않아도 최신 기능을 바로 확인할 수 있도록 해준다. 하지만, 프론트엔드 개발자에게는 의미가 없어질 수 있다. development 모드로 번들링 된다면 로컬에서 서버를 구동하는 환경과 다른 게 없기 때문이다. 백엔드 개발자가 기능을 바로 확인할 수 있는 것만으로도 dev server의 역할이 충분하다고 생각할 수 있으나, 모든 개발자에게 도움이 되도록 환경을 구성하고 싶었다.

추가적으로, 프로젝트에 따라서 dev server 환경은 달라질 수 있다고 생각된다. 2021-CVI와 같이 서버와 통신하며 CRUD 기능이 있는 경우, 실제 서비스 데이터를 유지하기 위해 앤드 포인트를 dev server와 실제 서비스에서 다르게 설정하는 게 맞는다는 생각이 들지만, Dutch-Dutch의 경우 서버와의 통신이 없기 때문에 개발이 프리징 된 시점에서의 dev server는 실제 서비스와 동일해질 것이다. 이런 경우 dev server는 실제 서비스로 배포하기 이전에 베타 테스트와 같은 목적으로 사용될 것이다.

반응형

댓글