~/VibeHandbook
$39

챕터 05 · 05

환경 변수와 설정

어떤 값들은 코드 안에 적어 넣을 수 없습니다: 비밀 키, 데이터베이스 비밀번호, 어떤 서비스의 주소 같은 것들이죠. 그리고 어떤 값들은 앱이 어디서 도는가에 따라 바뀌어야 합니다. 여러분이 노트북에서 테스트하는 코드(dev 환경)는 테스트용 데이터베이스와 대화해야 하고, 사용자들이 실제로 쓰는 살아있는 앱(prod, 즉 프로덕션 환경)은 진짜 데이터베이스와 대화해야 합니다 — 같은 코드를 쓰면서요.

그 답이 환경 변수(흔히 "env vars"라고 부르죠)입니다: 코드 바깥에 머물다가 코드가 실행될 때 코드에 공급되는, 이름 붙은 값들입니다. 코드는 "DATABASE_URL을 줘"라고 말하고, 환경이 어느 것을 건네줄지 결정합니다.

# 설정 파일 (예: .env) — 값은 코드가 아니라 여기에 산다

DATABASE_URL=postgres://localhost/myapp_dev
STRIPE_SECRET_KEY=sk_test_51H...     # dev = 테스트용 키
SEND_REAL_EMAILS=false               # 테스트 중에는 진짜 사용자에게 이메일 보내지 말 것

두 가지 규칙이 진짜 고통을 덜어줄 겁니다:

  • 비밀은 절대 코드에 넣지 마세요. 코드 안에 있는 것은 무엇이든 공개될 수 있습니다(특히 공유된 저장소에서요). 그리고 유출된 결제 키나 데이터베이스 비밀번호는 진짜 비상사태입니다. 비밀은 env vars에 속하며, 버전 관리 바깥에 둬야 합니다.
  • dev와 prod는 다릅니다. 핵심은 같은 코드가 양쪽 모두에서 올바르게 동작한다는 것입니다. 어느 데이터베이스와 키를 쓸지 결정하는 것이 코드가 아니라 환경이기 때문이죠.

오프라인으로 보고 싶으세요?

PDF + EPUB + 다운로드형 프롬프트 라이브러리 + 버전 업데이트를 받으세요.

$ PDF 받기 — $39