[파이썬] argparse와 환경 변수 통합

argparse 환경 변수 통합

커맨드 라인 인터페이스를 작성할 때 많은 파이썬 개발자들이 argparse 모듈을 사용합니다. argparse 모듈은 커맨드 라인 인자를 파싱하고 처리하기 위한 강력한 도구입니다. 그러나 때로는 커맨드 라인 인자 뿐만 아니라 환경 변수도 사용해야 할 때가 있습니다. 환경 변수는 파이썬에서 중요한 설정 값을 저장하는 일반적인 방법 중 하나입니다.

이번 블로그 포스트에서는 argparse 모듈과 환경 변수를 통합하여 파이썬 애플리케이션에서 설정 값을 유연하게 관리하는 방법을 알아보겠습니다.

argparse와 환경 변수의 융합

argparse로 커맨드 라인 인자를 처리하는 방법은 이미 잘 알려져 있지만, 환경 변수와의 결합은 추가 작업이 필요합니다. 일반적인 접근 방법은 argparse와 os 모듈을 함께 사용하여 환경 변수의 값을 우선적으로 가져오고, 값이 없을 경우에만 커맨드 라인 인자를 확인하는 것입니다.

다음은 argparse와 환경 변수를 통합한 예제 코드입니다:

import argparse
import os

# argparse로 커맨드 라인 인자 파싱
parser = argparse.ArgumentParser(description='My Application')
parser.add_argument('--host', help='server host')
parser.add_argument('--port', help='server port')

args = parser.parse_args()

# 환경 변수로부터 값 가져오기
host = os.getenv('MY_APP_HOST') or args.host
port = os.getenv('MY_APP_PORT') or args.port

print(f"Host: {host}")
print(f"Port: {port}")

위의 코드에서는 argparse를 사용하여 --host--port 옵션을 정의하고, args 객체를 통해 해당 값을 가져옵니다. 그리고 os.getenv를 사용하여 환경 변수의 값을 확인하고, 값이 없을 경우에만 args 객체에서 값을 가져옵니다.

환경 변수 설정하기

환경 변수를 설정하는 방법은 운영 체제마다 다소 차이가 있을 수 있습니다. 일반적으로는 다음과 같은 방법으로 환경 변수를 설정할 수 있습니다:

윈도우

set MY_APP_HOST=localhost
set MY_APP_PORT=8080

리눅스/맥

export MY_APP_HOST=localhost
export MY_APP_PORT=8080

환경 변수의 이름은 개발자가 원하는 대로 지정할 수 있으며, 애플리케이션 코드와 일치하도록 설정해야 합니다.

결론

argparse와 환경 변수를 통합함으로써 파이썬 애플리케이션에서 설정 값을 유연하게 관리할 수 있습니다. argparse 모듈은 커맨드 라인 인자를 처리하기 위한 강력한 도구이며, 환경 변수를 통합함으로써 애플리케이션의 설정 값을 보다 효율적으로 관리할 수 있습니다. 이 방식을 사용하면 애플리케이션 작업 시 값이 유연하게 변경되는 경우에도 코드를 수정할 필요 없이 설정 값을 관리할 수 있습니다.