깃허브나 깃허브 데스크탑 등을 쓰다보면 코드에 포함된 개인 정보를 함유한 키들로 커밋이 안 되는 오류를 한 번씩 경험해봤을 것이다.
이를 해결하기 위한 방법으로 .env 파일을 만드는 것이다. .env 파일을 만들고 .gitignore에 .env를 추가해주면 된다.
여기서 환경 변수 관리의 필수 도구인 .env 파일이 무엇인지 알아보자.
.env 파일이란?
: 소프트웨어 개발에서 환경 변수(environment variables)를 저장하는 간단한 텍스트 파일
* 환경 변수는 애플리케이션이 실행되는 환경에 따라 달라지는 설정 값을 말하며, 데이터베이스, 연결 정보, API 키, 비밀 키, 서버 포트 번호 등을 포함할 수 있다.
* 환경 변수는 운영 체제 수준에서 관리할 수 있지만, 애플리케이션별로 개별적인 설정을 관리하고, 다양한 실행 환경(개발, 테스트 등)에서 유연하게 사용할 수 있도록 .env 파일에 정의된다.
사용하는 이유
: 주로 개발 환경에서 코드와 환경 설정을 분리하기 위해 사용된다.
1. 환경 간 일관성 유지
- 코드의 재사용성을 높이고, 다른 환경(개발, 테스트, 프로덕션 등) 간에 설정을 쉽게 변경할 수 있게 해준다.
2. 보안성 강화
- 민감한 정보(API 키, 데이터베이스 비밀번호 등)를 코드 내에 직접 포함시키지 않는다.
3. 유지보수 용이성
- 환경 변수 변경만으로도 애플리케이션의 동작을 조정할 수 있어 코드 수정 없이도 설정 변경이 가능핟.
.env 파일 사용하는 방법
.env 파일은 일반적으로 프로젝트의 루트 디렉토리에 위치하고, KEY-VALUE 쌍으로 구성된다.
* 새 파일 만들기로 .env 파일을 만들어도 되고,
* 터미널에서 루트 디렉토리로 이동한 후,
touch .env
명령어를 실행해주면 .env 파일이 생성된다.
.env 파일에는 KEY 값, 등등 넣어주면 된다.
나는 API KEY를 넣어주었는데, 코드에서 쓸 이름(OPENAI_API_KEY)을 작성해주고, 발급 받은 키를 붙여넣어준다.
2024.08.21 - [Kakaotech Bootcamp/개인실습] - [OpenAI API] OpenAI API 키 발급
[OpenAI API] OpenAI API 키 발급
OpenAI API를 사용하려면 API 키를 발급 받아야 한다. https://openai.com/index/openai-api/위의 링크는 OpenAI API 링크로, 회원가입을 한다. [로그인 후 홈 화면] 회원가입 후 로그인하면 위와 같은 화면
zo0oz.tistory.com
이제 .env 파일에 저장한 API KEY를 불러오는 방법이 필요할 것이다.
import openai
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
- dotenv 라이브러리
- .env 파일에 정의된 환경 변수를 쉽게 로드할 수 있도록 도와주는 Python 라이브러리
- load_dotenv() 함수
- 현재 디렉토리 또는 지정된 경로에 있는 .env 파일을 찾아 그 안에 정의된 환경 변수를 로드한다.
- 이 과정에서 .env 파일에 있는 모든 환경 변수가 Python의 os.environ에 추가된다.
* os.environ
: os 모듈에서 제공하는 딕셔너리와 유사한 객체로, 현재 환경에 설정된 모든 환경 변수를 관리하는 데 사용된다.
- 환경 변수 관리
- os.environ은 시스템 환경 변수(environment variables)를 접근하고 조작할 수 있는 인터페이스를 제공한다.
- 딕셔너리 유사 객체
- os.environ은 딕셔너리와 비슷한 구조를 가지며, 환경 변수의 이름(키)과 그에 대응하는 값(밸류)으로 이루어져 있다.
- 이 객체를 통해 환경 변수를 읽거나, 새로운 환경 변수를 추가하거나, 기존 환경 변수를 수정할 수 있다.
- os.getenv() 로 환경 변수 읽기
- os.getenv("OPENAI_API_KEY"): 시스템 환경 변수에서 "OPENAI_API_KEY" 라는 이름의 변수를 찾아 그 값을 반환한다.
- 만약 해당 변수가 존재하지 않으면, None 반환
- OpenAI API를 사용할 수 있도록 openai.api_key에 할당한다.
github에 코드 파일 한 번에 커밋할 때
이렇게 .env 파일을 생성해주고, 루트 디렉토리에서 gitignore 파일을 생성해준다.
touch .gitignore
.gitignore 파일이란?
: Git에서 특정 파일이나 디렉토리를 버전 관리에서 제외시키기 위해 사용하는 구성 파일
한 마디로 레포지토리에 올리고 싶지 않은 것들을 자동으로 막아주는 파일인 셈이다.
보통 더미 파일들의 커밋을 막기 위해서도 사용한다.
.gitignore 파일을 만든 후 아래의 링크에서 각자 알맞는 os를 선택하고 .gitignore에 들어갈 텍스트를 복사해서 붙여넣는다.
거기에 추가로 .env 라고 써준다.
https://www.toptal.com/developers/gitignore
gitignore.io
Create useful .gitignore files for your project
www.toptal.com
'🛠️ 형상관리 > Git' 카테고리의 다른 글
[Git] Fork와 Clone (3) | 2024.10.23 |
---|---|
GIt 병합 충돌 문제/해결 (0) | 2024.09.03 |
Git 버전 관리 실습 (0) | 2024.07.30 |
Git 기본 명령어 및 협업 워크플로우 (0) | 2024.07.30 |
[Git][MacOS] 설치 및 명령어 (0) | 2024.07.28 |