티스토리 뷰

리액트도 Spring Boot의 application-dev.properties, application-prod.properties 처럼 각각 실행 환경에서 다른 설정을 사용하고 싶을 때 하는 설정 방법이 있다.

 

development 환경에서 http://localhost:8080을 production 환경에서 https://api.seogineer.com를 사용해서 동적으로 각 profile 마다 다른 URL을 사용하고 싶었다.

 

프로젝트의 root 경로에 .env.development, .env.production 파일을 생성하고 각 profile에 맞는 URL을 입력한다. 이때, 호출할 때 사용하는 이름은 접두사 REACT_APP_로 시작하여야 한다.

root 경로에 .env.development, .env.production

# .env.development
REACT_APP_API_URL=http://localhost:8080
# .env.production
REACT_APP_API_URL=https://api.seogineer.com

 

코드에서 아래와 같이 환경 변수를 사용할 수 있다.

import axios from 'axios';

const API_URL = process.env.REACT_APP_API_URL; // 환경 변수에서 API URL 가져오기

export const fetchData = async () => {
  try {
    const response = await axios.get(`${API_URL}/example`);
    return response.data;
  } catch (error) {
    console.error('API 호출 오류:', error);
    throw error;
  }
};

 

어떤 profile을 사용할지는 실행 방법에 따라 나뉜다. 

# development를 사용
npm start
# production을 사용
npm run build

 

 

.env.development, .env.production 외에도 아래와 같은 profile들을 사용할 수 있다.

  • .env.test
  • .env.local
  • .env
  • .env.development.local
  • .env.test.local
  • .env.production.local

실행할 때 profile에 따라 우선 순위가 달라진다.

.env.환경.local > .env.환경 > .env

 

 

참고

https://han-py.tistory.com/441

'Language > Javascript' 카테고리의 다른 글

정규표현식  (0) 2021.01.26
생성자패턴과 prototype  (0) 2021.01.17
var, let, const  (0) 2021.01.03
버블링(Bubbling)과 Event delegation  (0) 2020.12.30
DOMContentLoaded 이벤트  (0) 2020.12.30
댓글
Total
Today
Yesterday
링크
Apple 2023 맥북 프로 14 M3, 스페이스 그레이, M3 8코어, 10코어 GPU, 512GB, 8GB, 한글