NetworkTCP/HTTP시뮬레이션

HTTP와 네트워크 기초

TCP 연결, Timeout, Keep-Alive, HTTP/2 멀티플렉싱을 직접 체험합니다.

왜 알아야 하나요?

API 호출이 가끔 5초나 걸려요!

"서버는 10ms 만에 처리하는데, 클라이언트는 왜 이렇게 느린 거죠?"

원인 분석 결과...

매 요청마다 새 TCP 연결을 맺고 있었고, Connection Timeout이 5초로 설정되어 있었습니다.

네트워크를 이해하면 성능 튜닝이 가능!

Keep-Alive, 적절한 Timeout, HTTP/2 적용으로 응답 시간을 대폭 개선할 수 있습니다.

한눈에 보기: HTTP 요청 흐름

DNS 조회
도메인 → IP
TCP 연결
3-way handshake
HTTP 요청
GET/POST/...
응답 대기
Read Timeout

각 단계에서 지연이 발생할 수 있고, 적절한 Timeout 설정이 필요합니다.

핵심 개념

TCP 3-way Handshake

TCP 연결을 맺기 위한 3단계 과정

  1. SYN: "연결해도 될까요?"
  2. SYN-ACK: "네, 연결하죠!"
  3. ACK: "확인, 시작합니다!"

매 연결마다 ~20-50ms 오버헤드

Connection vs Read Timeout

Connection Timeout: TCP 연결 수립 대기 시간

Read Timeout: 응답 데이터 대기 시간

둘 다 너무 길면 장애 전파, 너무 짧으면 정상 요청 실패

HTTP Keep-Alive

TCP 연결을 재사용하는 기능

매번 새 연결 vs 재사용:

10개 요청 시 ~200ms → ~40ms (5배 빠름!)

HTTP/2 멀티플렉싱

하나의 연결에서 여러 요청 동시 처리

HTTP/1.1: 6개 연결 × 순차 처리

HTTP/2: 1개 연결 × 동시 처리 (스트림)

Timeout 설정 가이드

상황ConnectionRead설명
내부 마이크로서비스1-2초3-5초네트워크 빠름, 빠른 실패 필요
외부 API3-5초10-30초네트워크 불안정, 서드파티 지연
배치 작업5초5-10분대용량 처리, 긴 작업

직접 체험하기

TCP Handshake, Timeout, Keep-Alive, HTTP/2를 직접 테스트해보세요.

Network 실습

TCP 연결을 맺기 위해 클라이언트와 서버가 주고받는 3단계 과정입니다. 마치 전화 연결 시 "여보세요?" → "네, 들려요!" → "네, 시작합시다!" 와 같아요.

더 알아보기

실무 체크리스트

  • - HTTP Client에 Timeout 설정했는가?
  • - Connection Pool 크기는 적절한가?
  • - Keep-Alive 활성화되어 있는가?
  • - HTTP/2 사용 가능한가?

관련 도구

  • - curl -v (상세 연결 로그)
  • - tcpdump (패킷 캡처)
  • - Wireshark (패킷 분석)
  • - Chrome DevTools Network