curl, OpenSSL-QUIC 지원 중단: HTTP/3 생태계에 미치는 영향은?

by DD
4개월 전
조회수 16

curl 프로젝트가 OpenSSL-QUIC 백엔드 지원을 중단하고, ngtcp2 + nghttp3 또는 quiche 기반의 HTTP/3 백엔드만 지원

OpenSSL-QUIC의 낮은 성능, 부족한 API, 과도한 메모리 사용량이 지원 중단의 주요 원인으로 지적됨

curl 라이브러리는 다양한 기술 스택에서 사용되며, 특히 C/C++ 기반 시스템에서 중요한 역할을 수행

임베디드 시스템(Embedded System)과 같이 제한된 환경에서 의존성 최소화를 위해 다양한 백엔드 옵션이 유용하다는 의견도 존재

OpenSSL-QUIC 백엔드 지원 중단의 기술적 배경

curl 프로젝트는 OpenSSL-QUIC 백엔드 지원을 중단하며, 이는 OpenSSL-QUIC의 API 부족(Lacking API), 낮은 성능(Bad Performance), 그리고 과도한 메모리 사용량(Abysmal Memory Use) 때문이다. 특히 ngtcp2에 비해 최대 3배까지 성능 차이가 발생하고, 메모리 사용량은 최대 20배까지 차이가 난다는 점이 문제로 지적되었다. 이러한 성능 저하는 HTTP/3 프로토콜의 효율적인 구현을 저해하는 주요 원인으로 작용했다.

curl 라이브러리의 다양한 백엔드 지원의 의미

curl은 다양한 TLS 백엔드를 지원하며, 이는 개발자가 특정 환경에 맞는 백엔드를 선택할 수 있도록 한다. GnuTLS와 같은 다른 라이브러리를 사용하는 경우, curl이 해당 백엔드를 사용하도록 설정하여 의존성 관리(Dependency Management)를 단순화할 수 있다. 임베디드 시스템과 같이 제한된 환경에서는 불필요한 의존성(Unnecessary Dependency)을 피하기 위해 다양한 백엔드 옵션이 유용하다.

HTTP/3 생태계에서의 curl의 역할

curl은 다양한 기술 스택에서 HTTP/3 프로토콜을 지원하는 핵심 라이브러리로서, 특히 C/C++ 기반 애플리케이션에서 널리 사용된다. Python의 urllibNode.js의 http 모듈과는 달리, curl은 C/C++ 애플리케이션에서 네트워킹 기능(Networking Functionality)을 제공하는 데 중요한 역할을 한다. curl의 백엔드 선택은 상호 운용성(Interoperability)보안 분석(Security Analysis) 측면에서도 중요한 영향을 미친다.

OpenSSL-QUIC의 기술적 한계와 향후 과제

OpenSSL-QUIC는 API의 부족, 낮은 성능, 과도한 메모리 사용량으로 인해 curl 프로젝트에서 지원이 중단되었다. OpenSSL은 QUIC 프로토콜을 자체적으로 구현하려 했으나, API 설계(API Design)의 미흡함과 성능 최적화(Performance Optimization)의 어려움으로 인해 경쟁력을 확보하지 못했다. 향후 HTTP/3 생태계에서 curl은 ngtcp2 또는 quiche와 같은 다른 백엔드를 중심으로 발전할 것으로 예상된다.

More HTTP/3 focus, one backend less

댓글 0

첫 번째 댓글을 남겨보세요!