전체 목록
네트워크Medium#159

HTTP/2의 멀티플렉싱은 어떤 문제를 개선하나요?

#네트워크#HTTP2#멀티플렉싱#성능

답변 포인트

하나의 연결에서 여러 요청을 처리하는 방식를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.

정답 및 해설

빠른 요약

HTTP/2는 하나의 TCP 연결 안에서 여러 스트림을 동시에 처리해 HTTP/1.1의 연결 관리와 요청 대기 비용을 줄입니다. 다만 TCP 레벨 HOL blocking은 남아 있습니다.

HTTP/2의 멀티플렉싱은 하나의 TCP 연결 위에서 여러 요청과 응답을 동시에 주고받을 수 있게 하여 HTTP/1.1의 연결 수 제한과 요청 대기 문제를 개선합니다. 특히 많은 CSS, JS, 이미지 리소스를 로딩할 때 체감 성능에 영향을 줍니다.

핵심 개념

  • HTTP/1.1은 한 연결에서 응답 순서에 묶이거나 여러 연결을 열어야 했습니다.
  • HTTP/2는 데이터를 작은 frame으로 나누고 stream ID를 붙여 interleaving합니다.
  • 헤더 압축(HPACK)과 서버 푸시 같은 기능도 포함되지만, 핵심 개선은 하나의 연결을 효율적으로 공유하는 것입니다.

동작 방식 또는 판단 기준

이 주제를 이해할 때는 다음 순서로 보면 실무 적용이 쉬워집니다.

  1. 무엇을 해결하려는가: 성능, 표현력, 안정성, 접근성 중 어떤 문제를 줄이려는지 확인합니다.
  2. 전제 조건은 무엇인가: 정렬 여부, 브라우저 지원, 네트워크 특성, 동시성 조건처럼 성립해야 하는 조건을 점검합니다.
  3. 비용은 어디서 발생하는가: 시간 복잡도, 메모리, 캐시, 재시도, 렌더링 비용처럼 병목 지점을 나눠 봅니다.
  4. 실패 시 어떤 문제가 생기는가: 잘못 적용했을 때의 버그나 운영 리스크를 함께 고려합니다.

실제 예시

Text
HTTP/1.1
conn1: /main.css  ------>
conn2: /app.js    ------------>
conn3: /logo.png  ---->
      

HTTP/2
single conn:
  stream 1: /main.css frames
  stream 3: /app.js frames
  stream 5: /logo.png frames
    stream 

실무에서 주의할 점

  • HTTP/2도 TCP 위에서 동작하므로 패킷 손실 시 TCP 레벨 head-of-line blocking은 남아 있습니다. 이 문제를 더 줄인 것이 QUIC 기반 HTTP/3입니다.
  • 무조건 파일을 잘게 쪼개는 것이 좋은 것은 아닙니다. 캐싱, 우선순위, 번들 전략을 함께 봐야 합니다.
  • 서버나 CDN 설정이 잘못되면 HTTP/2가 활성화되지 않을 수 있습니다.

실무 적용 가이드

  • TLS와 함께 HTTP/2를 활성화하고 실제 응답 프로토콜을 브라우저 DevTools에서 확인합니다.
  • 리소스 우선순위, preload, lazy loading을 함께 조정합니다.
  • 대용량 다운로드와 API 호출이 서로 영향을 주는지 모니터링합니다.

함께 연결해서 보면 좋은 키워드

HTTP/2, Multiplexing, Stream, Frame, Web Performance

정리

HTTP/2의 멀티플렉싱은 하나의 TCP 연결 위에서 여러 요청과 응답을 동시에 주고받을 수 있게 하여 HTTP/1입니다. 다만 개념 자체보다 중요한 것은 적용 조건과 한계를 함께 이해하는 것입니다. 작은 예제에서는 단순해 보여도 실제 서비스에서는 성능, 보안, 유지보수성, 접근성 요구사항이 함께 얽히므로, 문제의 성격을 먼저 파악한 뒤 적절한 도구로 선택하는 것이 좋습니다.

관련 질문

같은 카테고리/태그 기준