민감한 변수가 있을 때에는 어떻게 해야 할까요? 예를 들어, AWS_SECRET_KEY 같은 것들입니다. 이들을 프로그램의 환경 변수로 불러와서 코드 내에서 노출을 숨기는 방법이 있는데요. python-dotenv를 사용하는 방법을 소개해 드리겠습니다. django라던지 flask는 비슷한 기능을 하는 패키지가 있으니 찾아보시는 것도 도움이 되실 듯 합니다. 먼저, python-dotenv를 설치하겠습니다. dotenv 내부에는 여러 함수들이 있는데요. 이 중, load_dotenv를 보겠습니다. 설명을 보면, Parse a .env file이라고 되어 있어요. .env 파일을 찾은 다음에, 해당 파일 안에 있는 변수들을 environment 변수에 넣습니다. 즉, dotenv.load_dotenv()를..
환경변수 검색 결과
디버깅을 하기 위해, pycharm에 환경변수를 추가해야 하는 경우가 있는데요. 그 방법을 알아보겠습니다. 먼저 환경 변수를 불러오는 것은 os.getenv 등으로 할 수 있습니다. 위 코드는 환경 변수 "A"와 "B"의 값을 불러오는데요. 없으면 None을 출력해 줍니다. pycharm에서 Run "main"을 눌러보겠습니다. 실행 결과를 보면 None, None이라고 되어 있는데요. 환경변수 "A"와 "B"가 설정되지 않았음을 의미합니다. 저는 Edit Configurations... 를 통해서 설정을 하도록 하겠습니다. 해당 메뉴를 눌러보겠습니다. Run의 Edit Configurations... 입니다. 혹은 아래와 같이 하셔도 됩니다. Edit configurations... 를 누르면, mai..
python에서 os의 environ이 무엇을 담고 있는지 간단하게 알아보겠습니다. 먼저, cho로 로그인 한 쉘입니다. 변수 CHO의 값을 출력해 보니 3이 나왔습니다. 다음에 root 쉘로 로그인 했습니다. 마찬가지로 쉘 변수 CHO를 출력해 보니, 10이 나왔습니다. 여기서 중요한 것은 cho로 로그인이 된 쉘의 CHO와 root 쉘의 CHO의 값이 달랐다는 점입니다. 이제, os의 environ으로부터 변수 'GH'의 값을 얻어봅시다. 1.py에, 그러한 일을 수행하는 코드를 작성하였습니다. 단 두 줄이면 얻어낼 수 있습니다. 이 코드는 'GH'의 값을 얻어냅니다. cho로 로그인 한 쉘에서는 3을 출력합니다. 그런데, root로 로그인 한 쉘에서는 10을 출력합니다. 이를 토대로 추측할 수 있는..
이전 글에서, django demo 프로젝트를 컨테이너에 말아보았습니다. 이번 시간에는 환경 변수를 컨테이너 안에 넣어보도록 하겠습니다. [관련글] dockerignore 파일이 무엇을 하는 것일까요? 프로젝트 구조는 이전 글과 크게 달라진 것이 없습니다. 루트 폴더에 .dockerignore랑 스크립트 파일, Dockerfile, requirements 파일 등이 있네요. 그리고 test_env라는 것이 있는데요. 변수명=값 형식으로 적습니다. 예를 들어, 위 예제는 CHO가 3이고, GA가 5이고, HUI가 10입니다. 이것을 build 해 보겠습니다. sample이라는 이름으로 build 합니다. 그리고 run을 해 보겠습니다. 그런데 어떤 옵션을 더 넣어야 할까요? docker run --help..
zsh에서 어떻게 환경 변수를 설정하는지 알아봅시다. 이 글을 읽기 전에 profile에 대한 것을 읽고 오시면 좋습니다. [관련글] /etc/profile vs .profile의 차이는 무엇일까요? /etc/profile이 전역 설정과 관련된 것이니, 여기에 export CHO=3을 추가하고 source 명령으로 실행시켜 보겠습니다. export CHO=3은, CHO라는 환경 변수의 값을 3으로 등록한다는 의미입니다. 그런데, source /etc/profile을 입력하니, 적용 되라는 환경 변수는 적용되지 않고, #만 주구장창 뜸을 알 수 있어요. 이게 무엇인지 잘 모르겠지만, 제대로 동작하지 않음은 분명해 보입니다. exit를 입력해서 빠져나오기는 했습니다만, 왠지 환경 변수가 제대로 등록되지 않았..
최근댓글