tech

[AWS] Deploy

Siyoon Jeon 2021. 8. 12. 15:52

✅ Deploy

지금까지는 로컬환경에서 코드를 작성하였다.

다른 사람들이 이용할 수 없기에, 사용자가 서비스를 이용할 수 있게하는 배포에 대해 알아보자.

 

배포란?

개발한 서비스를 사용자들이 이용가능하게 하는 일련의 과정

 

4단계

Development단계

맡은 부분을 각자의 컴퓨터에서 코드를 작성하고 테스트 하는 과정이다.

즉, 개발단계라고 말하며, 실제 데이터보다 더미데이터를 이용해서 테스트한다.

 

Intergration단계

각자의 컴퓨터에서 작성한 코드를 합치는 과정이다.

코드 침범으로 오류를 일으키지 않는지, 코드간에 conflict가 있지는 않는지 확인한다.

 

Staging단계

실제 출시 단계인 Production단계와 가장 유사한 환경에서 테스트를 실시한다.

실제 데이터를 복사해서 문제가 있지 않은지 등 다양한 환경에서 테스트를 진행한다. 또한 서비스와 관련된 부서 혹은 인원의 확인 과정을 거친다. 예를 들면, 작성된 코드가 마케팅팀 혹은 디자인팀 예상했던 결과인지에 확인을 거치는 과정이다.

 

Production단계

개발된 서비스를 출시하는 단계입니다.

사용자가 접속할 수 있는 Production환경에서 코드를 구동하고 서비스를 제공한다. 실제 데이터를 가지고 서비스가 운영되기 때문에 문제가 생기면 안되는 단계이다.

 

Development 환경과 Production 환경은 서로 다를 수가 있다. 따라서, 배포에서는 환경의 차이를 이해하고 환경 설정을 코드와 분리하는 것이 중요하다. 작성한 코드가 다른 환경에서 정상 작동할 수 있게 하려면 어떻게 해야할까?

 

절대경로 대신 상대경로를 사용하면 된다. 환경에 따라 포트를 분기할 수 있도록 환경변수(envvars나 env라고도 불림)를 설정해준다. Docker와 같은 개발 환경 자체를 통일시키는 솔루션을 사용한다.