개발 환경
- Local 환경
개발자가 개발을 하는 자신의 workspace
- Development 환경 (DEV 환경)
개발자들끼리 개발 내용에 대한 통합 테스트를 하는 환경
- QA 환경
개발이 끝나고 QA 엔지니어 및 내부 사용자들이 사용해 보기 위한 환경
- Production 환경 (PROD 환경)
실제 유저가 사용하는 환경
개발 프로세스
- 개발자가 자기 pc에서 개발을 진행
- 다른 개발자가 작성한 코드와 차이가 발생하지 않는지 내부 테스트를 진행한다.
- 진행한 내용을 다른 개발자들과 공유하기 위해 git과 같은 SCM에 올린다 -> 흔히 dev 브랜치
- Dev 브랜치의 내용을 개발 환경에 배포하기 전에 테스트와 Lint 등 코드 포맷팅을 한다.
- 배포하기 위한 빌드과정을 거친다.
- 코드를 배포한다.
- 테스트를 진행한다.
여러 배포 환경의 관리
인프라를 모듈화 하여 어떤 것이 변수인지 잘 설정하고 이를 잘 설계하는 것
현재 배포하고자 하는 것이 무슨 환경인지 설정하고 앱 내에서 사용하는 다양한 변수들을 환경에 맞게 잘 가져다 쓰는 것이 핵심
- 서비스 내부의 변수 뿐만 아니라 클라우드 리소스를 많이 활용해서 개발하는, 요즘에는 클라우드 리소스 내에서 인프라별 키관리가 매두 중요해서, aws system manager의 parameter store와 같은 키 관리 서비스를 쓰는 것을 추천