[python] 환경변수를 사용하여 민감한 정보의 코드 노출 피하기 [1]

신두다·2022년 6월 18일
0

공부노트

목록 보기
10/12

NOTE

  • 220623_TIL / NoSQL를 할 때 API 키, 패스워드 등의 민감 정보를 가릴 수 있도록 getenv를 활용하는 것에 대해 언급한 적이 있었다.
  • 해당 내용에 대해 내가 근미래에 사용할 것 같은 것만 간단히 정리해본다.

환경 변수란?

  • 위키 백과에 의하면 환경 변수란 환경 변수(環境 變數, 영어: environment variable)는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임이다. 네? 뭐라고요?!
    • 위키 백과 정의보다는 해당 글에서 설명하는 환경변수가 내가 오늘 실습하려는 의미에 더 가깝다고 할 수 있을 것 같다.
    • 즉, 매번 path(경로)를 직접 입력하여 이동할 수 있도록 하는 것이 아니라, 환경변수 세팅을 통해 변수값에 경로를 미리 지정해두고 편히 가져다 쓸 수도 있는 것이다.

이런 개념 아래에서 오늘 환경변수 설정을 통해 해보려고 하는 건 다음과 같다.

  • 비밀번호 등 민감한 정보가 하드코딩되어 다른 사람에게 오픈되지 않게 하고 싶다.
  • 이를 위해 환경변수 설정을 통해 해당 정보를 한 변수로 지정해주고, 다른 사람과 공유되는 코드에는 해당 변수값만 입력하여 작동하도록 할 것이다.

기본 세팅 방법

  • 환경변수 세팅은 $export 변수_이름=변수_값로 할 수 있다.
    • 예시 $ export ENV_HELLO="Hola Mundo"
  • 이렇게 지정된 환경변수를 파이썬에서는 os를 통해 접근할 수 있다.
import os

print(os.environ["ENV_HELLO"]) 
  • 다음과 같이 설정한 변수 값이 출력되는 것을 확인할 수 있다. (conda 가상환경을 만들어 실습했다.)

(참고로 터미널에서 $ env를 치면 현재 사용되고 있는 환경변수의 목록이 나타난다.)


오늘은 기본 세팅만 해봤는데 매번 이렇게 환경 변수에 접근하는 건 번거로운 일일 수 있다.

  • 파이썬 패키지 중에 이 환경변수를 좀 더 수월하게 관리해줄 수 있는 것이 있는데, 이에 대해서 내일 알아보고 실습해보자.

이전 NoSQL TIL에서 언급했던 내용을 해볼 것이다.

profile
B2B SaaS 회사에서 Data Analyst로 일하고 있습니다.

0개의 댓글