[python] Flask-RESTful에서 데이터베이스와의 연결을 위한 커넥션 풀 설정 방법
Flask-RESTful은 Python 웹 프레임워크인 Flask를 기반으로 한 RESTful API 개발을 위한 확장입니다. 데이터베이스와의 연결은 대부분의 웹 애플리케이션에서 필요한 기능 중 하나이며, 커넥션 풀을 사용하면 효율적인 데이터베이스 연결 관리가 가능합니다.
커넥션 풀의 개념
커넥션 풀은 데이터베이스와의 연결을 미리 여러 개 생성하여 풀에 저장해두고, 필요할 때마다 연결을 재사용하는 방식입니다. 이를 통해 매번 연결을 생성하고 끊는 오버헤드를 최소화하고, 효율적인 데이터베이스 연결 관리를 할 수 있습니다.
Flask-RESTful에서의 커넥션 풀 설정 방법
Flask-RESTful에서 커넥션 풀을 설정하기 위해서는 다음의 단계를 따르면 됩니다.
-
필요한 패키지를 설치합니다.
pip install SQLAlchemy pip install psycopg2
-
Flask-RESTful 애플리케이션에서 데이터베이스 연결을 위한 설정을 추가합니다.
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://username:password@localhost/mydatabase' app.config['SQLALCHEMY_POOL_SIZE'] = 10 db = SQLAlchemy(app)
위의 예제는 PostgreSQL 데이터베이스를 사용하고 있으며, 유저네임, 패스워드, 데이터베이스 이름은 각각에 맞게 설정해주어야 합니다.
-
커넥션 풀을 사용하여 데이터베이스에 연결합니다.
from flask import g @app.before_request def before_request(): g.db = db.engine.connect() @app.teardown_request def teardown_request(exception): if hasattr(g, 'db'): g.db.close()
before_request
데코레이터를 사용하여 모든 요청이 처리되기 전에 데이터베이스와 연결을 생성하고g.db
에 할당합니다. 그리고teardown_request
데코레이터를 사용하여 응답이 완료된 후에 연결을 닫습니다.
이렇게 설정된 커넥션 풀을 통해 Flask-RESTful 애플리케이션에서 데이터베이스와의 효율적인 연결 관리를 할 수 있습니다.