이번 포스팅에서는 환경변수에 대해 알아보고 환경변수를 이용해 DB Server에 접속해보고자 한다.
< 목차 >
- 환경변수란?
- 환경변수 설정해서 mysql 사용하기
1. 환경변수란?
위키백과에서는 환경변수를 다음과 같이 정의하고 있다.
환경 변수(environment variable)는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임이다.
출처 : 위키백과
환경변수가 어떠한 것들을 일컫는지 조금 더 자세히 살펴보면 다음과 같다.
- 컴퓨터 동장, 특히 쉘 명령 수행에 영향을 미치는 변수들
- 실행 환경을 설정하기 위한 변수
- 시스템의 속성을 기록하고 있는 변수
환경변수란 쉽게 말해 운영체제에서 저장하고 있는 변수명이라고 생각하면 된다. Windows, Linux 등 운영체제(OS)라면 운영체제 안에서 사용할 수 있는 변수를 설정할 수 있는데 특정 디렉토리 경로, 실행파일 또는 명령 등을 환경변수로 등록함으로써 사용하려고 할 때 직접 접근해서 실행하는 번거로움을 없애 작업의 생산성과 편의성을 높일 수 있다.
WSL에서 환경변수를 설정한 후 환경변수를 불러오는 작업을 간단하게 수행해보자.
WSL에서 ls -al을 입력하면 .bashrc 라는 파일이 보일 것이다. code .bashrc를 입력해 해당 파일을 열고 bitkunst라는 변수에 hi라는 값을 넣어보도록 하자.
.bashrc 파일을 수정 완료했으면 터미널로 돌아와서 source .bashrc를 입력해 리눅스에 반영해주도록 하자. 다음과 같이 echo $bitkunst 를 입력하면 우리가 설정한 bitkunst라는 환경변수에 저장되어 있던 값인 hi가 출력되는 것을 확인할 수 있다.
이로써 우리가 알 수 있는 사실은 윈도우, 리눅스 같은 운영체제에서도 자주 사용하는 값들은 변수로 설정하고 저장해서 사용할 수 있다는 것이다. 일례로 환경변수 중 PATH라는 변수에는 자주 사용되는 경로들이 저장되어 있다.
Node.js에서도 현재 운영체제에서 사용하고 있는 환경변수들을 가져올 수 있는 명령어가 있는데 process.env를 사용하면 된다. process.env를 사용하면 현 운영체제의 환경변수를 가져올 수 있다.
2. 환경변수 설정해서 mysql 사용하기
협업 또는 배포를 하는 과정에서 다음과 같이 중요한 정보들이 GitHub에 올라간다거나 오픈소스로 공개되어 버리면 보안상의 이슈로 많은 문제들이 발생할 수 있다.
const mysql = require('mysql')
const connection = mysql.createPool({
host: 'localhost',
user: 'bitkunst',
password: 'password',
database: 'project1'
})
계정명, 비밀번호와 같은 민감한 정보들을 가리면서 구현하는 방법 중의 하나가 바로 환경변수를 사용하는 방법이다. 환경변수에 user, password, database와 같은 정보들을 저장한 다음 불러오는 방식으로 사용하게 되는 것이다. 이 때 사용하는 라이브러리가 바로 "dotenv" 이다. dotenv를 사용하면 환경변수를 일일히 설정해줘야 하는 번거로움 없이 환경변수를 파일에 담아서 사용할 수 있게끔 처리가 가능하다.
터미널 창에 npm install dotenv 를 입력해 설치를 완료한 후 프로젝트 폴더의 최상위 디렉토리에 .env 파일을 생성해주도록 하자. 그리고 .bashrc에서 환경변수를 설정했던 방법과 마찬가지로 bitkunst=hi 라고 .env 파일 안에 입력해보자.
dotenv 라이브러리는 우리가 환경변수를 굳이 설정하지 않아도 .env 파일이 대신 해주게끔 하는 라이브러리라고 생각하면 된다. 따라서 실제 배포를 할 때는 환경변수를 사용해서 배포를 하고 개발환경에서는 .env 파일을 활용하면 된다는 것이다.
require('dotenv').config()
require('dotenv') 로 dotenv 라이브러리를 가져온 후 config( ) 메소드를 호출하게 되면 .env 파일 안에 있는 변수들을 환경변수로 세팅해준다. 아래와 같이 test.js 파일 안에서 console.log( )를 사용해 process.env.bitkunst를 출력해보도록 하자.
.env 파일 안에서 bitkunst=hi 라고 설정해 놓은 값이 환경변수가 되어 출력되는 것을 확인할 수 있다. dotenv 라이브러리를 사용하면 이처럼 .env 파일을 이용해 환경변수를 쉽게 세팅할 수 있게 된다.
dotenv 라이브러리의 역할을 알았다면 이제 .env 파일을 사용해서 mysql을 운용하는 방법을 살펴보도록 하자.
위와 같이 host, user, password, database에 들어갈 내용들을 .env 파일 안에 변수와 함께 작성해 주도록 한다. 그리고 .env 파일의 내용을 가져오고 싶은 파일 안에서 require('dotenv').config( )를 작성해주고 "process.env.변수명" 으로 .env 파일 안에 작성된 내용을 가져오면 된다.
마지막으로 .gitignore 파일 안에 .env 파일을 추가해서 .env 파일 안에 작성된 내용이 GitHub과 같은 곳에 오픈소스로 공개되지 않도록 처리를 해주면 된다.
이로써 환경변수를 설정해서 mysql을 사용하는 방법에 대해 알아보았다. 처음 mysql을 세팅하는 단계에서 진행해줘야 하는 작업이므로 제대로 숙지하고 있도록 하자.
'MySQL' 카테고리의 다른 글
Node.js - MySQL (5) 커넥션 풀 (Connection Pool) (0) | 2022.02.28 |
---|---|
Node.js - MySQL (4) MySQL 연결하기 (개념) (0) | 2022.02.28 |
Node.js - MySQL (3) 테이블 생성하기 (0) | 2022.02.18 |
Node.js - MySQL (2) SQL 구문 정리 (0) | 2022.02.17 |
Node.js - MySQL (1) 환경설정 (0) | 2022.02.17 |