JavaScript에서 환경 변수 가져오기

Subodh Poudel 2023년10월12일
  1. 환경 변수 소개
  2. env 속성을 사용하여 JavaScript에서 환경 변수 가져오기
  3. dotenv 패키지를 사용하여 JavaScript에서 환경 변수 가져오기
JavaScript에서 환경 변수 가져오기

이 기사에서는 JavaScript에서 환경 변수를 가져오는 몇 가지 방법을 소개합니다.

환경 변수 소개

환경 변수를 사용하여 애플리케이션에서 사용할 수 있는 다양한 종류의 데이터를 저장할 수 있습니다. 예를 들어 데이터베이스 연결, 포트 번호, 암호, 비밀 키 등이 될 수 있습니다.

환경 변수의 사용은 환경에 따라 구성을 작성해야 할 때 활성화됩니다. 개발 및 프로덕션 환경을 위해 애플리케이션에 다양한 구성을 제공할 수 있습니다.

먼저 셸에서 환경 변수를 만들고 가져오는 방법을 살펴보겠습니다. 내보내기 명령을 사용하여 변수 또는 함수를 하위 프로세스에 전달할 수 있습니다.

아래 명령을 사용하여 변수를 정의할 수 있습니다.

$ export PORT=8080

다음으로 echo 명령을 사용하여 환경 변수를 가져올 수 있습니다. 인쇄하는 동안 환경 변수 앞에 $ 기호를 사용해야 합니다.

$ echo $PORT

출력:

8080

다음 섹션에서는 JavaScript 프로그램에서 환경 변수에 액세스하는 방법을 알려줍니다.

env 속성을 사용하여 JavaScript에서 환경 변수 가져오기

JavaScript의 process 코어 모듈에서 제공하는 env 속성을 사용하여 환경 변수를 설정한 다음 변수를 가져올 수 있습니다.

env 속성은 새 환경 변수를 만들 수 있습니다. 환경 변수를 설정한 후 변수를 콘솔에 출력할 수 있습니다.

예를 들어 다음 명령을 사용하여 새 npm 패키지를 초기화합니다.

npm init -y

다음으로 package.json 파일에서 다음 속성을 설정합니다.

"type": "module"

JavaScript에서 process 모듈에서 env 속성을 가져옵니다.

그런 다음 env 속성을 사용하여 환경 변수를 env.PORT로 설정하고 값을 할당합니다. 그런 다음 변수를 인쇄하십시오.

예제 코드:

import {env} from 'node:process';

env.PORT = 5000;
console.log(env.PORT);

출력:

5000

따라서 JavaScript의 process 모듈에서 env 속성을 사용하여 환경 변수를 만들고 해당 값을 가져올 수 있습니다.

dotenv 패키지를 사용하여 JavaScript에서 환경 변수 가져오기

JavaScript 애플리케이션을 작성하는 경우 환경 변수를 사용할 수 있습니다. 앞서 언급했듯이 환경 변수는 다양한 종류의 데이터를 저장하는 데 사용되며 이러한 데이터는 응용 프로그램에서 사용할 수 있습니다.

이러한 시나리오에서는 dotenv 패키지를 사용할 수 있습니다. .env 파일 및 응용 프로그램에 설정된 환경 변수를 읽을 수 있습니다.

예를 들어 패키지를 초기화하고 dotenv 패키지를 설치합니다. 마찬가지로 .env 파일을 만들어 환경 변수를 저장합니다.

npm init y
npm install dotenv
touch .env
touch app.js

.env 파일에서 PORT 패키지에 대한 환경 변수를 생성하고 다음과 같이 8080으로 설정합니다.

PORT=8080

JavaScript에서는 dotenv 패키지가 필요하고 config() 메서드를 호출합니다. 이를 통해 process.env 속성을 사용하여 .env 파일에 저장된 환경 변수에 액세스할 수 있습니다.

다음으로 속성을 사용하여 PORT에 액세스합니다. 마지막으로 식을 콘솔에 기록합니다.

예제 코드:

require('dotenv').config();
console.log(process.env.PORT)

출력:

8080

따라서 dotenv 패키지를 사용하여 JavaScript에서 환경 변수를 가져올 수 있습니다.

Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn