4. 환경 설정 및 주의사항

1. 개발 실행 환경
더보기
| 구분 | 항목 | 내용 |
| 운영체제 | OS | Windows 권장 (Malgun Gothic 기본 폰트 사용) |
| Linux / macOS 가능 (폰트 변경 필요) | ||
| 개발 언어 | Language | Python 3.11 이상 권장 |
| GUI 프레임워크 | GUI | PySide6 (Qt for Python) |
| 데이터베이스 | DBMS | MySQL Server (Local) or AWS RDS(MySQL 8.x) |
| DB 연결 방식 | Driver | mysql-connector-python |
2. 필수 설치 항목
더보기
파이참에서 프로젝트 생성하기
1. 일반 프로젝트 생성하기더보기 2. 새 프로젝트 시작하기더보기Case A. 새 프로젝트 생성 Case B. 새 프로젝트 생성 Case C. 새 프로젝트 생성 3. 커스텀 가상환경으로 프로젝트 시작하기 더보기
basiclike.tistory.com
2.2 필수 패키지 설치
파이참에서 라이브러리 설치하기
1. 파이참 UI 에서 라이브러리 설치: 가상환경과 패키지 설치 경로 확인하기더보기 설치 확인(1) 설치 확인(2) pip list 설치 확인(3) 라이브러리가 설치된 가상환경의 위치 확인하기 2. 파이참 콘솔에
basiclike.tistory.com
| 구분 | 항목 | 비고 |
| Python 패키지 | PySide6 | Qt 기반 GUI 애플리케이션 개발 프레임워크 |
| mysql-connector-python | MySQL DB 연동 | |
| DB 서버 | MySQL Server | 최초 개발시 로컬 환경 기준 |
| IDE (권장) | VS Code / PyCharm / Qt Creator | 자유 선택 |
- 설치 명령 및 설치 확인용 테스트 코드
pip install PySide6 mysql-connector-python
import PySide6
import mysql.connector
print("환경 준비 완료")
3. DB 접속 환경
더보기
DB 관련 학습이 진행되었다면, DB 학습과정에서 고려하지 않은
DB 접속 정보 보안 설명을 위해 현재 단계에서 살펴본 후 이해한다.
| 항목 | 값 |
| Host | localhost |
| User | root |
| Password | 1234 |
| Database | library_db |
| 설정 위치 | db/config.py |
- db/config.py
- DB_CONFIG 딕셔너리로 접속 정보 관리
- host/user/password/database를 하드코딩(학습용 단순 구조)
4. DB 접속 정보 보안 (필수!!)
더보기
4.1 문제 상황
DB_CONFIG = {
"host": ""database-1.____.ap-northeast-2.rds.amazonaws.com",
"user": "admin",
"password": "비밀번호는_여기에",
"database": "library_db"
}
- GitHub 업로드 시, 데이터베이스 IP, ID, PW 즉시 노출
- 실제 서비스 환경에서는 심각한 보안 사고로 이어짐
4.2 원칙 1. DB 비밀번호는 소스 코드에 직접 넣지 않는다
- 코드 파일은 언제든 공유될 수 있다는 전제 필요
4.3 원칙 2. 설정 파일 분리 또는 환경변수 사용
- config.py 분리(입문자용)
- .gitignore에 반드시 추가
# config.py 분리
DB_CONFIG = {
"host": "******",
"user": "******",
"password": "******",
"database": "library_db"
}
# main.py 사용 예시
from config import DB_CONFIG
# ...
class DatabaseManager:
def connect(self):
return mc.connect(**DB_CONFIG)
- .env 분리
- .env 파일은 Git에 절대 업로드하지 않음
- .gitignore에 반드시 추가
# [1] .env 파일 예시
DB_HOST=database-1.cp_ _ _ _4.ap-northeast-2.rds.amazonaws.com
DB_USER=admin
DB_PASSWORD=비밀번호
DB_NAME=library_db
# [2] 필요한 라이브러리 설치
pip install python-dotenv
# [3] Python 코드에서 환경변수 읽기
from dotenv import load_dotenv
import os
load_dotenv()
DB_CONFIG = {
"host": os.getenv("DB_HOST"),
"user": os.getenv("DB_USER"),
"password": os.getenv("DB_PASSWORD"),
"database": os.getenv("DB_NAME")
}
4.4 DB 계정의 <권한> 최소화 원칙
- 학습용 DB 계정 권한 예시:
- SELECT
- INSERT
- UPDATE
- DELETE
- 불필요한 권한:
- DROP
- ALTER
- CREATE USER
- GRANT
* 실수 한 번으로 전체 DB를 날릴 수 있다는 점을 명확히 인식할 것