"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 환경 변수: JS 개발에 대한 매우 짧은 소개

환경 변수: JS 개발에 대한 매우 짧은 소개

2024년 10월 31일에 게시됨
검색:949

Environment Variables: a very short intro for JS development

이 글은 환경 변수에 대한 간단한 조사를 위해 작성되었으므로 스타일을 간결하게 작성했습니다.

기본 사항

  • 터미널은 실제로 터미널 에뮬레이터인 앱입니다.
  • 우리는 과 상호 작용하는 터미널을 사용합니다.
  • 쉘은 노드와 같은 다른 앱을 통해 자바스크립트 프로그램과 같은 프로세스를 생성할 수 있습니다.
    • 예: 쉘 -> 노드 -> index.js
  • 터미널을 열면 새 세션이 셸에 생성됩니다
  • 이 세션에는 연결될 수 있는 변수가 있습니다(예: echo $USER는 현재 사용자의 이름을 인쇄합니다)

마디

노드에서 환경 변수는 전역 process.env를 통해 액세스됩니다.

console.log(process.env.USER); // username
  • 애플리케이션은 일반적으로 환경 변수를 통해 비밀 또는 구성 관련 데이터에 액세스합니다.
    • 예: process.env.DB_CONNECTION
    • 이는 비밀을 비밀로 유지하고 모든 사용자가 동일한 구성 요구 사항을 갖고 있는 것은 아니기 때문에 유용합니다. 이를 통해 논리와 구성을 더 효과적으로 분리할 수 있습니다.

변수를 로드하는 방법

이러한 변수를 프로그램에서 사용할 수 있도록 하는 몇 가지 방법이 있습니다.

(1) 명령줄을 통해 사용할 수 있도록 설정:

매우 간단합니다. 명령줄에서 변수를 사용하여 명령을 호출하기만 하면 됩니다.

DB_CONNECTION="postgresql://username:password@host:port/database_name" node index.js

(2) .env 파일에 저장

.env 파일은 등호로 구분된 KEYSVALUES로 구성됩니다.

DB_CONNECTION="postgresql://username:password@host:port/database_name"

이러한 파일은 일반적이며 응용 프로그램에서 사용할 수 있도록 하는 몇 가지 방법이 있습니다.

디렌브

파일에서 변수를 로드하는 direnv와 같은 도구를 사용하면 해당 변수를 셸에서 사용할 수 있습니다. 이는 일반적으로 전역적으로 설치됩니다.

기본적으로 direnv는 .envrc 파일을 찾지만 .env도 사용할 수 있습니다. 그렇게 구성하려면 여기를 참조하세요.

도텐브

파일에서 변수를 로드하고 process.env에서 사용할 수 있도록 하는 dotenv와 같은 도구를 사용하세요.

direnv 대 dotenv

각 방법에는 장단점이 있습니다.

direnv를 사용하면 언어에 구애받지 않으며 종속성이 하나 줄어든다는 의미이지만, direnv를 사용하지 않는 경우 애플리케이션 소비자가 환경 변수를 로드하는 자신만의 방법이 필요하다는 의미이기도 합니다.

dotenv를 사용하면 애플리케이션 소비자가 걱정 없이 .env 파일을 사용할 수 있지만 셸에서 기본적으로 수행할 수 있는 작업을 수행하기 위해 패키지가 추가됩니다.

노드 플래그

최근 노드에는 .env 파일을 직접 사용하기 위한 지원(v20.6.0)이 포함되었습니다.

플래그를 사용해야 합니다.

node --env-file=.env index.js

dotenv와 마찬가지로 이는 .env의 콘텐츠를 process.env에서 사용할 수 있게 만듭니다.

요약

  • 환경 변수는 쉘 고유의 기술입니다.
  • 로드하는 방법에는 직접, direnv, dotenv, node 등 몇 가지가 있습니다.
  • direnv는 변수를 쉘에 로드하지만 dotenv와 node는 process.env를 통해서만 해당 변수를 애플리케이션에서 사용할 수 있도록 합니다.
  • 노드를 사용하는 경우 아마도 새로운 --env-file 플래그를 사용하도록 선택해야 할 것입니다.
릴리스 선언문 이 기사는 https://dev.to/charlesloder/environment-variables-a-very-short-intro-for-js-development-18j3?1에 복제되어 있습니다. 침해가 있는 경우에는 [email protected]으로 문의하시기 바랍니다. 그것을 삭제하려면
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3