본문 바로가기
리눅스

리눅스 환경변수 2) 환경변수 사용하기 - dotenv.config()

by 왕밤 2021. 10. 5.

 

Linux 운영체제에는 이미 많은 환경변수가 설정되어 있다

자바스크립트 내에서 환경변수들을 사용하기 위해서는 dotenv라는 모듈이 필요하다

프로세스 (export로 환경변수 설정 => dotenv를 통해 환경변수를 가져와 사용하기)

 

 

환경변수 출력하기(이건 dotenv 모듈없이도 확인 가능하다)

 

=> 생성한 디렉토리에 파일 생성 (nano index.js)

=> 생성한 파일에 process.env 출력하기 (확인해보기 cat index.js)

=> Node.js에서 파일 실행하기 (node index.js)

Node.js의 내장 객체 process.env를 이용하면, 명령어 export , env 로 확인한 내용과 동일한 내용을 객체로 출력한다

 

🙌  .env 파일을 환경변수로 사용할 수 있게 하는 게 dotenv 모듈이다 🙌

 

dotenv 패키지 다운로드

 

1) 디렉토리 생성

2) npm init  #엔터 쭉쭉쭉

3) npm i dotenv #모듈 설치

 

 

자바스크립트에서 환경변수 이용하기

👉   명령어 export 로 적용한 환경변수는 현재 사용 중인 터미널에서만 임시로 사용이 가능하다.

1) 환경변수를 저장할 .env파일을 만들어 환경변수를 입력한다

nano .env
key = "value" // 입력

 

 

2) 환경변수를 출력할 파일일 만들기(전에 사용한 파일을 수정하는 방식으로 진행하겠음)

 

index.js에서 dotenv.config 메소드를 이용해 .env 파일을 process.env에 적용할 수 있다

nano index.js

// 원본
console.log(process.env); 

// 내용변경

const dotenv = require("dotenv");
dotenv.config();

// 👉 const config = dotenv . parse ( buf ) // 객체 (출처 npm dotenv 모듈 설명)

console.log(dotenv);
console.log(dotenv.config());
console.log(process.env.key);

 

 

3) idex.js를 node로 실행한다

node index.js

출력 결과

 

환경변수의 장점

환경변수를 이용해 API key, DB password와 같이 민감한 정보를 저장하고 관리할 수 있습니다.

그뿐만 아니라 서로 다른 PC 또는 여러 .env 파일에서, 같은 변수 이름에 다른 값을 할당할 수 있습니다.

 

 

먼저 왜 같은 값에 다른 값을 할당해야 하는 상황이 생길까?

같은 값에 다른 값을 할당하면 원래값이 사라지는 게 아닌가?

 

👉   실제 제품(서비스)를 개발하는 과정을 생각해보자

실제 제품을 개발할 때는 다양한 환경이 필요하다!

 

애플리케이션을 개발하는 환경을 예로 들어보자

이미지 출처) https://post.naver.com/viewer/postView.nhn?volumeNo=25851012&memberNo=15488377

 

① 내 로컬 환경으로 개발을 열심히 한다! (개인 API)

 

② 내가 개발한 서비스가 잘 돌아가는 지 확인해야한다 (테스트 환경이 필요하다 => test API가 필요하다)

 

    😭  내 개인 환경의 API를 사용해서 배포를 하면 일일 요청량을 개인 API가 감당할 수 없는 경우가 생긴다

 

③ 실제 제품 환경은 위의 경우를 방지하기 위해 기업용 API를 사용할 수 있다 (기업용 API가 필요하다)

 

각각의 .env파일의 같은 변수에 다른 값을 할당하면 환경이 변한 때마다 코드를 수정하지 않아도 된다! 

 

예시 출처) 코드스테이츠

 

 

댓글