환경변수이론 설치 및 활용

민정이등장·2024년 10월 26일
0
post-thumbnail

📌 환경변수(Environment Variable)란?

환경변수는 운영 체제(OS)나 애플리케이션에서 사용되는 데이터 값을 저장하는
메커니즘을 말한다.

프로그램의 동작을 조정하거나 구성하고, Node.js에서도 이러한 환경변수를 활용하여 애플리케이션의 설정과 동작을 조정한다.


1. 환경 변수와 라이브러리 설치

1-1. 환경 변수와 process.env

  • process.env를 통해 환경 변수에 접근할 수 있다.
  • 환경 변수는 프로세스의 일부로, process.env 객체로 관리된다.
  • 환경 변수는 계정 정보, 경로 등 다양한 정보를 포함한다.
  • 환경 변수를 관리하기 위해 데이터베이스에 접근할 때 환경 변수를 사용해야 한다.

1-2. 환경 변수 설정과 라이브러리 설치

  • 환경 변수를 생성하기 위해 dotenv 라이브러리를 설치해야 한다.
    npm install dotenv 명령어로 설치
  • 기존 환경 변수는 대문자로 사용하는 것을 원칙으로 한다.
  • dotenv 라이브러리가 .env 파일의 내용을 로드하여 process.env에 추가해준다
  • 선언된 환경 변수를 이용하기 위해 config 함수를 불러와야 한다.

1-3. 라이브러리 설치와 환경 변수 활용

  • 라이브러리 설치를 통해 환경 변수를 활용하는 프로그램을 생성할 수 있다.

  • 라이브러리 설치 후 process.env를 통해 환경 변수를 활용할 수 있다.

  • 환경 변수의 중요성을 이해하고 이를 관리하기 위해 필요한 작업을 수행해야 한다.

  • 프로젝트 진행 시, 환경 변수를 올리지 않고 라이브러리를 설치해도 된다.

    .env 파일에 PORT=8000이라 명시했으면 .js 파일에

    const express = require("express");
    const dotenv = require("dotenv");
    dotenv.config();
    const app = express();
    const PORT = process.env.PORT;
    
    app.listen(PORT, () => {
      console.log(`http://localhost:${PORT}`);
    });

    이렇게 써줄 수 있다.


2. package.json 설치 및 활용

2-1. package.json설치

  • package.json은 Node.js 프로젝트의 메타데이터를 저장하고, 의존성 관리 및 스크립트 실행에 사용되는 파일이다.
  • 버전 간 호환성 문제를 해결하고 코드 재사용성을 높이기 위해 사용된다.
  • 프로젝트를 초기화할 때, npm init 명령어를 통해 'package.json' 파일을 생성해야 한다.
  • 해당 경로에서 'package.json' 파일의 내용을 시스템에 반영하여 프로젝트를 실행해야 한다.
  • npm install cross-env명령어로 "cross-env": "^7.0.3",가 설치 된것을 확인한다. (Node.js 프로젝트에서 운영 체제 간 환경변수 설정을 도와주는 모듈)

2-2. package.json의 활용

  • package.json를 이용해 다양한 명령어와 프로젝트를 실행할 수 있다.
  • “start”, “prod” 등의 명령어로 특정 작업을 실행하고, Node.js 애플리케이션을 실행하기 위해 node index.js 명령어를 사용할 수 있다.
  • 'cross-env'는 환경 변수를 설정하기 위해 사용하는 도구로, 해당 명령어를 사용해 작업을 처리하면 프로젝트 실행에 영향을 미칠 수 있다
  • “start”라는 명령어를 통해 프로젝트의 시작점을 설정하고, “prod”라는 명령어로 프로젝트의 종료점을 설정할 수 있다.

2-3. package.json의 구체적인 활용 방법

  • package.json를 통해 development 환경과 production 환경을 구분하고 각각에 맞는 작업을 실행할 수 있다.
  • “start”라는 명령어로 프로젝트의 시작점을 설정하고, “prod”라는 명령어로 프로젝트의 종료점을 설정한다.
  • 명령어를 통해 프로젝트의 상황을 조절하고, 필요한 작업을 효율적으로 수행할 수 있다.
  • 다양한 명령어와 환경 설정을 통해 효과적인 프로젝트 관리가 가능하다.

( package.json파일 )

"scripts": {
	"start": "cross-env NODE_ENV=development nodemon index",
	"prod": "cross-env NODE_ENV=production nodemon index",
	"test": "echo \"Error: no test specified\" && exit 1"
},

"start": "cross-env NODE_ENV=development nodemon index",
이 명령어는 NODE_ENV 환경 변수를 development로 설정하고, nodemon을 사용하여 index.js 파일을 실행한다.
"prod": "cross-env NODE_ENV=production nodemon index",
이 명령어는 NODE_ENV 환경 변수를 production으로 설정하고, nodemon을 사용하여 index.js 파일을 실행한다.
"test": "echo \"Error: no test specified\" && exit 1"
이 명령어는 테스트 스크립트가 정의되지 않았음을 알리는 메시지를 출력하고, 에러 코드를 반환한다. 실제 테스트를 추가하기 전에 placeholder로 남겨두는 경우이다.

👍 cross-env설치 장점 👍

환경 분리 : NODE_ENV 변수를 통해 개발(development)과 프로덕션(production) 환경을 쉽게 구분할 수 있다.

일관성 : cross-env 덕분에 어떤 운영 체제에서든 동일한 방식으로 환경 변수를 설정할 수 있다. (협업시 팀원들간 동일한 명령어를 사용 하여 일관성 good)

편리한 실행 : npm start 또는 npm run prod 같은 명령어로 간편하게 서버를 실행할 수 있다.

유지 관리 용이 : 스크립트를 통해 환경에 따라 다른 설정을 쉽게 관리할 수 있다.

테스트의 용이성 : 이후에 테스트 환경을 추가하고 싶을 때, scripts에 쉽게 추가할 수 있어 유지보수와 확장이 용이하다.

profile
킵고잉~

0개의 댓글