다른 명령
- 아래는 PostgreSQL 데이터베이스 연결 정보를 JSON 파일로 저장하는 예제입니다.
- 보안을 위해 중요한 정보는 직접 공유하지 마시고, 필요시 `.gitignore`에 추가하여 버전 관리에서 제외하세요.
db_config.json
{ "development": { "host": "localhost", "port": 5432, "database": "myflaskapp_dev", "user": "postgres", "password": "devpassword123", "schema": "public" }, "test": { "host": "localhost", "port": 5432, "database": "myflaskapp_test", "user": "postgres", "password": "testpassword123", "schema": "public" }, "production": { "host": "db.production.com", "port": 5432, "database": "myflaskapp_prod", "user": "prod_user", "password": "prodpassword456", "schema": "app_schema" } }
Flask에서 사용하는 방법
import json import psycopg2 from flask import Flask app = Flask(__name__) # JSON 파일에서 설정 로드 def load_db_config(env='development'): with open('db_config.json') as f: config = json.load(f) return config.get(env, config['development']) @app.route('/') def test_connection(): db_config = load_db_config() try: conn = psycopg2.connect( host=db_config['host'], port=db_config['port'], database=db_config['database'], user=db_config['user'], password=db_config['password'] ) cur = conn.cursor() cur.execute("SELECT version();") version = cur.fetchone()[0] cur.close() conn.close() return f"Connected to PostgreSQL: {version}" except Exception as e: return f"Connection failed: {str(e)}" if __name__ == '__main__': app.run(debug=True)
- 보안 강화를 위한 추가 권장 사항
1. **환경 변수 사용** (더 안전한 방법):
import os from dotenv import load_dotenv load_dotenv() # .env 파일에서 환경 변수 로드 db_config = { 'host': os.getenv('DB_HOST'), 'password': os.getenv('DB_PASSWORD') # ... }
2. `.gitignore`에 추가:
db_config.json .env
3. **권한 설정**:
chmod 600 db_config.json # 소유자만 읽기/쓰기 가능
4. **다중 환경 지원**을 위해 위와 같이 `development`, `test`, `production` 프로필을 분리하는 것이 좋습니다.