개발할 때 API 키나 데이터베이스 URL 같은 민감한 정보를 코드에 직접 넣으면 보안상 위험하다.
이를 방지하기 위해 환경 변수(Environment Variables) 를 사용하며, 이를 쉽게 관리하기 위해 .env
파일을 활용할 수 있다.
Python에서 환경 변수를 가져올 때는 os 모듈의 getenv() 함수를 사용한다.
import os
GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
print(GOOGLE_API_KEY) # 환경 변수에서 GOOGLE_API_KEY 값을 가져옴
위 코드는 시스템 환경 변수에서 GOOGLE_API_KEY 값을 찾고, 존재하면 가져오고 없으면 None을 반환한다. 하지만, 시스템 환경 변수에 값이 설정되지 않았다면 가져올 수 없다는 한계가 있다.
.env
파일은 환경 변수를 저장하는 텍스트 파일로, 프로젝트 폴더 내에서 쉽게 관리할 수 있다.
프로젝트 루트 디렉터리에 .env 파일을 생성하고, 다음과 같이 환경 변수를 정의한다.
# .env 파일 내용
GOOGLE_API_KEY=your_actual_google_api_key_here
DATABASE_URL=postgres://username:password@localhost:5432/mydatabase
이제 .env 파일에서 환경 변수를 불러와 사용할 수 있다.
Python에서는 .env 파일을 직접 읽지 않기 때문에 dotenv 라이브러리를 사용해야 한다.
pip install python-dotenv
import os
from dotenv import load_dotenv
# .env 파일 로드
load_dotenv()
# 환경 변수 가져오기
GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
DATABASE_URL = os.getenv("DATABASE_URL")
print(f"Google API Key: {GOOGLE_API_KEY}")
print(f"Database URL: {DATABASE_URL}")
이렇게 하면 .env 파일의 내용이 환경 변수로 등록되고, os.getenv()를 통해 값을 가져올 수 있다.
.gitignore
에 .env
추가하기.env 파일에는 API 키나 비밀번호 같은 민감한 정보가 포함될 수 있기 때문에, 깃허브(GitHub) 등의 공개 저장소에 업로드되지 않도록 해야 한다. 이를 방지하기 위해 .gitignore 파일에 .env를 추가한다.
.gitignore
파일 수정# .env 파일 추가
.env
이렇게 하면 .env 파일이 Git에 업로드되지 않다.
os.getenv("변수명")
을 사용하면 환경 변수 값을 가져올 수 있음.env
파일을 사용하면 환경 변수를 더 쉽게 관리할 수 있음.env
파일을 로드하려면 dotenv
라이브러리(load_dotenv()
)가 필요함.env
파일은 절대 깃허브에 올리지 않도록 .gitignore
에 추가해야 함이 방법을 사용하면 보안성을 유지하면서도 환경 변수를 효율적으로 관리할 수 있다.