Runtime 환경변수 URL
https://fe-developers.kakaoent.com/2022/220505-runtime-environment/
기존 방식의 문제점
- 기존의 방식에서 env 파일은 빌드시점에 환경변수를 주입한다.
- 따라서 각각의 빌드 결과물은 해당 환경에만 종속된다.
- 환경별 (dev, prod 등)
- 또한, 여러 환경에 배포하려면 환경별 빌드프로세스를 만들어줘야함.
- 왜냐하면, 빌드 전에 환경에 맞는 dotenv 파일을 주입해주는 프로세스가 필요하므로.
# Dockerfile
ENV NODE_ENV="production"
ARG APP_ENV
RUN mv ./app/.env.$APP_ENV ./app/.env.production
RUN yarn app:build
환경변수 url로 런타임에 환경변수 주입
- 환경 변수를 글로벌 객체 (window)에 주입해주는 스크립트 파일을 만든다.
- 클라이언트에서는 해당 스크립트 파일을 가져다 쓴다.
- 앱을 실행 할 때, 작성한 스크립트 파일을 실행한다.
즉, 환경변수 자체는 환경별로(dev, prod..)분리하되, 환경변수 url을 사용하여 환경변수에 따른 빌드 프로세스의 분리를 제거한다.