Delphi & C++ Builder WebSocket 라이브러리 — 비교 가이드
2026년 Delphi 및 C++ Builder 개발자가 선택할 수 있는 WebSocket 라이브러리를 출처와 함께 중립적으로 살펴봐요: sgcWebSockets, Indy, ICS, TMS FNC WebSocket, mORMot 2, 독립 MQTT 라이브러리. 모든 기능 주장은 해당 프로젝트의 공식 문서로 연결돼요.
2026년 Delphi 및 C++ Builder 개발자가 선택할 수 있는 WebSocket 라이브러리를 출처와 함께 중립적으로 살펴봐요: sgcWebSockets, Indy, ICS, TMS FNC WebSocket, mORMot 2, 독립 MQTT 라이브러리. 모든 기능 주장은 해당 프로젝트의 공식 문서로 연결돼요.
각 라이브러리에 대한 한 문단 요약과 공식 문서 링크. 자세한 비교는 아래 매트릭스에 있어요.
eSeGeCe · 상용
WebSocket 클라이언트 및 서버, HTTP/2, MQTT, AMQP, STOMP, WAMP, SSE, WebRTC, IoT 브로커, AI/LLM 클라이언트, 30개 이상의 서드파티 API 통합을 다루는 상용 Delphi / C++ Builder 컴포넌트 모음. Delphi 7부터 Delphi 13까지, C++ Builder 2007부터 13까지 지원해요.
Indy Working Group / Remy Lebeau · BSD / MPL (오픈 소스)
최근 RAD Studio 설치에 모두 번들된 오픈 소스 TCP/UDP/원시 소켓 라이브러리. 120개 이상의 상위 프로토콜 클라이언트 및 서버(HTTP, SMTP, POP3, IMAP, FTP, NNTP, IRC 등)를 제공하지만 네이티브 WebSocket 클라이언트나 서버는 포함하지 않아요 — 사용자는 보통 TIdHTTP / TIdHTTPServer 위에 서드파티 WebSocket 애드온을 추가해요.
François Piette / Magenta Systems Ltd · 무료, 소스 공개
François Piette가 만든 오픈 소스 Delphi / C++ Builder 네트워킹 라이브러리. WebSocket 지원은 ICS V9.0에서 TSslWebSocketCli(OverbyteIcsWebSocketCli 내)와 기존 ICS 웹 서버 위의 서버 클래스 THttpWSSrvConn으로 추가됐어요.
TMS Software · 상용
TMS Software는 두 가지 관련 제품을 제공해요. TMS Sparkle은 크로스플랫폼 HTTP 클라이언트 / 서버 프레임워크예요(TMS XData와 TMS RemoteDB 내부에서도 사용돼요). TMS FNC WebSocket은 RFC 6455를 구현하는 별도의 VCL + FireMonkey WebSocket 클라이언트 및 서버 쌍이에요.
Arnaud Bouchez / Synopse · MPL / GPL / LGPL (오픈 소스)
비동기 HTTP 및 WebSocket 서버, REST/JSON, OpenAPI / Swagger, LDAP, DNS, ACME, 암호화 기본 요소를 갖춘 오픈 소스 Object Pascal SOA / ORM / MVC 프레임워크. Delphi 서버 유닛은 Windows만 지원해요. FPC(Free Pascal)는 Linux, BSD, macOS용으로 동일한 서버 코드를 빌드해요. 모바일 클라이언트는 모든 플랫폼에서 지원돼요.
다양한 커뮤니티 작성자 · 다양 (보통 MIT / BSD / Apache)
GitHub에 Delphi용 단일 목적 MQTT 클라이언트가 다수 게시돼 있어요. 보통 MQTT 3.1.1 클라이언트 측만 다루며 MQTT 5.0 서버, AMQP, STOMP, WAMP를 포함하지 않고 개별 작성자가 유지 관리해요.
체크()는 프로젝트가 네이티브 지원을 문서화함을 의미해요. 대시(—)는 프로젝트가 네이티브로 제공하지 않음을 의미해요. 물결표(~)는 부분적 / 애드온 경유 / 명시적으로 문서화되지 않음을 의미해요 — 검증할 수 있었던 내용은 출처 섹션을 참고하세요.
| 기능 | sgcWebSockets | Indy (Internet Direct) | ICS (Internet Component Suite) | TMS FNC WebSocket / TMS Sparkle | mORMot 2 | 독립 MQTT 전용 라이브러리 |
|---|---|---|---|---|---|---|
| WebSocket 클라이언트 RFC 6455 클라이언트 | ~ | — | ||||
| WebSocket 서버 RFC 6455 서버 | ~ | — | ||||
| TLS 1.3 제공된 전송에서 TLS 1.3 지원 | ~ | ~ | ||||
| HTTP/2 클라이언트 네이티브 HTTP/2 클라이언트 (RFC 7540 / 9113) | — | — | ~ | — | — | |
| MQTT MQTT 3.1.1 / 5.0 클라이언트 내장 | — | ~ | ~ | — | ||
| AMQP AMQP 0.9.1 / 1.0 클라이언트 내장 | — | — | — | — | — | |
| STOMP STOMP 1.0 / 1.2 클라이언트 내장 | — | — | — | — | — | |
| WAMP WAMP v1 / v2 클라이언트 내장 | — | — | — | — | — | |
| 서버 푸시 / 스트리밍 장시간 푸시 또는 스트리밍 연결 | ~ | ~ | ~ | |||
| 자동 재연결 내장 클라이언트 자동 재연결 / WatchDog | — | ~ | ~ | ~ | ~ | |
| per-message-deflate (RFC 7692) WebSocket 압축 확장 | — | ~ | ~ | ~ | — | |
| 멀티 플랫폼 Windows / macOS / Linux / iOS / Android | ~ | ~ | ||||
| 상용 사용 허용 라이선스가 폐쇄형 상용 사용을 허용 | ||||||
| 소스 코드 사용 가능 라이브러리 소스를 개발자가 볼 수 있음 | ||||||
| 활발한 유지보수 지난 12–18개월 동안 릴리스 또는 태그 활동 | ~ | ~ | ||||
| 라이선스 모델 라이선스 유형 | 상용 | BSD / MPL (오픈 소스) | 무료, 소스 공개 | 상용 | MPL / GPL / LGPL (오픈 소스) | 다양 (보통 MIT / BSD / Apache) |
여기 있는 모든 라이브러리에는 실제 사용자가 있어요. 올바른 선택은 프로토콜 범위, 라이선스 선호도, 기존 의존성에 달려 있어요.
하나의 상용 라이선스로 WebSocket과 함께 메시징 프로토콜(MQTT, AMQP, STOMP, WAMP), HTTP/2, AI/LLM 클라이언트를 하나의 컴포넌트 세트에서 필요로 할 때, 광범위한 Delphi 버전 지원(7–13)이 필요할 때, C++ Builder를 포함할 때, macOS, iOS, Android, Linux용 FireMonkey 대상이 필요할 때 sgcWebSockets를 선택하세요.
WebSocket 자체가 요구사항이 아닐 때 — 예를 들어 성숙한 HTTP, SMTP, POP3, IMAP, FTP, NNTP를 지원하는 관대한 라이선스의 TCP/UDP 툴킷이 필요할 때, 또는 기존 TIdHTTPServer를 자체 WebSocket 업그레이드 핸들러로 확장하려 할 때 Indy를 선택하세요. Indy는 RAD Studio에 번들되므로 의존성 발자국에 아무것도 추가하지 않아요.
WebSocket 클라이언트 및 서버, OpenSSL 3.x 기반 최신 TLS 1.3(V9.6의 포스트 양자 암호화 포함)을 갖춘 오픈 소스 Delphi 네트워킹 모음이 필요하고 기존 ICS 웹 서버를 통해 라우트를 연결하는 데 익숙할 때 ICS를 선택하세요. ICS는 활발히 유지되는 OpenSSL 버전을 추적하는 장기 릴리스예요.
VCL과 FireMonkey에서 WebSocket이 필요한 유일한 네트워크 프로토콜일 때, 이미 다른 TMS FNC 컴포넌트(시각적 및 비시각적 API 스타일이 일관되게 유지돼요)를 라이선스한 경우, 또는 특히 FNC 크로스 프레임워크(VCL과 FMX에서 동일한 코드베이스)가 필요할 때 TMS FNC WebSocket을 선택하세요. HTTP 및 HTTPS 서비스 호스팅의 경우 TMS Sparkle은 TMS XData와 짝을 이뤄요.
MPL/GPL/LGPL 하에서 Object Pascal용 오픈 소스 풀스택 프레임워크(ORM, SOA, REST, WebSocket, OpenAPI)가 필요할 때, 서버가 FPC 하에서 Linux에서 실행될 때, 또는 데이터베이스, 비즈니스 로직, WebSocket 전송을 아우르는 단일 프레임워크를 원할 때 mORMot 2를 선택하세요.
MQTT가 필요한 유일한 프로토콜일 때, 프로젝트가 관대한 라이선스의 코드에만 의존해야 할 때, 와이어 프로토콜 구현의 모든 줄을 읽고 싶을 때 독립 MQTT 전용 라이브러리를 선택하세요. 선택한 프로젝트의 커밋 기록을 헌신하기 전에 감사하세요 — 활동 수준은 작성자마다 크게 달라요.
위 라이브러리 중 하나에서 전환할 때 API 및 기능 차이에 대한 간단한 메모. 적대적이지 않은 — 실용적인 매핑일 뿐이에요.
Indy는 원시 HTTP 및 TCP 배관을 제공해요. sgcWebSockets는 WebSocket 프레이밍, ping/pong, 자동 재연결, 하위 프로토콜(MQTT/AMQP/STOMP/WAMP), per-message-deflate를 내장으로 제공해요. 오늘날 Indy 기반 HTTP 서버를 운영한다면 sgcWebSockets는 Indy에 플러그인하는 대신 별도의 TsgcWebSocketHTTPServer를 제공해요 — 기존 HTTP 라우트는 sgc 서버에서 재구현하거나 서로 다른 포트에서 나란히 실행해야 해요.
두 라이브러리 모두 WebSocket 클라이언트와 WebSocket-over-HTTP 서버를 노출해요. 명명된 메시징 프로토콜(MQTT, AMQP, STOMP, WAMP)과 AI/LLM 및 거래소 API 클라이언트는 sgcWebSockets 전용이에요. 현재 WebSocket 라우트가 있는 ICS 웹 서버를 운영한다면 sgcWebSockets는 드롭인 HTTP+WS 호스트로 TsgcWebSocketHTTPServer를 제공하지만 라우트 등록 API는 달라요.
sgcWebSockets와 TMS FNC WebSocket 모두 RFC 6455 클라이언트 및 서버를 구현해요. 컴포넌트 클래스를 교체하고 이벤트를 재연결해 마이그레이션하세요. 그 위에 구축된 프로토콜 계층(MQTT, AMQP, STOMP, WAMP), HTTP/2 클라이언트 및 서버, 30개 이상의 서드파티 API 통합은 sgcWebSockets 전용이에요. TMS MQTT를 별도로 사용한다면 sgcWebSockets는 동일한 모음에 MQTT를 번들해요.
mORMot 2는 SOA 계층 안에 WebSocket을 래핑해요. sgcWebSockets는 어떤 Delphi 프로젝트에도 드롭할 수 있는 독립형 WebSocket / HTTP/2 / MQTT / AMQP / STOMP / WAMP 컴포넌트를 제공해요. 애플리케이션이 mORMot 2의 ORM 및 SOA 기능을 사용한다면 sgcWebSockets로 전환하는 것은 SOA 계층을 재구현하는 것을 의미해요. WebSocket 전송에만 mORMot 2를 사용했다면 sgcWebSockets가 더 가까운 1대1 교체예요.
현재 독립 MQTT 전용 라이브러리를 사용하고 있고 WebSocket, HTTP/2, AMQP, AI/LLM API 클라이언트를 추가하기 시작한다면 sgcWebSockets는 이 모든 것을 단일 라이선스와 단일 업데이트 채널로 하나의 모음에 통합해요.
위 매트릭스의 각 셀은 이 공식 문서 페이지, 저장소, 또는 릴리스 노트 중 하나로 거슬러 올라가요. 작성 시점에 모든 URL은 HEAD 체크되었어요.