Search
🔵

bc1.1_2. title: 커넥션 풀은 여러 계층에 존재할 수 있다. 애플리케이션 레벨(SQLAlchemy)도 있고, Postgres의 경우에는 미들웨어 레벨 풀링(PgBouncer)도 있다.

생성
prev summary
next summary
🚀 next note
♻️ next note
관련 임시노트
9 more properties
SQLAlchemy와 같은 데이터베이스 추상화 라이브러리(Database Abstraction Layer에 속한다고 봄)는 ORM을 번역하여 적절한 쿼리로 변환하여 psycopg2와 같은 특정 DB용 드라이버로 보내는 역할을 한다. 동시에 이들은 애플리케이션 레벨에서 연결 풀을 관리하기도 한다.
engine = create_engine("postgresql://user:password@localhost/mydb")
Python
복사
DB 라이브러리가 제공하는 Engine은 이러한 연결 복잡성을 추상화하는 중앙 관리자 역할을 한다.
커넥션 풀을 지원하는 DAL을 사용하지 않고 데이터베이스 드라이버(psycopg2 등)를 직접 사용하면 원래 자동으로 관리되는 커넥션 풀은 존재하지 않는다. 커넥션 풀 구현은 개발자의 몫이다.
하지만 일부 데이터베이스는 미들웨어 레벨에서 커넥션 풀을 관리해주기도 한다. Postgres의 PgBouncer이 대표적이다. 미들웨어에서 커넥션 풀을 관리하면 서버리스 애플리케이션에서 데이터베이스와 통신하는 경우에도 TCP 및 데이터베이스 연결을 재사용할 수 있다는 장점이 있다.
parse me : 언젠가 이 글에 쓰이면 좋을 것 같은 재료을 보관해 두는 영역입니다.
1.
적절한 pool 크기 산정은 Little's Law를 기반으로 한다.
from : 과거의 어떤 원자적 생각이 이 생각을 만들었는지 연결하고 설명합니다.
2.
앞의 메모에서 SQLAlchemy 같은 데이터베이스 추상화 라이브러리의 역할이 드러나 있다.
supplementary : 어떤 새로운 생각이 이 문서에 작성된 생각을 뒷받침하는지 연결합니다.
1.
None
opposite : 어떤 새로운 생각이 이 문서에 작성된 생각과 대조되는지 연결합니다.
1.
None
to : 이 문서에 작성된 생각이 어떤 생각으로 발전되거나 이어지는지를 작성하는 영역입니다.
1.
None
ref : 생각에 참고한 자료입니다.
1.
None