(면접복기)쓰레드 풀 vs 커넥션 풀

2025. 11. 19. 15:56·면접복기

들어가며: 왜 'Pool'을 사용해야 할까요?

웹 애플리케이션의 성능을 이야기할 때, **'Pool(풀)'**이라는 개념은 빼놓을 수 없습니다. 새로운 요청이 들어올 때마다 자원을 만들고, 사용이 끝나면 버리는 방식은 비효율적입니다. 마치 매번 물을 뜰 때마다 새 양동이를 만드는 것과 같죠.

**쓰레드 풀(Thread Pool)**과 **커넥션 풀(Connection Pool)**은 이 비효율을 해결하고 시스템 자원의 재활용을 통해 성능을 극대화하는 쌍둥이 기술입니다.


🧵 1. 쓰레드 풀 (Thread Pool): CPU 자원 관리의 마스터

🎯 쓰레드 풀은 무엇인가요?

쓰레드 풀은 시스템이 작업을 처리할 수 있도록 미리 일정 개수의 쓰레드(Thread)를 생성하여 보관해 두는 저장소입니다.

💡 왜 사용해야 할까요? (핵심 이유)

  1. 생성/소멸 오버헤드 제거: 쓰레드를 만드는 과정(OS 커널 호출)과 해제하는 과정은 생각보다 많은 비용을 소모합니다. 풀의 쓰레드를 재사용함으로써 이 비용을 완전히 없앨 수 있습니다.
  2. 자원 고갈 방지 (안정성): 무제한으로 쓰레드가 생성되면 메모리가 부족해지거나, Context Switching 비용이 과도하게 증가하여 오히려 전체 성능이 저하됩니다. 풀은 쓰레드 최대 개수를 제한하여 시스템 안정성을 지켜줍니다.

⚙️ 작동 흐름

  1. 작업이 도착하면 **작업 큐(Task Queue)**에 들어갑니다.
  2. 풀에 있는 Worker 쓰레드가 큐에서 작업을 꺼내 처리합니다.
  3. 작업을 마친 쓰레드는 종료되지 않고 다시 풀로 복귀하여 다음 작업을 기다립니다.

🔗 2. 커넥션 풀 (Connection Pool): DB 응답 속도의 비밀 병기

🎯 커넥션 풀은 무엇인가요?

커넥션 풀은 애플리케이션이 데이터베이스(DB)에 접속하기 위해 필요한 커넥션(Connection)을 미리 생성하여 관리하는 저장소입니다.

💡 왜 사용해야 할까요? (핵심 이유)

  1. 응답 시간 단축: 데이터베이스 커넥션을 맺는 작업(인증, 세션 생성 등)은 상당히 느린 작업에 속합니다. 풀의 커넥션을 가져다 재사용하면 DB 접근 속도가 획기적으로 빨라집니다.
  2. DB 부하 경감: 동시에 DB에 접속을 시도하는 요청 수를 제한하여, DB 서버에 과도한 부하가 걸리는 것을 막고 안정적인 서비스를 유지하게 돕습니다.

⚙️ 작동 흐름

  1. 애플리케이션이 DB 작업이 필요하면 풀에 "커넥션을 빌려줘(Checkout)" 요청합니다.
  2. 작업이 완료되면 "커넥션을 돌려줘(Check-in)" 요청을 통해 커넥션을 끊지 않고 다시 풀로 반납합니다.
  3. 커넥션이 모두 사용 중일 경우, 대기하거나 에러를 반환하는 등의 정책이 적용됩니다.

'면접복기' 카테고리의 다른 글

(면접복기)자바 컴파일 과정 완벽 정리: .java → 실행까지  (0) 2026.05.15
(면접복기)자바 기본 타입(Primitive Type) 완벽 정리  (0) 2026.05.15
(면접복기)OCP를 준수하는 결제 시스템 확장하기: 전략패턴을 활용한 유연한 설계  (0) 2026.01.27
(면접복기)트랜잭션 격리 수준 (Transaction Isolation Levels)  (0) 2025.11.19
'면접복기' 카테고리의 다른 글
  • (면접복기)자바 컴파일 과정 완벽 정리: .java → 실행까지
  • (면접복기)자바 기본 타입(Primitive Type) 완벽 정리
  • (면접복기)OCP를 준수하는 결제 시스템 확장하기: 전략패턴을 활용한 유연한 설계
  • (면접복기)트랜잭션 격리 수준 (Transaction Isolation Levels)
cookiboii
cookiboii
초보 개발자입니다.
  • cookiboii
    Just Do it
    cookiboii
  • 전체
    오늘
    어제
    • 분류 전체보기 (79)
      • 잡소리 (2)
      • vscode꾸미기 (1)
      • 회사공부 (0)
      • 면접복기 (5)
      • 개발취직관련 좋은 글귀 (12)
      • 개발 공부 (58)
        • 백준 (0)
        • web (3)
        • js&ts&react (4)
        • Java-Spring (18)
        • 개발책 리뷰 (0)
        • c++ (0)
        • git (0)
        • code up 문제 (5)
        • 네트워크 (5)
        • 자료구조&알고리즘 (2)
        • ci,cd (1)
        • 프로젝트 (9)
        • sql (4)
        • 컴퓨터구조 (1)
        • 운영체제 (5)
        • python (0)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

    • 네이버블로그
    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    Java
    개발
    자바
    js #제이쿼리 #비동기통신 #코딩 #프로그래밍
    포켓몬 #vscode #vscode꾸미기 #개발
    JVM
    코딩
    깃허브 #깃 #커밋
    코드업 #코딩문제
    롤 #리그오브레전드
    라이엇 #api #롤api
    springai #spring #java
    js #예약어 #자바스크랩트
    사이드프로젝트 #토이프로젝트 #개발 #개발자
    js #web
    자바 #Java #JPA #개발자 #개발 #초보
    프로그래밍
    ci #개발 #git
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
cookiboii
(면접복기)쓰레드 풀 vs 커넥션 풀
상단으로

티스토리툴바