0Pricing
AI Agents · 강의

.env 파일 및 python-dotenv

.env 파일 로드, .gitignore 규칙, dotenv 모범 사례를 다룹니다.

.env 파일 및 python-dotenv은(는) CoddyKit의 무료 AI Agents 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

셸에서 export를 사용하는 방식의 문제

셸에서 export로 환경 변수를 설정하는 방식은 작동하지만, 새로운 터미널 세션을 열 때마다 다시 설정해야 합니다. 이런 방식으로 많은 변수를 관리하면 오류가 발생하기 쉽고 팀원과 공유하기도 어렵습니다.

.env 파일은 모든 프로젝트 변수를 자동으로 로드되는 하나의 파일에 저장하여 이 문제를 해결합니다.

.env 파일 형식

.env 파일에는 줄마다 하나씩 KEY=VALUE 쌍이 들어 있습니다. #으로 시작하는 줄은 주석입니다. 값은 선택적으로 따옴표로 묶을 수 있습니다. 이 단순한 형식은 수십 가지 도구와 프레임워크에서 지원됩니다.

# .env file (NEVER commit this file to git)

# Required API keys
OPENAI_API_KEY=sk-proj-your-real-key-here
SEARCH_API_KEY=tvly-your-tavily-key-here

# Optional settings with defaults
AGENT_MODEL=gpt-4o-mini
AGENT_MAX_STEPS=20
LOG_LEVEL=DEBUG

# Database (optional — disables memory storage if not set)
# DATABASE_URL=postgresql://user:pass@localhost/agentdb

# Environment identifier
ENV=development

python-dotenv로 .env 로드하기

pip install python-dotenv로 python-dotenv를 설치하십시오. os.environ을 읽기 전에 진입점의 맨 위에서 load_dotenv()를 호출하십시오. 이 함수는 .env 파일을 로드하고 환경을 채웁니다.

# pip install python-dotenv
from dotenv import load_dotenv
import os

# Load .env file — call this BEFORE reading any env vars
load_dotenv()

# Now all variables from .env are available via os.environ
openai_key = os.environ['OPENAI_API_KEY']
model = os.getenv('AGENT_MODEL', 'gpt-4o-mini')
max_steps = int(os.getenv('AGENT_MAX_STEPS', '20'))

print(f'Model: {model}, Max steps: {max_steps}')

load_dotenv() 옵션

load_dotenv()에는 몇 가지 유용한 옵션이 있습니다. dotenv_path=는 사용자 지정 경로를 지정하고, override=True는 기존 환경 변수를 덮어씁니다(기본값은 기존 변수를 건너뜁니다). verbose=True는 어떤 파일이 로드되었는지 로그로 기록합니다.

from dotenv import load_dotenv
import os

# Load from a specific path
load_dotenv(dotenv_path='/path/to/custom/.env')

# Override existing environment variables
# (by default, existing vars are NOT overridden)
load_dotenv(override=True)

# Load a specific environment file
env_file = os.getenv('ENV_FILE', '.env')
load_dotenv(dotenv_path=env_file, verbose=True)

# Find .env automatically (searches up the directory tree)
from dotenv import find_dotenv
load_dotenv(find_dotenv())

dotenv_values()로 명시적 설정 딕셔너리 사용하기

dotenv_values()는 환경을 수정하지 않고 .env 파일의 내용을 Python 딕셔너리로 반환합니다. 프로세스 환경을 오염시키지 않고 설정을 검사하거나 사용하려 할 때 유용합니다.

from dotenv import dotenv_values

# Read .env into a dict without touching os.environ
config = dotenv_values('.env')

print(config.get('AGENT_MODEL'))   # 'gpt-4o-mini'
print(config.get('LOG_LEVEL'))     # 'DEBUG'

# Merge .env with actual environment (env vars take priority)
import os
combined = {**dotenv_values('.env'), **os.environ}

# This means actual environment variables override .env values
# Useful for CI where env vars are injected by the pipeline

.env.example 파일

자리표시자 값으로 모든 필수 변수를 문서화하는 .env.example 파일을 만드십시오. 이 파일은 git에 커밋되는 파일(IS)이며, 팀원과 새 개발자에게 무엇을 구성해야 하는지 알려 주는 문서 역할을 합니다.

# .env.example — commit this file to git
# Copy to .env and fill in real values:
# cp .env.example .env

# Required API keys (get from respective providers)
OPENAI_API_KEY=sk-proj-your-openai-key-here
SEARCH_API_KEY=tvly-your-tavily-key-here

# Optional settings
AGENT_MODEL=gpt-4o-mini
AGENT_MAX_STEPS=20
LOG_LEVEL=INFO
ENV=development

# Database (optional)
# DATABASE_URL=postgresql://user:password@localhost:5432/agentdb

.env를 .gitignore에 추가하기

.env 파일은 git에 절대(NEVER) 커밋해서는 안 됩니다. 프로젝트를 만들 때 즉시 .gitignore에 추가하십시오. 첫 커밋 전에 해당 파일이 무시되는지 확인하십시오.

# .gitignore — add these lines

# Environment files with real secrets
.env
.env.local
.env.production
.env.staging

# But DO commit these:
# .env.example  (placeholder values, safe to share)

# Verify .env is ignored before committing:
# git check-ignore -v .env
# .gitignore:1:.env   .env    <-- means it IS ignored (good)

# If .env was already tracked:
# git rm --cached .env
# git commit -m 'Remove .env from tracking'
# echo '.env' >> .gitignore

.env 커밋을 차단하는 사전 커밋 훅

.env 파일이 포함된 모든 커밋을 차단하는 사전 커밋 훅을 추가하십시오. 누군가 .gitignore 확인을 잊더라도 자동 안전장치가 작동합니다.

# .git/hooks/pre-commit (make executable: chmod +x .git/hooks/pre-commit)

#!/bin/sh
# Block commits that include .env files with real content
if git diff --cached --name-only | grep -qE '^\.env$';
then
  echo 'ERROR: .env file is staged for commit!'
  echo 'This file contains secrets and must NOT be committed.'
  echo 'Run: git reset HEAD .env'
  exit 1
fi

# Also check for common secret patterns in any staged file
if git diff --cached | grep -qE '(sk-proj-|tvly-|xai-)';
then
  echo 'WARNING: Possible API key detected in staged changes!'
  echo 'Review carefully before committing.'
fi

exit 0

프레임워크별 .env 로드하기

많은 프레임워크는 .env 파일을 자동으로 로드합니다. FastAPI(pydantic-settings 사용), Django(django-environ 사용), Docker Compose는 모두 .env를 기본적으로 지원합니다. 이러한 방식을 알면 중복 로드를 피할 수 있습니다.

# FastAPI with pydantic-settings (auto-loads .env):
# pip install pydantic-settings
from pydantic_settings import BaseSettings

class Settings(BaseSettings):
    openai_api_key: str
    agent_model: str = 'gpt-4o-mini'
    log_level: str = 'INFO'

    class Config:
        env_file = '.env'

# settings = Settings()  # auto-reads .env and validates types
# print(settings.agent_model)  # 'gpt-4o-mini'

# FastAPI is also fine with plain load_dotenv() at the top of main.py
# No need to use pydantic-settings for simple agents

환경별 여러 .env 파일

환경별로 별도의 .env 파일을 사용하십시오. 예를 들어 .env.development, .env.staging, .env.production을 사용할 수 있습니다. ENV 변수에 따라 올바른 파일을 로드하십시오.

import os
from dotenv import load_dotenv

# Determine which environment to load
env = os.getenv('ENV', 'development')

# Try environment-specific file first, fall back to base .env
env_file = f'.env.{env}'
if os.path.exists(env_file):
    load_dotenv(env_file)
    print(f'Loaded {env_file}')
else:
    load_dotenv('.env')
    print('Loaded .env')

# Usage:
# ENV=staging python agent.py     -> loads .env.staging
# ENV=production python agent.py  -> loads .env.production
# python agent.py                 -> loads .env (default development)

전체 설정 확인 목록

새 에이전트 프로젝트를 위한 완전한 .env 설정 확인 목록입니다:

  1. 실제 키가 포함된 .env를 생성하십시오(커밋하지 않기)
  2. 자리표시자가 포함된 .env.example을 생성하십시오(이 파일은 커밋)
  3. .env를 .gitignore에 추가하십시오
  4. 진입점 맨 위에 load_dotenv()를 추가하십시오
  5. 시작할 때 필수 변수를 검증하십시오
  6. README 설정 안내에 cp .env.example .env를 추가하십시오

지식 확인: .env 파일과 python-dotenv

.env 파일과 python-dotenv 라이브러리에 대한 이해도를 확인하십시오.

복습: .env 파일과 python-dotenv

이제 에이전트 프로젝트를 위한 완전한 .env 작업 흐름을 갖추었습니다:

  • 실제 값이 포함된 .env 파일을 생성하십시오. 절대 커밋하지 마십시오
  • 자리표시자가 포함된 .env.example을 생성하십시오. 항상 커밋하십시오
  • .env*를 .gitignore에 추가하십시오(.env.example 제외)
  • 진입점의 맨 위에서 load_dotenv()를 호출하십시오
  • os.environ을 건드리지 않고 딕셔너리에 접근하려면 dotenv_values()를 사용하십시오
  • 환경별로 별도의 파일을 사용하십시오(.env.staging, .env.production)

이 방식은 비밀 정보를 git에서 분리하면서 로컬 개발을 쉽게 해 줍니다.

자주 묻는 질문

“.env 파일 및 python-dotenv” 강의는 무료인가요?

네 — “.env 파일 및 python-dotenv” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents 강의 전체를 잠금 해제할 수 있습니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

“.env 파일 및 python-dotenv”에서 뭘 배우나요?

.env 파일 로드, .gitignore 규칙, dotenv 모범 사례를 다룹니다. 브라우저에서 직접 실행하는 실습 코드로 AI Agents을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AI Agents을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“.env 파일 및 python-dotenv” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Agents 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Agents 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 에이전트를 위한 환경 변수
  2. .env 파일 및 python-dotenv
  3. 비밀 정보 교체 및 보안
  4. 개발 및 운영 환경 구성 프로필
← AI Agents(으)로 돌아가기