커넥션 풀

데이터베이스 커넥션 풀링

매번 연결을 생성하지 않고 풀에서 재사용

import { createPool } from 'postgres';

// PostgreSQL 커넥션 풀
const pool = createPool({
  connectionString: config.database.url,
  max: 20,              // 최대 커넥션 수
  idle_timeout: 30,     // 유휴 시간 (초)
  connect_timeout: 10   // 연결 타임아웃 (초)
});

서버 통합

const server = Bun.serve({
  port: config.port,
  async fetch(req) {
    try {
      // 커넥션 풀 사용
      const result = await pool`SELECT * FROM users LIMIT 10`;
      return new Response(JSON.stringify(result));
    } catch (error) {
      return new Response('Database Error', { status: 500 });
    }
  }
});

풀 설정값

파라미터권장값설명
max20-50최대 동시 커넥션
idle_timeout20-60유휴 연결 종료 시간
connect_timeout5-15연결 시도 제한 시간

장점

  • 연결 생성 비용 절감
  • 성능 향상
  • 리소스 효율적 사용