---
title: "Swift에서 FFI 없이 C++ 라이브러리 Dear ImGui 래핑하기"
published: 2026-03-27T21:13:39.000Z
canonical: https://jeff.news/article/1316
---
# Swift에서 FFI 없이 C++ 라이브러리 Dear ImGui 래핑하기

Swift 5.9의 C++ interoperability 기능을 활용해 Dear ImGui를 FFI 없이 Swift에서 직접 래핑하는 과정을 보여주는 글. Clang Importer의 C++ 키워드 문제를 interoperabilityMode 설정 하나로 해결함.

- 이전에 Swift로 C 프로젝트(Raylib)를 연동하는 글을 썼는데, C++ 프로젝트 연동도 보여달라는 요청이 많았음
- 이번엔 Dear ImGui(C++ GUI 라이브러리)를 Swift 프로젝트에 통합해봤음. Raylib은 윈도우 초기화와 텍스트 렌더링, ImGui는 GUI 드로잉 담당
- 프로젝트 구조는 Raylib 때와 거의 동일함. 정적 빌드된 Dear ImGui와 rlImGui(Raylib-ImGui 브릿지) 헤더를 포함시키고, `module.modulemap`으로 Clang 모듈과 Swift 사이를 연결해줌
- 문제는 Swift의 Clang Importer가 C++ 키워드(`namespace`, `class`, `template` 등)를 만나면 패닉을 일으킨다는 것. C는 되는데 C++은 안 되는 이유가 이거였음
- Swift 5.9부터 `interoperabilityMode` 빌드 설정으로 C++ 상호운용이 가능해짐. 패키지 설정에서 해당 옵션만 켜주면 컴파일이 정상적으로 됨
- 결론적으로 C++ 프로젝트인 Dear ImGui 래핑도 Raylib 래핑만큼 간단했음. 차이점은 C++ interoperability 설정 한 줄 추가한 것뿐

[원문 링크](https://carette.xyz/posts/swift_cpp_compatibility_with_raylib_and_imgui/)

## 핵심 포인트

- Dear ImGui(C++)를 Swift 프로젝트에 통합하는 데모
- Clang Importer가 C++ 키워드를 인식 못하는 문제 발생
- Swift 5.9의 interoperabilityMode 설정으로 C++ 상호운용 활성화
- C 프로젝트 래핑과 거의 동일한 수준의 간단한 과정

## 인사이트

Swift의 C++ 상호운용성이 5.9부터 실용적 수준에 도달했으며, 설정 한 줄로 C++ 라이브러리를 네이티브처럼 사용할 수 있다는 점이 인상적
