目次  
1. 들어가며
Python은 프로그램 내에서 동적으로 설정을 관리하기 위해 ‘환경 변수’를 다룰 수 있습니다. 환경 변수는 시스템이나 애플리케이션이 실행 시 참조하는 설정 정보를 포함하며, 사용자 이름, 경로, 로케일 설정 등이 대표적인 예입니다. 본 글에서는 Python에서 환경 변수를 다루는 방법, 환경별로 설정을 관리하는 방법, 그리고 실용적인 활용 예를 소개합니다.2. 환경 변수란?
2.1 환경 변수의 정의
환경 변수란, 운영 체제나 애플리케이션이 프로그램 실행 시 참조하는 설정 정보입니다. 예를 들어, 기본 파일 경로, 사용자의 홈 디렉터리, 언어 설정 등이 환경 변수로 시스템에 저장되어 있으며, 이를 참조함으로써 프로그램은 동작을 적절히 제어합니다.2.2 Python에서의 환경 변수의 중요성
Python에서는 환경 변수를 활용하면 시스템 종속 설정이나 보안 위험을 줄일 수 있습니다. API 키나 데이터베이스 연결 정보 등과 같이 프로그램에 직접 작성하면 보안상의 문제가 발생할 수 있는 경우, 환경 변수를 사용하면 코드에 기밀 정보를 포함하지 않고 관리할 수 있습니다.
3. Python에서 환경 변수를 가져오고 설정하기
3.1 환경 변수 가져오기
Python에서 환경 변수를 가져오려면、os 모듈을 사용합니다。os.getenv() 함수나os.environ.get()을 사용하면、시스템의 환경 변수를 가져올 수 있습니다。이들은 특정 키를 인수로 받아、해당하는 환경 변수의 값을 반환합니다。존재하지 않는 경우는None을 반환하므로、프로그램 내에서 안전하게 다룰 수 있습니다。import os
print(os.getenv('HOME'))  # 사용자의 홈 디렉터리를 가져오기os.environ은 딕셔너리 형태로 환경 변수를 다룹니다。os.environ['HOME']으로 가져올 수 있지만、키가 존재하지 않는 경우는KeyError를 발생시키므로、get() 메서드가 더 유연합니다。import os
print(os.environ.get('HOME'))  # 오류 없이 홈 디렉터리를 가져오기3.2 환경 변수 설정과 추가
환경 변수를 설정하거나 추가할 때도 마찬가지로os.environ을 사용합니다。환경 변수의 값은 문자열로 저장되므로、숫자나 리스트 등 다른 타입은 사전에 문자열로 변환해야 합니다。import os
os.environ['NEW_VARIABLE'] = 'New Value'
print(os.environ['NEW_VARIABLE'])  # 'New Value'가 출력된다4. 환경 변수를 사용한 애플리케이션 설정 최적화
4.1 python-dotenv의 활용
대규모 프로젝트에서는 프로젝트별 설정을 환경 변수로 관리하는 것이 일반적입니다.python-dotenv라는 라이브러리를 사용하면, .env 파일에 환경 변수를 정의하고, 프로젝트 내에서 손쉽게 불러올 수 있습니다. .env 파일 예:DATABASE_URL=postgres://user:password@localhost:5432/dbname
SECRET_KEY=mysecretkeypython-dotenv를 사용하여 이러한 변수를 프로그램 내로 가져올 수 있습니다.from dotenv import load_dotenv
import os
load_dotenv()  # .env 파일을 불러옵니다
print(os.getenv('DATABASE_URL'))  # 'postgres://user:password@localhost:5432/dbname' 가 출력됩니다5. 환경 변수 삭제 및 변경
5.1 환경 변수 삭제
환경 변수를 삭제하려면del 문이나 os.environ.pop()을 사용합니다. del은 변수를 완전히 삭제하고, pop()은 값을 반환하면서 삭제할 수 있습니다。import os
os.environ['TEST'] = 'testing'
del os.environ['TEST']  # 'TEST' 환경 변수를 삭제pop()을 사용하는 예는 다음과 같습니다:import os
os.environ['TEST'] = 'testing'
print(os.environ.pop('TEST'))  # 'testing'이 출력되고 환경 변수가 삭제된다6. 프로젝트별 환경 변수 설정
6.1 환경별 변수 관리
개발, 테스트, 운영과 같은 서로 다른 단계에서 서로 다른 설정을 사용해야 할 때가 있습니다. 환경 변수는 이를 효율적으로 관리하는 수단입니다. 예를 들어, 개발 시에는 디버그 모드, 운영에서는 보안을 강화한 설정을 적용할 수 있습니다。import os
if os.getenv('PHASE') == 'development':
    print('개발 모드입니다')
elif os.getenv('PHASE') == 'production':
    print('운영 모드입니다')PHASE라는 환경 변수를 사용하면, 서로 다른 환경에 따라 적절한 처리를 수행할 수 있습니다。
7. 실전 예: 환경 변수를 사용한 언어와 단계 전환
7.1 언어 설정 전환
환경 변수는 언어 전환에도 유용합니다. 아래 코드는LANG 환경 변수에 따라 일본어와 영어 표시를 전환하는 예입니다。import os
if os.getenv('LANG') == 'ja_JP.UTF-8':
    print('안녕하세요!')
else:
    print('Hello!')7.2 단계별 처리 전환
개발·테스트·운영 단계에 따라 서로 다른 처리를 수행하는 예도 환경 변수를 활용하면 효율화할 수 있습니다。import os
phase = os.getenv('PHASE', 'development')
if phase == 'development':
    print('개발 단계 설정을 사용합니다')
elif phase == 'production':
    print('운영 단계 설정을 사용합니다')8. 결론
Python에서 환경 변수를 사용하는 것은 보안과 프로젝트의 유연성을 향상시키는 중요한 수단입니다。환경별로 설정을 구분해 사용하고 기밀 정보를 안전하게 관리할 수 있으므로, 개발자에게 필수적인 도구가 되고 있습니다。os 모듈과 python-dotenv를 활용해 효율적이면서 보안성이 높은 애플리케이션을 구축해 봅시다。
 
 


