[cs, node.js, react] 환경 변수

·2023년 1월 31일
0

개발 기록

목록 보기
51/68

환경 변수

프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임

다양한 환경에 한 프로젝트를 배포하게 되는데 어느 환경에 배포하느냐에 따라서 다르게 설정되어야 하는 값들이 있다. 이런 값들은 운영 체제 수준에서 환경 변수를 통해 관리하게 된다.

또 데이터베이스의 비밀번호, 서드파티 서비스의 API 키같이 민감한 인증 정보는 공개된 저장소에 올리면 위험할 수 있어서 환경 변수로 저장해두고 사용하는 것이 좋다.

node.js에서 환경 변수 사용하기

node.js에서는 보통 process.env를 통해 환경 변수에 접근하게 된다.
process는 node.js에 기본으로 내장된 전역 객체이다.

프로세스 단위 환경 변수

애플리케이션을 실행할 때 키=값 형태로 명시해 준다. 이 경우 프로세스를 종료하면 사라진다.(애플리케이션 종료)

$ API_KEY=abc DB_PASSWORD=1234 node

Welcome to Node.js v14.15.0.
Type ".help" for more information.

> process.env.API_KEY
'abc'

> process.env.DB_PASSWORD
'1234'

운영체제에서 환경 변수 설정

운영체제에서 환경 변수를 설정하면 터미널 창을 닫을 때까지 유지할 수 있다. 맥에서는 export 명령어를 사용한다.

export API_KEY=abc

이렇게 설정하고 node를 실행하고 process.env로 확인할 수 있다.
이 환경 변수는 터미널 창을 닫을 때까지 유지 가능하므로 애플리케이션을 종료했다 다시 실행해도 리셋되지 않는다.

react에서 환경 변수 사용하기

일반 js 파일로 선언해서 import 해도 되고, .env 파일을 만들어도 된다. .env를 사용할 때는 환경 변수 이름에 REACT_APP_을 붙여줘야 한다. 보안이 필요한 환경 변수의 유출을 미연에 방지하기 위함이라고 하며, 이 접두사를 붙이지 않은 환경 변수는 무시한다.
process.env는 실행 시 로드되기 때문에 .env 설정이 바뀌면 프로젝트를 다시 실행해야 한다.

js 파일일 때

const params = {
	key: process.env.REACT_APP_환경변수이름
}

.env 파일일 때

REACT_APP_환경변수이름=

dotenv 모듈

dotenv는 환경 변수를 .env 파일에 저장하고 process.env로 로드하는 의존성 모듈이다.
.env파일에 환경 변수를 저장하면 파일을 읽어 process.env로 만들어준다.

CRA를 사용할 경우 dotenv가 기본으로 설치되어 있다.

참고자료

0개의 댓글