2023년 6월 업데이트

 

안녕하세요. SQLER의 코난 김대우입니다. 

이번 강좌에서는, Python 초급 강좌 목차 - 19. 코드에서 중요한 키(패스워드) 관리를 진행토록 하겠습니다.

 

SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록

 

코드를 실행하기 위해서는, vscode에서 새로운 파일을 만들고 실행하시면 됩니다.

예를 들어, 19_keys.py를 생성하고 코드를 실행합니다.

 

 

 

TL;DR

중요한 키 값(패스워드)을 코드에 저장하지 않고 관리해야 합니다. dotenv와 같은 패키지를 사용하여 환경변수를 관리하고, 클라우드 서비스를 이용할 경우 전체 암호화 기술을 활용해야 합니다. 환경변수를 활용하여 중요한 정보를 애플리케이션 외부에서 관리하는 것이 좋으며, python-dotenv 패키지를 사용하여 환경변수를 관리할 수 있습니다. 
 

 

Python 초급 강좌 목차 - 19. 코드에서 중요한 키(패스워드) 관리 - dotenv

Python으로 개발하면서 중요한 키 값(패스워드 값)을 관리해야 할 경우가 있습니다.

우리가 전에 살펴본 Cognitive 서비스의 API 키 같은 정보입니다. 

  • 중요한 키 값(패스워드)을 절대 코드에 저장하지 마십시오
  • 키 값(패스워드)이 포함된 어떤 종류의 파일도 git 저장소에 올리거나 공유하지 마십시오(기록이 남습니다)
  • dotenv와 같은 패키지를 이용해 관리하십시오.
  • 클라우드 서비스를 이용할 경우, 전체 암호화 기술을 이용하세요.(예를 들어, Azure KeyVault)

 

모든 종류의 민감한 정보를 다루는 데이터를 처리할 경우에는 극도로 주의해야 합니다.

이런 중요한 키 값들은 애플리케이션 외부에서 관리하는 것이 좋습니다.

 

환경변수 활용

이런 경우 환경변수(environment variable)를 활용할 것을 권장해 드립니다.

환경 변수는 시스템에서 제공하는 환경변수와 자신이 직접 선언하고 사용 가능한 환경변수가 있습니다.

이런 정보를 환경변수로 만들고 애플리케이션에서는 가져가다 쓰는 형태로만 이용해야 합니다.

 

python-dotenv 설치

python-dotenv는 이러한 환경변수를 관리할 수 있는 훌륭한 python 패키지입니다.

다음과 같이, pip 명령을 이용해 설치합니다.

 

pip install python-dotenv

 

환경변수를 관리할 파일 생성

예를 들어, 디렉토리에 ".env" 파일을 생성하고 다음 내용을 넣습니다.

# .env 파일을 만들고 이 파일에 추가합니다.
DATABASE=DB_SERVER_CONNECTION_STRING

 

Python 코드에서 다음을 실행합니다.

import os
from dotenv import load_dotenv

load_dotenv()
database = os.getenv('DATABASE')
print(database)

이렇게, 개발자 로컬 머신의 .env 파일에 정보를 처리할 수 있습니다. 

중요한 부분으로, .env 파일은 git등에 의해 public github 저장소 등에 절대 올라가면 안 됩니다.

.gitignore 파일에 .env 파일을 추가해 ignore 되도록(git과 같은 SCM에 올라가지 않도록) 구성해야 합니다.

 

☑️ 챗GPT 활용: git의 gitignore에 대해서 알려줘

☑️ 챗GPT 활용: git에 대해서 알려줘

 

서버 측에서 배포/실행될 경우, 서버에는 .env가 없습니다.

자신의 개발 환경과 서버의 배포/실행 환경은 다릅니다. 서버에서는 구성관리나 서버 측 환경변수 처리 루틴을 만들고 이곳에서 이런 중요 정보를 관리하거나, DevOps 등에 의해, 배포 단계에서 자동으로 환경변수를 물고 배포되도록 구성할 수 있습니다. 

대부분의 클라우드 서비스 벤더는 이런 환경변수 기능을 관리 기능에서 제공합니다. 

 

python dotenv 같은 패키지를 이용해 중요한 키값을 관리하고, 이런 민감한 정보를 절대 코드에 넣어서 공유하지 마십시오.

수고하셨습니다.

 

 

파이썬 강좌 책 구매

강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다. 

 

책구매 링크: 챗GPT와 함께하는 파이썬 & 머신러닝 코딩 마스터 

파이썬-책구매링크.png

 

참고링크 

개발자 커뮤니티 SQLER.com - Python 무료 강좌 - 기초, 중급, 머신러닝

theskumar/python-dotenv: Get and set values in your .env file in local and production servers. (github.com)

Key Vault | Microsoft Azure

 

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 38050
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 20666
98 Python 중급 강좌 - 4. 상속(Inheritance) 코난(김대우) 2021.01.03 344
97 Python 중급 강좌 - 3. 클래스(Class) 코난(김대우) 2021.01.03 403
96 Python 중급 강좌 - 2. 람다(Lamda) file 코난(김대우) 2021.01.03 545
95 Python 중급 강좌 - 1. Python 스타일 가이드: 서식(Formatting)과 린팅(Linting) file 코난(김대우) 2021.01.02 1098
» Python 초급 강좌 목차 - 19. 코드에서 중요한 키(패스워드) 관리 - dotenv 코난(김대우) 2021.01.02 964
93 Python 초급 강좌 목차 - 18. 데코레이터(Decorators) 코난(김대우) 2021.01.02 338
92 Python 초급 강좌 목차 - 17. JSON 데이터 처리 file 코난(김대우) 2021.01.02 817
91 Python 초급 강좌 목차 - 16. 외부 웹서비스 API 호출 file 코난(김대우) 2021.01.02 945
90 Python 초급 강좌 목차 - 15. 패키지(Package): import, pip 코난(김대우) 2021.01.02 411
89 Python 초급 강좌 목차 - 14. 함수 파라미터(Parameter) 코난(김대우) 2021.01.02 399
88 Python 초급 강좌 목차 - 13. 함수(Function) 코난(김대우) 2021.01.02 542
87 Python 초급 강좌 목차 - 12. 반복문(Loop): for, while 코난(김대우) 2021.01.02 324
86 Python 초급 강좌 목차 - 11. 컬렉션(Collection): list, array, dictionary file 코난(김대우) 2021.01.02 327
85 Python 초급 강좌 목차 - 10. 조건문(Condition):3 복잡한 조건 처리 코난(김대우) 2021.01.01 358
84 Python 초급 강좌 목차 - 9. 조건문(Condition):2 다중 조건 처리 코난(김대우) 2021.01.01 394
83 Python 초급 강좌 목차 - 8. 조건문(Condition):1 (IF-ELSE) 코난(김대우) 2021.01.01 362
82 Python 초급 강좌 목차 - 7. 에러 핸들링(Error Handling) file 코난(김대우) 2021.01.01 352
81 Python 초급 강좌 목차 - 6. 날짜와 시간 데이터 처리 코난(김대우) 2021.01.01 387
80 Python 초급 강좌 목차 - 5. 숫자(Numeric) 데이터 처리 코난(김대우) 2021.01.01 324
79 Python 초급 강좌 목차 - 4. 문자열(String) 데이터 처리 코난(김대우) 2021.01.01 429





XE Login