linux 심화(2) 환경변수(1)

Creating the dots·2021년 8월 23일
0

Linux

목록 보기
3/4

환경변수

자바스크립트에서 전역 또는 지역 변수에 문자열을 할당했다. PC에서도 변수에 API key를 할당하여 사용할 수 있는데, A파일에서 전역변수로 선언하더라도 B파일에서는 A파일의 전역변수에 접근할 수 없다. 리눅스 기반의 운영체제 PC에는 시스템 자체에 전역변수를 설정할 수 있다. 이렇게 시스템에 설정한 전역변수를 환경변수라고 한다. 환경변수는 export 명령어를 통해 확인하거나 추가할 수 있다.

export // PC에 저장된 모든 환경변수들을 확인할 수 있다.
export extremesport="skydiving"; //PC에 환경변수를 추가한다.
echo $extremesport; //echo 명령어와 $[변수명]을 쓰면 환경변수의 값을 확인할 수 있다.

✅ PC에 저장하는 환경변수가 무엇인지 이해하고, 사용할 수 있다.
✅ PC에 저장된 환경변수를 확인할 수 있다. export
✅ PC에 저장된 환경변수를 불러올 수 있다. dotenv
✅ Node.js에서 환경변수를 영구적용할 수 있다. .env

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

npm 모듈 dotenv

npm 모듈 dotenv을 사용하면 자바스크립트에서 환경변수를 사용할 수 있다.

  • process.env는 Node.js 환경에서 조회할 수 있다.
  • dotenv는 이어지는 콘텐츠 .env 파일을 환경변수로 사용할 수 있게 돕는다.
mkdir environmental_variable //폴더 생성
cd environmental_variable //생성한 폴더로 이동
npm init 
npm i dotenv //npm 모듈 dotenv는 package.json이 있는 폴더 내에서 설치한다


설치한 dotenv 모듈을 이용해 환경변수에 접근할 수 있는데, 새로운 자바스크립트 파일(index.js)을 생성하고 console.log(process.env)를 추가한 뒤 프롬프트에 node index.js를 실행시키면 export로 확인한 것과 동일한 내용을 객체로 출력한다.

  • Node.js의 내장객체 process.env는 Node.js 환경에서 조회할 수 있다.
  • dotenv는 .env 파일을 환경변수로 사용할 수 있게 돕는다.
nano index.js; //이 파일에 console.log(process.env) 추가하기
cat index.js; //console.log(process.env) ===> 파일 내용 읽어오기
node index.js; //파일 실행시키기

.env: Node.js에서 환경변수 영구 적용

파일 .env를 만들어 저장

export로 추가한 환경변수는 현재 사용중인 터미널에서만 임시로 사용할 수 있다. 환경변수를 Linux 운영체제에 저장하기 위한 방법 중 하나는 Node.js에서는 파일 .env를 만들어 저장하는 방법을 사용한다.

nano .env //env 파일을 만들어 환경변수 year=2021 저장
cat .env; //year=2021

nano index.js 
//const dotenv = require("dotenv");
//dotenv.config();
//console.log(process.env.year
cat index.js; //2021

환경변수를 이용해 API key, DB password와 같이 민감한 정보를 저장하고 관리할 수 있고, 뿐만 아니라 서로 다른 PC 또는 여러 .env 파일에서 같은 변수 이름에 다른 값을 할당할 수 있다.

실제 제품(서비스)를 개발하는 과정에서 개발환경(local 또는 development)과 테스트 서버의 환경(test), 그리고 실제 제품을 제공하는 환경(production)이 있다. 예를 들어 구글 API를 이용해 웹 애플리케이션을 만드는 경우, 개발환경에서는 개발자 개인의 API키를 이용할 수 있다. 그러나 제품을 서비스할 때에 개인 API키를 사용하면, 일일 요청량을 초과하는 경우 제품이 정상적인 동작을 할 수 없다. 이런 경우를 방지하기 위해 실제 제품에서는 기업용 API키를 사용한다. 이처럼 개발환경과 제품을 제공하는 환경에서 사용하는 API키가 다른 경우, 환경변수를 이용해 환경을 구분해 코드를 작성할 수 있다.

데이터베이스도 마찬가지로 개발, 테스트, 제품 환경으로 구분할 수 있다.

profile
어제보다 나은 오늘을 만드는 중

0개의 댓글