1. TCP 커넥션 풀 이란?

1. TCP Connection 이란?

HTTP 요청을 보내기 위해서는 아래와 같은 순서를 거쳐야 한다.

1. 클라이언트가 서버 IP와 포트로 연결 요청( TCP 3-way handshake)
2. 연결이 맺어짐 (커넥션 생성)
3. 데이터를 주고 받음
4. 작업이 끝나면 커넥션을 끊음 ( 커넥션 종료 )

이 때 만들어지는 연결을 TCP Connection이라고 부른다.

2. Connection Pool 이란?

Connection을 재사용하기 위한 일종의 “자원 캐시”

왜 필요할까?

문제 커넥션 풀 도입 후
매 요청마다 커넥션 생성 → 성능 저하 기존 커넥션 재사용해서 빠름
너무 많은 커넥션 생성 → 서버 과부하 제한된 개수로 연결 관리
요청 폭주 시 예외 발생 대기큐 등으로 안정성 확보

<aside> 💡

Connection이 재사용된다는 건 무슨 의미일까?

HTTP 요청을 보낼 때 다음과 같은 연결 정보가 생긴다.

클라이언트 IP:포트 ---- 연결 ----> 서버 IP:포트

192.168.0.2:50312 ----> [api.example.com:443](<http://api.example.com:443/>)

이 연결이 맺어지면 커넥션이 생성된 것이고, 이것을 끊지않고 유지해두면 같은 서버(IP+포트)로 보낼 요청에 대해 새로 연결하지 않고 재사용할 수 있다.

</aside>

✅ 커넥션 재사용 조건

  1. 같은 호스트(IP + 포트)
  2. 커넥션이 아직 살아 있어야 함
  3. Keep-Alive 설정이 되어 있어야 함

프로젝트에서…..외부 API Rate Limiting 대응에도 유리하다.