프론트엔드 정복하기
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/
**
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