야구와 IT 라이프

KT 위즈 화이팅

IT/이론

속도의 한계를 돌파하다: HTTP/3와 QUIC 프로토콜이 가져올 웹 성능 최적화의 혁신

건도그 2026. 2. 12. 10:00
ON THIS PAGE
반응형

HTTP/2 의 경우는 지금 거의 메인이기도 하지만 모든 곳에서 사용하기도 하고, HTTP/3 에 대한 지원을 확인하면서 이것저것 확인해본 것에 대한 글을 작성해 봅니다.

참고로 HTTP/3 의 경우는 HTTP/2 를 기반으로 하고 첫 연결은 HTTP/2 가 무조건적으로 됩니다.

우리는 왜 더 빠른 프로토콜을 원하는가?

웹의 역사는 곧 '지연 시간(Latency)과의 전쟁'이었습니다. 우리는 더 빠른 응답을 위해 이미지 크기를 줄이고, 스크립트를 최적화하며, 전 세계 곳곳에 캐시 서버를 배치해 왔습니다. 하지만 아무리 애플리케이션 레벨에서 최적화를 거듭해도, 결국 우리가 발을 딛고 있는 근간인 네트워크 프로토콜의 물리적 한계에 부딪히게 됩니다.

수십 년간 웹의 표준이었던 TCP(Transmission Control Protocol)는 신뢰성을 위해 많은 것을 희생했습니다. 연결을 맺기 위한 3-way handshake의 절차적 복잡성, 그리고 패킷 하나만 유실되어도 전체 전송이 멈춰버리는 고질적인 문제는 현대의 고속 무선 네트워크 환경에서 오히려 큰 걸림돌이 되기 시작했습니다. 오늘은 이러한 TCP의 한계를 극복하고 웹 성능의 새로운 지평을 열고 있는 HTTP/3와 그 핵심 엔진인 QUIC(Quick UDP Internet Connections) 프로토콜에 대해 엔지니어링 관점에서 깊이 있게 파헤쳐 보겠습니다.

 

출처: 생성형 이미지, Gemini


TCP의 마지막 유산: HOLB(Head-of-Line Blocking) 문제

HTTP/2는 하나의 TCP 연결에서 여러 요청을 동시에 처리하는 멀티플렉싱(Multiplexing)을 도입하여 큰 발전을 이루었습니다. 하지만 전송 계층이 여전히 TCP인 이상, 하나의 치명적인 약점을 극복하지 못했습니다. 바로 전송 계층의 HOLB(Head-of-Line Blocking) 현상입니다.

  • 현상: TCP는 데이터의 순차적 전달을 보장합니다. 여러 스트림이 하나의 TCP 연결을 공유할 때, 네트워크 장애로 인해 특정 패킷 하나가 유실되면 나머지 멀쩡한 스트림의 데이터들도 해당 패킷이 재전송되어 도착할 때까지 커널 버퍼에서 대기해야 합니다.
  • 영향: 패킷 손실률이 높은 모바일 환경(LTE/5G 전환 구간 등)에서는 오히려 HTTP/2가 HTTP/1.1보다 느려지는 역설적인 상황이 발생하기도 합니다. 이는 전송 계층의 신뢰성 모델이 현대의 '비동기적 다중화' 요구를 따라가지 못하기 때문입니다.

QUIC: UDP 위에서 구현된 '더 나은 TCP'

HTTP/3는 수십 년간 이어온 TCP와의 결별을 선언하고 UDP(User Datagram Protocol)를 선택했습니다. UDP는 신뢰성이 없다는 편견이 있지만, QUIC은 UDP라는 가벼운 토대 위에 TCP의 신뢰성과 TLS 1.3의 보안성을 소프트웨어적으로 직접 구현해 넣었습니다.

독립적인 스트림 제어와 HOLB의 종결

QUIC의 혁신은 스트림 관리를 운영체제 커널이 아닌 프로토콜 레벨에서 독립적으로 수행한다는 점에 있습니다.

  • 해결책: 각 스트림은 고유한 흐름 제어를 가집니다. 특정 스트림의 패킷이 유실되더라도 다른 스트림은 전혀 영향을 받지 않고 즉시 상위 계층으로 데이터를 전달합니다. 이것이 바로 전송 계층에서 실현된 '진정한 의미의 멀티플렉싱'입니다.

0-RTT 연결 (Zero Round Trip Time)

기존 TCP 기반 통신은 연결 설정 시 TCP Handshake와 TLS Handshake가 순차적으로 발생하여 최소 $2 \sim 3 \ RTT$가 소요되었습니다.

  • 혁신: QUIC은 전송 연결과 보안 인증을 하나의 절차로 통합했습니다. TLS 1.3을 기본 탑재하여 첫 연결 시 $1 \ RTT$만에 데이터를 보낼 수 있으며, 재연결 시에는 0-RTT가 가능합니다. 0-RTT란 클라이언트가 서버에 첫 번째 패킷을 보낼 때부터 암호화된 요청 데이터를 실어 보내는 것을 의미하며, 사용자에게는 클릭과 동시에 페이지가 로딩되는 경험을 제공합니다.

출처: 생성형 이미지, Gemini


실무 도입 시 고려해야 할 인프라적 변화와 설정

HTTP/3 도입은 단순히 서버 옵션을 켜는 것 이상의 준비가 필요합니다. 인프라 전반에 걸쳐 UDP 기반 통신에 대한 최적화가 선행되어야 합니다.

포트와 방화벽 거버넌스 (UDP 443)

HTTP/3는 UDP 443 포트를 사용합니다. 많은 기업 환경의 방화벽이 TCP 443은 허용하지만, UDP는 보안상의 이유(DDoS 방어 등)로 차단하고 있는 경우가 많습니다.

  • Alt-Svc 헤더: 서버는 처음에 HTTP/2로 응답하면서 Alt-Svc: h3=":443"; ma=86400 헤더를 통해 클라이언트에게 HTTP/3 지원 여부를 알립니다. 방화벽이 UDP를 막고 있다면 클라이언트는 다시 TCP 기반의 HTTP/2로 안정적으로 돌아가야 합니다(Fallback).

Nginx 기반의 HTTP/3 설정 예시

최신 Nginx 버전은 quic 모듈을 기본 지원합니다. 다음은 실무에서 적용할 수 있는 핵심 설정 블록입니다.

Nginx
 
server {
    # UDP 443 포트 리슨 (QUIC 용)
    listen 443 quic reuseport;
    # TCP 443 포트 리슨 (HTTP/2 및 하위 호환 용)
    listen 443 ssl;
    http2 on;

    # QUIC 활성화를 위한 Alt-Svc 헤더 추가
    add_header Alt-Svc 'h3=":443"; ma=86400';

    # TLS 1.3 필수 (QUIC의 요구사항)
    ssl_protocols TLSv1.3;
    ...
}

Connection ID와 로드 밸런싱의 변화

QUIC은 IP 주소가 아닌 Connection ID를 사용하여 세션을 식별합니다. 이는 사용자가 지하철에서 Wi-Fi에서 LTE로 전환되어 IP가 바뀌더라도 끊김 없는 스트리밍이나 다운로드를 보장합니다. 하지만 로드 밸런서 단에서는 IP/Port 해싱이 아닌 Connection ID를 기반으로 백엔드 서버를 매핑할 수 있는 지능형 라우팅 기능이 필요합니다.

전략적 도입 단계: 엔지니어의 체크리스트

도입을 결정하기 전, 다음의 단계별 사고 과정을 거칠 것을 권장합니다.

  1. 사용자 단말 분석: 모바일 앱 유저가 많은가? 모바일 네트워크 점유율이 높을수록 HTTP/3 도입의 ROI(투자 대비 효과)는 기하급수적으로 커집니다.
  2. UDP 성능 테스트: 네트워크 경로 상의 중계 장비(MTU 등)가 UDP 패킷을 과도하게 조각내거나 드랍하지 않는지 확인해야 합니다.
  3. 라이브러리 성숙도 검토: 사용 중인 언어(Java, Go, Python 등)의 HTTP 클라이언트 라이브러리가 QUIC을 안정적으로 지원하는지 검토하십시오.
  4. 카나리(Canary) 배포: 특정 지역이나 일부 유저에게 먼저 Alt-Svc 헤더를 노출하고, 에러율과 TTFB(Time To First Byte) 지표를 면밀히 모니터링하며 확장합니다.

프로토콜이 만드는 사용자 경험의 격차

HTTP/3와 QUIC은 단순히 숫자가 하나 올라간 버전이 아닙니다. 지난 30년간 웹을 지탱해온 TCP라는 거대한 기둥을 뽑아내고, 현대의 무선 네트워크 환경에 최적화된 새로운 뿌리를 심는 작업입니다.

지연 시간을 줄이는 것은 이제 더 이상 코드 최적화만으로는 부족합니다. 우리가 다루는 데이터가 어떤 길(Protocol)을 타고 흐르는지 이해하고, 그 길의 병목을 원천적으로 해결하는 아키텍처를 설계하십시오. 0.1초의 차이가 비즈니스의 성패를 가르는 시대, HTTP/3는 여러분의 인프라가 사용자에게 제공할 수 있는 가장 강력한 혁신이자 경쟁력이 될 것입니다.

 

결론적으로 HTTP/3 가 성능 측정 상 10~20% 까지도 차이나는걸 옛날부터 확인했었는데, 아직도 변수는 있는것으로 생각된다.

물론 인터넷 환경이 좋아지면서 TCP 성능도 좋아졌지만, 압도적으로 UDP 가 속도 면에서는 빠른것이 맞다. 다만, 안정성이라는 측면은 당연히 중요하지만 요즘같은 시대에 느린것보다는 안나오는게 더 나은 실정이기에 이건 또 바라보는 측면 마다 다른것 같다.

 

 

참고 자료:

  • RFC 9114 (HTTP/3) & RFC 9000 (QUIC): 프로토콜의 표준 명세 및 스트림 관리 로직의 원천 기술.
  • Cloudflare Blog - 'The Road to QUIC': 대규모 엣지 네트워크 도입 과정에서의 트러블슈팅 사례.
  • Google Developers - 'QUIC Transport': 0-RTT 연결의 물리적 배경과 암호화 설계 철학.
반응형