티스토리 뷰
▶환경변수 .env
데이터베이스 연결 설정 정보를 입력할 때 .env 파일을 이용하는 게 안전하다는 말을 들을 적이 있어서 이에 대해 정리해보려고 합니다.
🔎 환경변수 ?
프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임 [ 위키피디아 ]
환경'변수' 라는 이름 그 자체로 어떤 변수값을 의미합니다.
🔎 그렇다면 dotenv는 뭘까
우선 env란
유닉스 및 유닉스 계열 운영 체제용 셀 명령어이다.
환경 변수의 목록을 출력하거나, 현존하는 환경을 수정하지 않고도 변경된 환경 내에서 다른 유틸리티를 실행하는데 사용할 수 있다.
.env를 사용함으로써 변수를 추가하거나 제거할 수 있으며, 기존 변수는 새로운 값을 이들에 할당함으로써 변경할 수 있다.
[ 위키피디아 ]
dotenv는 환경변수를 .env라는 파일에 저장하고
process.env로 로드하는 의존성 모듈입니다.
이를 사용하는 이유로는
개발 과정에서 사용되는 고유한 api key값 등 민감한 정보의 보안을 위해서 인데요.
만약 깃허브 같이 오픈소스에 공개될 경우에 해킹을 당할 위험이 있기 때문에
민감한 정보일 경우 .env 를 사용해야 합니다!
🔎 dotenv 사용법
1. dotenv 패키지 설치
$ npm i dotenv
2. .env 파일 생성 - 최상단 경로에 생성
설치 후 .env 파일을 최상단 경로(package.json과 같은 폴더)에 생성한 후
들어갈 텍스트는 반드시 이름 = 값 형식으로 적어줍니다.
📄 .env 파일
DATABASE_NAME='[DB명]'
DATABASE_USERNAME='root'
DATABASE_PASSWORD=''
3. .env 파일 불러오기
.env를 사용하고자 하는 파일 안에 dotenv를 부릅니다.
dotenv.config()는 현재 디렉토리의 .env 파일을 자동으로 인식하여 환경변수를 세팅합니다.
dotenv.config(경로)는 원하는 .env 파일의 위치를 직접 지정하여 세팅할 수 있습니다.
📄 환경변수를 사용할 파일
const dotenv = require('dotenv');
dotenv.config();
4. process.env.변수이름
.env에 저장되어 있는 변수들을 부를 때는 process.env.변수이름 으로 불러주면 됩니다.
환경변수는 key-value 형태로 저장이 되며, 부를 때는 process.env[key] 형태로 부릅니다.
📄 환경변수를 사용할 파일
user: process.env.DATABASE_USERNAME || 'root',
password: process.env.DATABASE_PASSWORD || '',
database: process.env.DATABASE_NAME || '[DB명]'
🔎 dotenv 주의사항 - .gitignore에 .env 을 추가하자 꼭!⭐
.env 파일에 저장하더라도 .env 파일을 오픈소스(깃허브)에 올린다면 공개하는 것과 다름없기 때문에 .gitignore 파일에 .env파일을 추가하여 무시하도록 해줘야 합니다. 꼭!💡
📄 .gitignore 파일
.env
'백엔드 > NodeJS' 카테고리의 다른 글
[NodeJS] sequelize 통해서 MySQL 연동 (2) | 2022.12.27 |
---|---|
[NodeJS] prettier & eslint 설정하기 (0) | 2022.12.27 |
[NodeJS] body-parser란? (0) | 2022.12.02 |
[NodeJS] NodeJS(express) + React 연동하기 (0) | 2022.11.24 |
[NodeJS] nodeJS + mongoDB + EC2 권한 문제 해결하기(배포) (0) | 2022.11.24 |
- Total
- Today
- Yesterday
- react-query
- 프론트엔드 공부
- 디프만
- 타입스크립트
- Python
- 데이터분석
- 자바스크립트
- 리액트 훅
- frontend
- react
- 프론트엔드 기초
- next.js
- 스타일 컴포넌트 styled-components
- 리액트
- 자바
- styled-components
- 프론트엔드
- 인프런
- rtl
- TypeScript
- HTML
- 자바스크립트 기초
- JSP
- 딥러닝
- jest
- 머신러닝
- 파이썬
- testing
- CSS
- 프로젝트 회고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |