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

개발 단계
- 코드 작성과 테스트
- 실제 데이터가 아닌 더미 데이터
통합 단계
- 각자의 컴퓨터에서 작성한 코드 합
- 다른 코드와의 충돌 여부 확인
staging 단계
- 프로덕션 단계와 가장 유사한 환경에서 테스트
- 복제된 실제 데이터를 이용해서 테스트
- 모든 관계자들에게 검증하는 단계
- 서비스와 관련 부서 혹은 인원의 확인 과정을 거침(마케팅, 디자인)
프로덕션 단계
- 실제 데이터 이용
- 개발 환경과 구분
- 실제로 서비스가 제공되는 단계
- 사용자 접속 가능
개발 환경과 프로덕션 환경의 차이
ex. 로컬 db 비번, 프로덕션 db 비번
대응 방법
- 설정을 환경 변수에 저장한다 (.env를 이용해서)
- 환경 변수는 코드 변경 없이 배포 때마다 쉽게 변경할 수 있다
설정 파일과 달리 깃허브에 올라갈 가능성도 낮다
- 절대 경로가 아닌 상대 경로를 사용
cf. docker : 환경 자체를 메타 데이터로 담아서 모든 개발 환경을 통일시킨다
배포 플랫폼
아마존의 aws, 마이크로소프트의 azure, heroku,파이어베이스