Delphi용 OpenAPI 클라이언트/서버 도구 — 비교 가이드

2026년 Delphi와 C++ Builder 개발자가 사용할 수 있는 OpenAPI 클라이언트 및 코드 생성 옵션을 중립적으로, 출처와 함께 살펴봐요: sgcOpenAPI, OpenAPI Generator, Swagger Codegen, mORMot 2, TMS XData와 동반 도구 OpenAPI Delphi Generator, 그리고 수작업 REST 클라이언트 경로예요. 모든 기능 설명은 해당 프로젝트의 공식 문서에 링크되어 있어요.

OpenAPI 사양에서 동작하는 Delphi 코드까지, 여섯 가지 경로

각 옵션의 한 단락 요약과 공식 문서 또는 저장소 링크예요. 자세한 비교는 아래 매트릭스에 있어요.

OpenAPI Generator

OpenAPI Tools 커뮤니티 · Apache 2.0(오픈 소스)

원래 Swagger Codegen에서 포크된 오픈 소스 Java 도구로, 60개 이상의 클라이언트 생성기와 40개 이상의 서버 스텁 생성기를 제공해요. C, C#, C++(cpp-restsdk, Qt5, Oat++, Tizen, Unreal Engine 4), Go, Java, Kotlin, PHP, Python, Rust, TypeScript 등을 위한 클라이언트와 서버를 생성해요. 공식 생성기 목록에는 Delphi / Object Pascal / Free Pascal 대상이 포함되어 있지 않아요.

공식 페이지

Swagger Codegen

SmartBear / 커뮤니티 · Apache 2.0(오픈 소스)

SmartBear가 만든 원조 Java 코드 생성기 프로젝트로, 2018년에 OpenAPI Generator가 여기서 포크되었어요. ActionScript, Ada, Apex, Bash, C#, C++, Clojure, Dart, Elixir, Erlang, Go, Groovy, Haskell, Java, Kotlin, Lua, Node.js, Objective-C, Perl, PHP, PowerShell, Python, R, Ruby, Rust, Scala, Swift, TypeScript를 지원해요. 3.x 라인은 OpenAPI 3.0을 지원하고, 2.x 라인은 OpenAPI 2.0(Swagger)만 지원해요. 두 라인 모두 Delphi나 Object Pascal 생성기는 없어요.

공식 페이지

mORMot 2 OpenAPI 클라이언트 생성기

Arnaud Bouchez / Synopse · MPL / GPL / LGPL(오픈 소스)

mORMot 2는 mormot.net.openapi.pas를 제공해요. 이 유닛은 OpenAPI 3.x나 Swagger 2.0 문서(파일 또는 URL)를 읽고 FPC / Delphi Pascal 클라이언트 유닛을 생성해요 — DTO 역할의 상위 레벨 레코드와 동적 배열, 열거 값에 대한 Pascal 열거형, HTTP 상태 코드를 예외로 변환하는 처리가 포함돼요. 이 유닛은 FPC와 Delphi 7 / 2009 이상을 대상으로 하며, 더 넓은 mORMot SOA / ORM 프레임워크의 일부로 동작해요.

공식 페이지

TMS XData와 OpenAPI Delphi Generator

TMS Software / Landgraf Software · 상용(XData) / Apache 2.0 + Commons Clause(생성기)

TMS XData는 상용 Delphi REST / JSON / ORM 리모팅 프레임워크예요. XData 서버는 자체 엔드포인트에 대해 /openapi/swagger.json 경로에 OpenAPI(이전 명칭 Swagger) 문서를 게시할 수 있고, SwaggerUI / Redoc과 함께 사용할 수 있어요. 동반 도구인 OpenAPI Delphi Generator(원래 XData에 번들되었지만 지금은 landgraf-dev/openapi-delphi-generator에서 별도의 오픈 소스 프로젝트)는 Swagger 2.0 / OpenAPI 3.0 문서를 소비해 Delphi 인터페이스와 TXDataClient에서 사용할 DTO 클래스를 생성해요.

공식 페이지

수작업 REST 클라이언트(Indy / THTTPClient)

Indy Project / Embarcadero · BSD / MPL(Indy) · RAD Studio EULA(THTTPClient)

흔한 현실이에요. 개발자가 TIdHTTP(Indy)나 System.Net.HttpClient.THTTPClient(Delphi에 번들됨)로 REST 클라이언트를 직접 작성해요. 코드 생성도 없고 스키마도 없이, RTL JSON 유닛(또는 TJSONObject)으로 수작업 JSON 마샬링을 해요. 인증, 재시도 로직, 페이지네이션도 직접 구현해야 해요.

공식 페이지

기능 비교 매트릭스

체크()는 프로젝트가 네이티브 지원을 문서화하고 있다는 뜻이에요. 대시()는 네이티브로 제공되지 않는다는 뜻이에요. 물결 표시(~)는 부분 지원 / 애드온 경유 / 명시적 문서가 없다는 뜻이에요 — 확인 가능한 내용은 출처 섹션을 참고하세요.

생성기, 런타임, 라이선스

12행
기능 sgcOpenAPI OpenAPI Generator Swagger Codegen mORMot 2 OpenAPI 클라이언트 생성기 TMS XData와 OpenAPI Delphi Generator 수작업 REST 클라이언트(Indy / THTTPClient)
Delphi 클라이언트 생성 OpenAPI 3.x에서 네이티브 Object Pascal 클라이언트 생성
C++ Builder 코드 생성 C++ Builder VCL / FMX 대상(BCC32 / BCC64) ~ ~ ~ ~
서버 스텁 생성 OpenAPI 사양에서 서버 사이드 스캐폴딩
HTTP/2 클라이언트 생성된 클라이언트에서 네이티브 HTTP/2 전송 ~ ~ ~ ~
타입 지정 JSON DTO 강타입 클래스 / 레코드 / 열거형 ~
OAuth2 / JWT 헬퍼 내장 OAuth2 플로우와 JWT 헬퍼 ~
비동기 / 동기 헬퍼 비동기와 동기 호출 패턴 모두 지원 ~
멀티 플랫폼 런타임 Win / macOS / Linux / iOS / Android
번들된 벤더 SDK AWS / Azure / GCP / Microsoft Graph 미리 빌드 제공
상용 사용 허용 라이선스가 비공개 소스 상용 사용을 허용
활발한 유지 보수 최근 12~18개월간 릴리스 또는 태그된 활동이 있음 ~
라이선스 모델 라이선스 유형 상용 Apache 2.0(오픈 소스) Apache 2.0(오픈 소스) MPL / GPL / LGPL 상용(XData) + Apache 2.0 + CC(생성기) BSD / MPL(Indy) · RAD Studio EULA(THTTPClient)
문서화된 네이티브 지원 네이티브로 제공되지 않음 ~ 부분 지원 / 애드온 경유 / 미확인

각 옵션에 솔직히 어울리는 상황

여기에 있는 모든 옵션은 실제 사용자층이 있어요. 적절한 선택은 클라이언트와 함께 서버 스텁이 필요한지, 어떤 Pascal 툴체인을 지원해야 하는지, 라이선스 선호도, 그리고 번들된 벤더 SDK가 시간을 절약해 주는지에 달려 있어요.

sgcOpenAPI를 선택해야 할 때

모든 OpenAPI 3.x나 Swagger 2.x 사양에서 Delphi 7~13과 C++ Builder 클라이언트 코드를 생성하는 단일 상용 도구가 필요할 때, AWS, Azure, Google Cloud, Microsoft Graph용으로 미리 빌드된 Pascal SDK가 이미 번들되어 있기를 원할 때, macOS / Linux / iOS / Android에서 VCL과 FireMonkey를 대상으로 할 때, sgcOpenAPI 유닛 외에 외부 런타임 의존성이 전혀 필요 없을 때 sgcOpenAPI를 선택하세요.

OpenAPI Generator를 선택해야 할 때

같은 OpenAPI 사양에서 팀이 Delphi가 아닌 다른 언어 — C#, Java, Go, TypeScript, Rust, Python — 로 클라이언트나 서버 스텁을 만들 때, 하나의 도구에서 클라이언트와 서버 스텁이 모두 필요할 때, Apache-2.0 라이선스와 대규모 템플릿 기여자 커뮤니티가 중요할 때 OpenAPI Generator를 선택하세요.

Swagger Codegen을 선택해야 할 때

SmartBear / Swagger 생태계(SwaggerHub, Swagger Editor)를 처음부터 끝까지 이미 사용하고 있을 때, 역사적 Swagger 2.0 코드 생성기의 가장 가까운 공식 후속 도구를 원할 때, 대상이 Delphi가 아니라 주류 JVM / .NET / 스크립팅 언어일 때 Swagger Codegen을 선택하세요.

mORMot 2 OpenAPI 클라이언트 생성기를 선택해야 할 때

프로젝트가 이미 ORM, SOA, 호스팅을 위해 mORMot를 사용하고 있을 때, MPL / GPL / LGPL 라이선스의 Pascal 네이티브 오픈 소스 코드 생성기를 원할 때, 또는 클라이언트 생성기와 결과 코드 모두를 Linux / BSD / macOS의 FPC를 대상으로 할 때 mORMot 2 OpenAPI 생성기를 선택하세요.

TMS XData와 OpenAPI Delphi Generator를 선택해야 할 때

서버도 Delphi로 만들고 한 벤더로부터 서버 + 클라이언트 + ORM 리모팅을 원할 때, 자체 서비스 계약을 SwaggerUI / Redoc으로 브라우징하는 것이 요구 사항일 때, TMS Business / All-Access를 이미 라이선스했을 때 TMS XData를 선택하세요. 클라이언트 사이드 코드 생성만 필요하고 Apache 2.0 + Commons Clause 라이선스를 선호한다면 독립형 OpenAPI Delphi Generator를 선택하세요.

수작업 REST 클라이언트(Indy / THTTPClient)를 선택해야 할 때

API 표면이 매우 작을 때(엔드포인트가 몇 개), 라이선스나 컴플라이언스 이유로 서드 파티 컴포넌트를 배포할 수 없을 때, 또는 API에 공개된 OpenAPI 사양이 없어 생성기가 도움이 되지 않을 때 수작업 REST 클라이언트를 선택하세요. Indy와 THTTPClient는 모두 RAD Studio에 포함되어 있어 추가 의존성이 없어요.

sgcOpenAPI로 옮기기 — 무엇이 다른가

위 옵션 중 하나에서 전환할 때의 차이점에 대한 짧은 메모예요. 비판적인 글이 아니라 실용적인 매핑이에요.

OpenAPI Generator에서 옮기기

OpenAPI Generator는 Delphi를 대상으로 하지 않으므로 여기서 "마이그레이션"이란 같은 사양에서 sgcOpenAPI Delphi 클라이언트와 함께 C# / Java / TS 클라이언트를 생성한다는 뜻이에요. 기존 구성이 OpenAPI-Generator로 만든 C# 래퍼를 COM이나 REST를 통해 Delphi에서 소비하는 형태였다면, sgcOpenAPI는 Delphi 클라이언트를 직접 생성해 그 계층을 제거해요.

Swagger Codegen에서 옮기기

Swagger Codegen은 Delphi를 대상으로 하지 않아요. 기존 워크플로가 일반적인 C# 또는 Java 클라이언트를 내보내고 Delphi용으로 래핑하는 형태였다면, sgcOpenAPI는 같은 사양에서 Delphi 클라이언트를 직접 생성하게 해 주고 래퍼 계층을 제거해요.

mORMot 2 OpenAPI 클라이언트 생성기에서 옮기기

mORMot의 OpenAPI 클라이언트 생성기는 더 넓은 프레임워크 안에 있어요. 애플리케이션이 SOA / ORM / WebSocket 계층은 사용하지 않고 생성기만 사용한다면, sgcOpenAPI는 추가 유닛 없이 독립형 드롭인 컴포넌트 세트를 제공해요. 반대로 mORMot의 SOA 계약과 ORM도 함께 사용한다면, OpenAPI 생성기만을 위해 전환하면 그 부분들을 다시 구현해야 해요. sgcOpenAPI는 그러한 기능을 제공하지 않아요.

TMS XData와 OpenAPI Delphi Generator에서 옮기기

현재 XData의 내장 임포터로 서드 파티 Swagger 사양에서 클라이언트를 생성하고 있다면, 그 임포터는 오픈 소스 landgraf-dev/openapi-delphi-generator 프로젝트로 분리되었고 XData 내 클래스는 지원 중단으로 문서화되었다는 점에 유의하세요. sgcOpenAPI는 OpenAPI 3.x를 네이티브로 읽고, 주요 클라우드 플랫폼용 SDK를 번들로 제공하며, Delphi 7~13과 C++ Builder를 대상으로 하는, 상용으로 지원되는 별도의 생성기예요.

수작업 REST 클라이언트(Indy / THTTPClient)에서 옮기기

수작업 클라이언트는 API 표면이 커지거나 업스트림 서비스가 새 엔드포인트를 게시할 때 노후화돼요. sgcOpenAPI는 게시된 사양에서 동일한 DTO와 메서드 시그니처를 몇 초 만에 생성할 수 있어 수작업 로직을 정말 필요한 부분(커스텀 재시도, 텔레메트리, 비즈니스 연결)에만 쓸 수 있게 해 줘요. 생성된 코드는 유사한 HTTP 전송을 사용해 개발자의 사고 모델이 가깝게 유지돼요.

모든 주장에 링크가 있어요

위 매트릭스의 각 셀은 다음 공식 문서 페이지, 저장소, 릴리스 노트 중 하나로 연결돼요. 모든 URL은 작성 시점에 HEAD로 확인했어요.

출처URL
sgcOpenAPI — 제품 페이지https://www.esegece.com/products/openapi/
sgcOpenAPI — 기능https://www.esegece.com/products/openapi/features/
sgcOpenAPI — 파서https://www.esegece.com/products/openapi/parser/
sgcOpenAPI — 미리 빌드된 SDKhttps://www.esegece.com/products/openapi/apis/
OpenAPI Generator — 프로젝트 홈https://openapi-generator.tech/
OpenAPI Generator — GitHub 저장소https://github.com/OpenAPITools/openapi-generator
OpenAPI Generator — 지원 생성기 목록https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators.md
OpenAPI Generator — 릴리스https://github.com/OpenAPITools/openapi-generator/releases
Swagger Codegen — 제품 페이지(swagger.io)https://swagger.io/tools/swagger-codegen/
Swagger Codegen — GitHub 저장소https://github.com/swagger-api/swagger-codegen
Swagger Codegen Generators(3.x 템플릿)https://github.com/swagger-api/swagger-codegen-generators
mORMot 2 — GitHub 저장소(synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README(네트워크 및 OpenAPI 언급)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — 릴리스https://github.com/synopse/mORMot2/releases
Synopse 포럼(Object Pascal SOA / ORM / OpenAPI)https://synopse.info/
TMS XData — 제품 페이지https://www.tmssoftware.com/site/xdata.asp
TMS XData — 문서 색인https://doc.tmssoftware.com/biz/xdata/guide/index.html
TMS XData — OpenAPI 지원 가이드https://doc.tmssoftware.com/biz/xdata/guide/openapi.html
OpenAPI Delphi Generator(이전 XData 임포터)https://github.com/landgraf-dev/openapi-delphi-generator
Indy — 프로젝트 홈페이지https://www.indyproject.org/
Indy — GitHub 저장소(IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — 릴리스(최신 태그 10.6.3.14)https://github.com/IndySockets/Indy/releases
Embarcadero 문서 — System.Net.HttpClient.THTTPClienthttps://docwiki.embarcadero.com/Libraries/Sydney/en/System.Net.HttpClient.THTTPClient
OpenAPI Initiative — 사양 저장소https://github.com/OAI/OpenAPI-Specification
OpenAPI Specification — 공식 HTML 렌더링https://spec.openapis.org/

sgcOpenAPI 사용해 보기

무료 Trial 에디션을 다운로드해 몇 분 만에 OpenAPI 3.x 사양에서 첫 Pascal SDK를 생성해 보세요.