본문 바로가기
Web/AWS

배포 (Deploy)

by joooing 2021. 3. 10.
반응형

배포?

배포한다는게 무슨말일까? 한마디로 말하면 내가 개발한 서비스를 다른 사용자들도 이용할 수 있게 하는 과정이라고 할 수 있다. 하지만 내 컴퓨터에 어떤 환경 설정이 되어있는지는 알 수 있지만, 남의 환경은 알기 힘들다는 문제가 있다. 따라서 배포 과정에서는 내 로컬환경뿐만 아니라 모두의 환경에서 프로그램이 잘 작동하도록 하는 것이 중요하다.

 

배포의 일반적인 과정

1. Development

컴퓨터의 로컬 환경에서 개발을 하고, 테스트를 진행하는 과정으로, 여기서는 아직 개발중인 단계이기 때문에 실제 데이터가 아닌 fake data를 이용해 테스트를 하게 된다. 모든 구성원들이 각자의 환경에서 개인플레이로 진행하는 단계이기 때문에 변경 사항이 생겨도 별다른 문제를 일으키지 않는다.

 

2. Intergration

이제 각자가 작성한 코드를 취합하는 단계이다. 코드끼리 충돌(conflict)가 발생하지는 않았는지, 혹은 내 코드가 다른 코드에 영향을 끼치거나 에러를 발생시키지는 않는지 확인하는 단계이다. 합쳐도 작동이 유효한지 확인하기 위해 팀원들과 작업결과를 테스트하는 것이다.

 

3. Staging

실제 출시 단계(다음단계)인 Production 단계와 유사한 환경에서 테스트를하며 마지막으로 검증하는 단계이다. 유사한 환경을 만들기 위해서 실제 데이터를 복제해서 테스트를 진행한다.

 

4. Production

이렇게 개발된 서비스를 실제로 출시하는 단계이다. 사용자가 접속할 수 있는 환경에서 운영을 하는, 지금까지의 개발환경과는 완전히 구분된 환경이다.

 

Development 환경? Production 환경?

앞서 말했듯이 배포시에는 사용자의 환경 차이를 이해하고, 코드로 분리하는 것이 중요하다. 그럼 코드가 다른 환경에서도 잘 작동하게 하려면 어떻게 해야할까? 아래와 같은 방법들을 쓸 수 있다.

 

1. 절대경로가 아닌 상대경로를 사용한다.
2. 환경변수 설정을 유동적으로 할 수 있도록 한다. 예를들어, 환경에따라 PORT를 분기할 수 있도록 .env 등을 이용해 환경변수를 설정하는 방법이 있다.
3. Docker처럼 개발환경 자체를 통일시키는 방법을 사용한다.

 

 

이런 배포를 위해 Heroku, Digital Ocean, Microsoft Azure, Amazon Web Services 등 다양한 플랫폼들이 존재하는데, 다음 글에서는 이 중에서도 Amazon의 AWS(Amazon Web Services)에 대해 소개해보려고 한다.

반응형

'Web > AWS' 카테고리의 다른 글

Amazon S3  (0) 2021.03.10
AWS RDS(Relational Database Service)  (0) 2021.03.10
Amazon EC2 (Elastic Compute Cloud)  (0) 2021.03.10
Cloud Computing (클라우드 컴퓨팅), 온프레미스(On-premise)  (0) 2021.03.10

댓글