2일차에 오신 것을 환영합니다! 디지털오션의 12일! 어제, 우리는 생일 알림 서비스를 구축하기 시작했습니다. 이 앱은 다가오는 생일에 대한 SMS 알림을 보내는 간단한 앱입니다. 🎉 우리는 연락처 정보를 저장하기 위해 디지털오션에 PostgreSQL 데이터베이스를 설정했습니다.
오늘은 Python을 사용하여 해당 데이터베이스에 연결하고 민감한 자격 증명을 안전하게 유지하기 위해 프로젝트를 설정할 것입니다.
이 게시글이 끝날 무렵, 여러분은 데이터베이스에서 안전하게 데이터를 가져오는 Python 스크립트를 갖게 되며, 디지털오션에 호스팅할 때 확장할 준비가 되어 있습니다.
✨ 왜 이 단계인가요?
데이터베이스를 설정하는 것은 시작에 불과했습니다. 의미 있는 앱을 구축하기 위해서는 그 데이터와 프로그래밍적으로 상호작용할 수 있는 방법이 필요합니다. Python은 PostgreSQL 데이터베이스에 쉽게 연결할 수 있게 해주며, pg8000과 같은 라이브러리의 도움으로 몇 줄의 코드로 PostgreSQL 데이터베이스를 다룰 수 있습니다.
안전을 유지하기 위해 데이터베이스 자격 증명을 .env
파일에 저장하고 python-dotenv를 사용하여 스크립트에 로드할 것입니다. 이렇게 하면 자격 증명이 스크립트에 하드 코딩되지 않아 앱을 공유하고 배포하는 것이 더 안전해집니다.
🚀 배울 내용
오늘의 계획은 다음과 같습니다:
- 민감한 자격 증명을
.env
파일에 저장합니다. python-dotenv
를 사용하여 해당 자격 증명을 스크립트에 로드합니다.- Python 스크립트를 작성하여
pg8000
을 사용하여 PostgreSQL 데이터베이스에 안전하게 연결합니다. contacts
테이블에서 데이터를 가져와 표시합니다.
이 과정을 마치면 앱의 논리를 구축하기 위한 확고한 기초를 갖추게 됩니다.
🛠 필요한 것
시작하기 전에 필요한 것은 다음과 같습니다:
- 1일차에 설정한 데이터베이스입니다. TODO: 1일차 URL 링크
- 로컬 머신에 Python이 설치되어 있어야 합니다 (Python 3.8 이상을 권장합니다).
🧑🍳 2일차 레시피: Python으로 PostgreSQL에 연결하기
1단계: 필수 라이브러리 설치 📦
Python을 PostgreSQL에 연결하고 우리의 자격증명을 안전하게 유지하기 위해 두 가지 주요 라이브러리를 사용할 것입니다:
- pg8000: PostgreSQL 데이터베이스에 연결하고 상호작용할 수 있게 해주는 순수 Python 라이브러리입니다.
- python-dotenv: 데이터베이스 사용자 이름 및 비밀번호와 같은 민감한 자격증명을
.env
파일에서 로드하는 유틸리티로, 스크립트에 하드코딩할 필요가 없습니다.
이제 설치해 보겠습니다. 터미널에서 이 명령어를 실행하세요:
전문가 팁: 가상 환경을 사용하고 있다면 (항상 좋은 생각입니다!), 위 명령어를 실행하기 전에 가상 환경을 활성화하여 종속성을 정리하세요.
2단계: .env 파일 만들기 📂
프로젝트 디렉토리에서 .env라는 이름의 파일을 만듭니다. 여기에서 데이터베이스 자격 증명을 저장할 것입니다. 다음 내용을 추가하세요:
자리 표시자 값을 1일차의 자격 증명으로 바꾸세요.
전문가 팁: 자격 증명이 우발적으로 버전 관리에 푸시되지 않도록 .gitignore
파일에 .env
를 추가하세요.
3단계: Python 스크립트 만들기 🐍
connect_to_db.py
라는 새 파일을 만들고, python-dotenv
를 사용하여 .env
에서 자격 증명을 로드하고 데이터베이스에 연결하는 스크립트를 설정하세요.
시작하기 위한 코드는 다음과 같습니다:
이 스크립트는 몇 가지 중요한 작업을 수행합니다:
- 자격 증명을 안전하게
.env
파일에서 로드합니다. - 데이터베이스에
pg8000.connect()
를 사용하여 연결을 설정합니다. - 결과에 따라 성공 또는 오류 메시지를 출력합니다.
4단계: 연결 테스트 ✅
이제 모든 것이 작동하는지 확인해 봅시다. 스크립트를 실행하세요:
모든 것이 올바르게 설정되었다면, 다음과 같은 메시지가 표시됩니다:
오류가 발생한 경우:
- .env 파일의 값을 다시 확인하세요.
- IP 주소가 데이터베이스의 신뢰할 수 있는 소스에 추가되었는지 확인하세요(1일차 6단계 참고).
5단계: 데이터베이스에서 데이터 가져오기 🔍
이제 스크립트를 확장하여 데이터를 가져오도록 하겠습니다. connect_to_db.py
스크립트를 다음과 같이 업데이트하세요:
이 스크립트는 이제:
- 연락처 테이블에서 모든 레코드를 가져오는 쿼리를 실행합니다.
- 각 레코드를 콘솔에 출력합니다.
참고: 테이블이 비어 있어도 걱정하지 마세요! 스크립트가 오류 없이 실행되는지 확인할 수 있습니다. 테스트를 위해 psql
(또는 선호하는 도구)를 사용하여 데이터베이스를 열고 이 SQL 명령을 실행하여 샘플 연락처를 빠르게 추가할 수 있습니다:
psql 사용 방법을 복습하거나 pgAdmin 또는 TablePlus와 같은 UI 도구를 탐색하고 싶다면 1일차의 지침을 확인하세요.
🎁 마무리
오늘 당신이 이룬 성과는 다음과 같습니다:
✅ 필요한 Python 라이브러리를 설치했습니다.
✅ Python을 사용하여 DigitalOcean PostgreSQL 데이터베이스에 연결했습니다.
✅ 간단한 쿼리를 사용하여 contacts
테이블에서 데이터를 가져왔습니다.
다음 단계: 내일은 다가오는 생일을 찾고 Twilio를 사용하여 SMS 알림을 보내는 로직을 추가할 것입니다. 이제 앱이 살아나는 순간입니다—기대해 주세요! 🚀
Source:
https://www.digitalocean.com/community/tutorials/connecting-to-postgresql-database-with-python