Architecture

Qt 프레임워크 기술 현황 2026: 아키텍처부터 경쟁 비교까지

Qt 6.11까지의 진화, Widgets vs QML 아키텍처, 크로스플랫폼 현황, 라이선스 구조, Electron/Flutter/.NET MAUI 등 경쟁 프레임워크와의 비교를 2026년 실무 기준으로 정리한다.

이런 분이 읽으면 좋습니다

요약: Qt는 1995년 첫 릴리스 이후 30년간 C++ 크로스플랫폼 UI 프레임워크의 대명사 역할을 해왔다. 2026년 3월 기준 최신 버전은 Qt 6.11이며, LTS는 Qt 6.9다. 데스크톱 앱뿐 아니라 자동차 IVI, 산업 HMI, 의료기기 UI, MCU 임베디드까지 커버하는 범위는 경쟁 프레임워크 중 유일하다. 이 글은 Qt의 아키텍처, 모듈 구성, Widgets vs QML 선택 기준, 라이선스 구조, 그리고 Electron/Flutter/.NET MAUI/Avalonia/WPF와의 실무 비교를 정리한다.

이 글은 크로스플랫폼 데스크톱 또는 임베디드 UI 프레임워크를 선택하는 개발자/테크 리드, 또는 Qt를 이미 사용 중이지만 최신 진화 상황을 파악하려는 C++ 개발자를 위해 썼다.


Qt 6.x 타임라인: 6.0에서 6.11까지

Qt 6.0이 2020년 12월에 출시된 이후, Qt Company는 반기 단위로 피처 릴리스를 발행해 왔다. 주요 이정표를 정리하면 다음과 같다.

  • Qt 6.2 LTS (2021) — Qt 6 시리즈 최초의 프로덕션 안정 버전. Qt 5에서 마이그레이션할 수 있는 기반 마련
  • Qt 6.5 LTS (2023) — Qt Quick 3D 고도화, Qt HttpServer, Qt gRPC/Protobuf 모듈 도입
  • Qt 6.8 (2024) — Qt Graphs 모듈 정식화, XR(확장현실) 지원 시작
  • Qt 6.9 LTS (2025) — 이모지 렌더링 개선, OAuth2 인증 강화, Qt Quick 3D 투명도 처리, SVG CSS 애니메이션, QML Language Server 아웃라인 뷰, ContextMenu 컴포넌트 추가
  • Qt 6.10 (2025 후반) — 성능 최적화 중심 릴리스
  • Qt 6.11 (2026년 3월) — 현재 최신. 렌더링 파이프라인 개선과 플랫폼별 네이티브 통합 강화

Qt 아키텍처: 핵심 모듈 구조

Qt는 단일 프레임워크가 아니라 모듈 집합체다. 프로젝트에 필요한 모듈만 선택적으로 링킹할 수 있다.

핵심 모듈

  • Qt Core — 이벤트 루프, 시그널/슬롯, 메타 오브젝트 시스템, 문자열, 컨테이너. Qt의 모든 것이 여기에 의존한다
  • Qt GUI — 윈도우 시스템 추상화, OpenGL/Vulkan/Metal 렌더링 백엔드, 폰트, 이미지
  • Qt Widgets — 전통적 데스크톱 위젯. QPushButton, QTreeView, QMainWindow 등 네이티브 룩앤필 제공
  • Qt Quick / QML — 선언적 UI 언어(QML) + JavaScript 런타임. 터치 기반, 애니메이션 중심 UI에 최적화
  • Qt Quick 3D — QML 기반 3D 렌더링. Qt 6.9에서 투명도 처리가 개선됨

특수 목적 모듈

  • Qt for MCUs — 운영체제 없는 마이크로컨트롤러에서 QML 서브셋을 실행. Cortex-M 급 하드웨어 대상
  • Qt for Automotive (Qt IVI) — 자동차 인포테인먼트 시스템용. Mercedes-Benz, BMW 등이 양산차에 사용
  • Qt 3D — 완전한 3D 렌더링 엔진. CAD/CAM 뷰어, 산업 시뮬레이션 등에 활용
  • Qt Network / Qt WebSockets / Qt MQTT — 네트워크 프로토콜 스택. IoT와 산업 통신에 필수

Qt Widgets vs Qt Quick/QML: 어떤 걸 쓸 것인가

Qt를 시작할 때 가장 먼저 마주치는 분기점이다. 두 스택은 같은 Qt Core 위에 올라가지만 설계 철학이 다르다.

Qt WidgetsQt Quick / QML
언어 C++ (+ Designer .ui 파일)QML (선언적) + JavaScript + C++ 백엔드
UI 스타일 플랫폼 네이티브 룩앤필커스텀 렌더링 (모던, 애니메이션 중심)
렌더링 CPU (QPainter) 기본, OpenGL 옵션GPU 가속 (Scene Graph) 기본
적합 도메인 데스크톱 LOB 앱, IDE, 관리 도구임베디드 HMI, 터치 UI, 자동차 IVI
학습 곡선 C++ 숙련자에게 친숙QML 새 언어 학습 필요, 디자이너 협업 쉬움
생태계 성숙도 20년 이상, 방대한 위젯 라이브러리성장 중, Qt 6.x에서 빠르게 개선
혼용 가능 QQuickWidget으로 QML 임베딩 가능QWidgetProxy로 Widgets 호출 가능
Qt Widgets와 Qt Quick/QML은 동일 프로젝트에서 혼용 가능하지만, 주 스택은 하나를 선택하는 것이 유지보수에 유리하다.

실무 판단 기준: 사내 관리 도구나 데이터 중심 데스크톱 앱이라면 Qt Widgets가 적합하다. 자동차 계기판, 스마트홈 패널, 의료기기 터치 UI처럼 시각적 커스터마이징이 핵심인 제품이라면 Qt Quick/QML을 선택한다.


크로스플랫폼 현황: 실제로 어디까지 되는가

Qt의 공식 지원 플랫폼 목록은 넓다. 하지만 “공식 지원”과 “프로덕션 수준”은 다르다.

  • Windows (10/11) — 1등 시민. 모든 모듈 완전 지원. MSVC, MinGW 빌드 체인
  • macOS — 안정적. 단, 애플 실리콘 네이티브 빌드 지원은 Qt 6.2부터
  • Linux (X11/Wayland) — 데스크톱과 임베디드 모두 안정. 임베디드 Linux가 Qt의 핵심 강점
  • Android / iOS — Qt Quick 기반 앱 배포 가능. 다만 Flutter나 네이티브 대비 앱 크기가 크고, 플랫폼 UI 가이드라인 준수가 어렵다
  • WebAssembly — Qt 6.x에서 브라우저 실행 지원. 데모와 내부 도구용으로는 쓸 만하지만, 프로덕션 웹 앱 대체는 비현실적
  • RTOS / Bare Metal (MCU) — Qt for MCUs로 제한적 QML 지원. FreeRTOS, Zephyr 등과 통합

라이선스: 상용 프로젝트 전에 반드시 확인할 것

Qt의 듀얼 라이선스 구조는 프레임워크 선택에서 가장 자주 오해되는 부분이다.

오픈 소스 라이선스:

  • LGPL v3 — Qt Core, Qt GUI, Qt Widgets 등 핵심 모듈. 동적 링킹(shared library)으로 사용하면 자사 코드를 공개할 의무 없음. 단, Qt 소스 수정 시 해당 수정분은 공개해야 함
  • GPL v3 — Qt Charts, Qt Data Visualization 등 일부 애드온 모듈. GPL이므로 전체 코드 공개 의무 발생

상용 라이선스:

  • 디바이스당 또는 개발자 시트당 과금. 임베디드 제품 양산 시 거의 필수
  • Qt for MCUs, Qt for Automotive의 일부 기능은 상용 라이선스 전용

경쟁 프레임워크 비교: Qt는 어디에서 이기고 어디에서 지는가

QtElectronFlutter.NET MAUIAvaloniaWPF
언어 C++ / QMLJavaScript / TSDartC# / XAMLC# / AXAMLC# / XAML
플랫폼 Win/Mac/Linux/임베디드/MCUWin/Mac/LinuxWin/Mac/Linux/iOS/Android/WebWin/Mac/iOS/AndroidWin/Mac/LinuxWindows 전용
성능 네이티브 C++높은 메모리 사용Skia GPU 렌더링, 양호.NET 런타임Skia 기반, 양호.NET 런타임
임베디드 지원 최고 수준비현실적제한적없음리눅스 임베디드 가능없음
자동차/산업 양산 실적 다수부적합실험적없음없음없음
앱 크기 (기본) 15-30MB100MB+15-25MB20-40MB15-30MB프레임워크 내장
개발 속도 보통 (C++ 특성)빠름빠름보통보통보통
라이선스 LGPL/GPL + 상용MITBSDMITMIT.NET 내장
2026년 4월 기준 크로스플랫폼 UI 프레임워크 비교. Qt는 임베디드/산업 영역에서 독보적이지만, 개발 속도와 라이선스 유연성에서는 경쟁사에 밀린다.

프레임워크별 포지셔닝

Electron — 웹 기술(HTML/CSS/JS)로 데스크톱 앱을 빠르게 만들 때. VS Code, Slack, Discord가 대표 사례. 메모리 사용량이 높고 앱 크기가 크지만, 웹 개발자 풀이 넓어 채용이 쉽다. Qt와 겹치는 영역은 “데스크톱 앱”이지만, 성능 요구사항이 있으면 Electron은 탈락한다.

Flutter — Google이 밀어주는 크로스플랫폼 프레임워크. 모바일 우선이지만 데스크톱과 웹으로 확장 중이다. Dart 언어가 진입 장벽. 임베디드 지원은 커뮤니티 수준이라 자동차/산업에는 부적합하다.

.NET MAUI — Microsoft 생태계 내에서 크로스플랫폼 앱을 만들 때. Xamarin.Forms의 후계자. Windows와 모바일에서는 합리적이지만, 리눅스/임베디드 지원이 없다.

Avalonia — WPF에서 영감받은 오픈 소스 크로스플랫폼 XAML 프레임워크. C# 개발자가 Win/Mac/Linux 데스크톱 앱을 만들 때 유력한 선택지. 다만 임베디드/자동차 영역 진출은 아직 제한적이다.

WPF — Windows 전용이지만 엔터프라이즈 데스크톱에서 여전히 강력하다. Qt Widgets와 포지션이 겹치나, .NET 생태계에 묶인다.


Qt가 적합한 시나리오, 적합하지 않은 시나리오

Qt를 선택해야 할 때

  1. 임베디드 Linux HMI — 자동차 IVI, 산업 장비 터치 패널, 스마트홈 디바이스. 이 영역에서 Qt는 사실상 표준이다
  2. MCU 기반 UI — FreeRTOS/Zephyr 위에서 동작하는 그래픽 UI. Qt for MCUs 외에 선택지가 거의 없다
  3. C++ 코드베이스와의 통합 — 기존 C++ 비즈니스 로직이나 라이브러리 위에 UI를 올려야 할 때
  4. 고성능 데스크톱 앱 — 3D 뷰어, CAD, 오디오/비디오 편집 등 GPU 가속과 네이티브 성능이 필요한 경우
  5. 규제 산업 인증 — 의료기기(IEC 62304), 자동차(ISO 26262) 인증이 필요한 제품. Qt의 양산 실적이 인증 과정에서 유리하다

Qt가 적합하지 않을 때

  1. 웹 앱 또는 SPA — React/Next.js가 맞다. Qt for WebAssembly는 데모용이지 프로덕션용이 아니다
  2. 모바일 우선 앱 — Flutter, Kotlin/Swift가 현실적이다
  3. 빠른 프로토타이핑 — Electron이나 Flutter가 초기 속도에서 앞선다. C++/QML 설정에 드는 시간을 감수할 이유가 있는지 확인하라
  4. 소규모 팀 + 타이트한 예산 — 상용 라이선스 비용과 C++ 개발자 인건비를 고려하면 TCO가 높다

결론: Qt는 니치하지만 대체 불가능한 영역이 있다

2026년 기준 Qt의 위치를 한 문장으로 요약하면 이렇다: 범용 앱 프레임워크로서의 매력은 줄었지만, 임베디드/자동차/산업 UI에서의 지배력은 여전하다. 데스크톱 전용 앱이라면 Electron, Flutter, Avalonia 등과 비교해서 결정할 일이지만, 양산 임베디드 제품이라면 Qt가 1순위 검토 대상이다.

Qt 6.9 LTS와 6.11을 기준으로 아키텍처를 설계하되, 프로젝트 시작 전에 라이선스 구조를 반드시 확인하라. LGPL의 동적 링킹 조건을 이해하지 못한 채 개발을 시작하면, 나중에 상용 라이선스 구매 또는 코드 구조 변경이라는 비용이 발생한다.

다음에 읽을 글