프로젝트를 진행하다보면 API Key라던가 민감한 정보를 환경 변수로 넣고 사용할 때가 있다. 그런데 프로젝트마다 사용하는 환경변수가 다르다면?? 환경 변수를 세팅하는 스크립트 파일을 관리하는 것도 번거로운 일이 된다.
direnv
direnv는 앞선 문제를 해결하는 도구다. 이름 그대로 폴더별로 환경을 관리해주는 도구이기 때문이다. direnv로 설정을 해 놓으면 어떤 디렉토리에 접근 할 때마다 자동으로 설정해놓은 환경변수나 원하는 런타임 버전 지정 등을 알아서 할 수 있다. 작동 방식도 간단하다. 디렉토리에 .envrc라는 파일이 있다면 그 파일을 실행한다. .envrc에 환경 변수를 세팅하는 구문을 넣으면 된다는 의미기도 하다.
문제점
direnv는 맥이나 리눅스같은 Unix 계열 환경을 위해 작성된 도구다. 윈도우를 위한 파일을 제공했지만 제대로된 사용법은 언급하지 않았기에 유저끼리 정보를 공유한 상황이다. 이 정보를 토대로 윈도우 10에서 사용가능한 방법을 다룰 예정이다.
설치
https://github.com/direnv/direnv/releases
위 링크에 접속하면 direnv release 버전들에 접근할 수 있다. 최근 버전에서는 윈도우를 위한 실행 파일이 없다. 과거 버전에서 direnv.windows-386.exe 나 direnv.windows-amd64.exe 를 찾아서 다운받는다. 만약 미래의 버전에서 윈도우용 실행 파일이 있다면 그것을 다운받기를 추천한다.
윈도우에서 direnv를 사용하기 위해서는 git bash나 cygwin 등 Unix 계열 명령어를 입력할 수 있는 도구가 필요하다. direnv를 사용할 정도의 개발자라면 git도 깔려있을테니 git bash 사용을 권장한다. 설명도 git bash 기준으로 진행하겠다.
다운로드를 다 받았다면 해당 파일을 옮겨야 한다. C:\Program Files\Git\usr\bin 에 direnv 실행 파일을 옮긴다. 이때 파일 이름을 direnv만 남기는게 좋다. echo 명령어의 경우 echo라는 이름의 실행 파일을 통해 명령어를 수행하는 구조다. 그러므로 길게 입력하기 귀찮으니 direnv라고 이름 짓는게 좋음.
그 다음에는 .bashrc에 아래 명령어를 추가하면 된다. git bash에서 vi나 vim이나 사용하기 편한 에디터 이용.
eval "$(direnv hook bash)"
이렇게만 해주면 direnv 사용이 가능할 것이다. direnv version을 입력해서 제대로 작동하는 지 테스트 필요. 아직까지는 문제없이 쓰고 있는데 문제가 생기면 추후에 문서를 업데이트하겠다.
사용법
아까 언급했듯이 디렉토리 안의 .envrc 파일을 읽는 것이 direnv의 주 사용법이다. .envrc 파일을 만들고 안에 export로 환경 변수 세팅해주면 된다. 다만 새로운 디렉토리의 .envrc를 읽을때는 권한을 허락해줘야한다. direnv allow 명령어 입력해주면 그 즉시 .envrc 파일을 읽어온다. 그 다음부터는 디렉토리에 접근할때마다 자동으로 실행된다.
test라는 폴더에 .envrc를 만든 모습
direnv 오류 -> allow로 접근 허락 -> .envrc 자동으로 읽어오기
참고로 .envrc를 수정하게 되면 다시 direnv allow를 실행해줘야 한다!!
'TechTalk' 카테고리의 다른 글
Webpack 에 대한 소개 (1) | 2023.02.02 |
---|---|
Javascript vs Typescript (0) | 2023.01.16 |
[Android] secret 관리를 위해 local.properties 활용하기 (0) | 2022.03.30 |
키움증권 영웅문4에서는 조건식 정보를 어떻게 관리할까? (0) | 2022.03.19 |
[Database] 데이터베이스 인덱스(Index)란? (0) | 2021.06.10 |