direnv 가 푸는 문제
~/projects/ai-app 안일 때만 OPENAI_API_KEY 가 설정되고, 나가면 풀리길 원해. 수동 export / unset 은 사고 잘 남. direnv 가 자동화 — 디렉터리에 .envrc 만들고 한 번 allow 하면 cd 마다 자동 load / unload.
설치
brew install direnv
# ~/.zshrc 끝에
eval "$(direnv hook zsh)"사용
# ~/projects/ai-app 안
echo 'export OPENAI_API_KEY=sk-...' > .envrc
echo 'PATH_add bin' >> .envrc # ./bin 을 PATH 에 추가
direnv allow # 일회성 승인
echo $OPENAI_API_KEY # 설정됨
cd /tmp
echo $OPENAI_API_KEY # 비어 있음direnv allow 가 보안 게이트 — 무작위 .envrc 가 cd 만으로 자동 실행되지 않아.
흔한 .envrc 패턴
export DATABASE_URL=postgres://...PATH_add ./bin— 프로젝트 bin 을 PATH 앞에 추가.source_env ../shared.envrc— 상위의 env 공유.layout python3— venv 자동 생성 + 활성화.use mise— 프로젝트별 mise 툴스택 다리.
대안 대비 우월한 점
수동 export 대비 direnv 는 나가는 길에 unset 절대 안 까먹어. dotfile 프레임워크 대비 작아 (binary 하나). docker-compose env 대비 즉시 — 컨테이너 기동 없음. Pippa 스택도 같은 이유로 cwkPippa 들어가면 conda env 자동 활성에 direnv 사용.