모든 일에 의문을 제기하고 그 의문을 해결하기 위해 지식을 구하고 공부
env, shell 개념 본문
사용 목적
- 비밀 설정 정보 관리
DB connection, API Key 등 비밀 정보가 노출되지 않도록 별도 관리가 필요함
유의점
.env 는 암호화된 파일이 아니다. 조회/수정 모두 가능하다.
따라서 .gitingnore 를 통해 해당 파일이 버전 관리 되지 않도록 해야 한다.
.json, Object 등을 사용하지 않고 왜 굳이 .env 를 사용하는 것일까?
- .json 단점
- 파싱 작업이 들어가야 한다.
- 데이터가 추가될 때마다 set 해줘야 한다.
- .env 장점
- 배포 시 Shell 로 변경이 가능하여 수정이 용이하고, ShellScript(?) 를 이용해 SSH, CI/CD 에서 활약을 기대할 수 있다.
- express 에서는 NODE_ENV 라는 환경변수를 통해 개발환경과 운영환경에 따른 설정정보를 다르게 가져올 수 있다.
사용법
dotenv 를설치한다.
.env / .env.dev 파일 생성
프로젝트 내에서 process.env. 으로 접근 가능함.
이는 ES 모듈, CommonJS 환경에 따라 import 또는 require 하여 .config() 메서드를 사용한 이후부터 사용 가능하다.
react-native-dotenv 는 babel config 를 이용해 접근 가능하다.
https://www.daleseo.com/js-dotenv/
dotenv로 환경 변수 관리하기
Engineering Blog by Dale Seo
www.daleseo.com
.env 환경 변수
DB connection, API Key의 경우 SCM(source code management)를 사용하는 경우, 비밀 정보가 노출되므로 별도의 행위가 필요하다.배포시 cmd으로 config 변경 가능express에서는 NODE_ENV라는 환경변수를 통해 개발환
velog.io
**
shell 이란?
명령어/프로그램 실행 시 사용하는 인터페이스
커널과 사용자간의 다리 역할
커맨드라인 인터프리터 라고도 함.
shell script ?
셸은 자체 내에 프로그래밍 기능이 있어, 프로그램을 작성할 수 있다.
셸 프로그래밍 기능을 이용하면, 여러 명령을 사용해 반복적으로 수행하는 작업을 하나의 프로그램으로 제작할 수 있다.
셸 프로그램을 셸 스크립트라고 부른다.
bash
bash 는 현재 리눅스의 표준 셸이다.
alias 기능, history 기능, 연산 기능 등 다양한 기능이 있음 ..
셸 변경도 가능함.
cat /etc/shells
bin/bash ...
셸 변수
보통 변수명=값 형태로 지정해 사용함. / 띄어쓰기가 있으면 안됨!
변수값을 출력할 때는 변수명 앞에 $를 붙이고 echo 명령어로 확인!
$ echo $GITHUB_TOKEN
셸 환경변수란?
...
bash 셸의 주요 환경변수
- HOME (현재 사용자의 홈 디렉터리)
- PATH(실행파일을 찾는 디렉터리 경로)
- PWD (사용자의 현재 작업 디렉토리)
- SHELL (사용자의 로그인 셸)
- TERM (로그인 터미널 타입)
- USER (사용자 이름)
https://jhnyang.tistory.com/57
https://jhnyang.tistory.com/58?category=815412