이번 강의는 Qt 프로그래밍 1편에 이어서 2편 강의 입니다. Qt를 처음 접하시는 분들은 1편을 먼저 학습하시고 2편을 학습하는 것을 권장합니다.
이런 걸
배워요!
데스크탑, 모바일, 임베디드등 다양한 플랫폼에서 동작하는 SW를 Qt를 이용해 개발하는 방법을 배웁니다.
MS Windows, Linux, MacOS 에서 Qt를 이용해 SW를 개발하는 방법을 배웁니다.
모바일인 Android 플랫폼에서 App을 Qt를 이용해 개발하는 방법에 대해서 배웁니다.
수강 전 확인해주세요!
Qt Programming
One framework, one codebase, any platform.
Qt는 어플리케이션 프레임워크로, Qt를 이용해 개발한 SW는 MS Windows, MacOS, Android, iOS, Embedded Linux, QNX 등에서 모두 호환(지원)됩니다. 그러므로 운영체제 별 호환되는 어플리케이션을 따로 개발하지 않아도 됩니다. 그리고 Qt 는 단순히 GUI를 위한 개발 프레임워크가 아닙니다. Qt는 다양한 산업 분야에서 필요로 하는 방대한 API를 제공합니다.
한번 Qt로 개발된 SW는 각 운영체제에 이식할 수 있습니다. 예를 들어 Android 로 App을 개발하기 위해서 JAVA 와 Android SDK, NDK 를 사용해야 하지만 Qt 가 사용하는 C++을 이용해 개발하면 Android 에서 동작하는 App 을 개발할 수 있습니다.
Qt로 한번 개발한 어플리케이션은 Desktop 운영체제, 모바일 운영체제 Embedded 운영체제에서 모두 이식할 수 있습니다. 따라서 개발 시 소요되는 인건비, 시간을 최소화 할 수 있는 개발 프레임워크 이며 C++을 사용합니다. 심지어 개발 프레임워크에는 다국어 지원이 가능한 툴과 설치 배포판(설치 파일)을 만들 수 있는 개발 툴도 포함되어 있습니다.
다양한 산업분야에서도 Qt를 이용해 SW를 개발할 수 있습니다. 유수의 수만은 자동차 OEM에서 Qt를 사용하고 있습니다. 그리고 TV, 가전, 건설 등 수 많은 분야에서 Qt를 이용해 SW를 개발하고 있습니다.
실시간 OS인 FreeRTOS 운영체제와 같은 MCU 수준에서도 동작하는 운영체제에서도 Qt로 개발한 SW포팅이 가능합니다.
Qt는 개발 IDE 툴로 Qt Creator IDE 툴을 제공합니다. 하지만 Visual Studio IDE툴에 익숙한 개발자들을 위해서 Qt Visual Studio Add-in 을 설치해 Visual Studio IDE툴에서 Qt 를 이용해 SW를 개발할 수 있습니다.
Qt를 이용해 개발하면 다양한 운영체제와 호환이 되므로 시간과 비용을 최대한 줄일 수 있으며 이 교육 과정을 통해 여러분은 Qt를 이용해 SW를 개발할 수 있는 방법에 대해서 배울 수 있습니다.
따라서 이 과정을 수강하면 다양한 산업 분야의 SW를 개발할 수 있는 역량을 향상 시킬 수 있으며 Qt 중급자 이상의 역량을 보유 할 수 있습니다.
섹션 1. QPainter Class를 이용한 2D Graphics
QPainter 클래스는 QWidget상에서 2D그래픽 요소를 드로잉 할 수 있습니다. 예를 들어 Widget 상에서 도형, 선, 텍스트, 이미지를 표시할 수 있습니다. 이번 섹션에서는 QPainter를 이용해 2D 그래픽 요소를 QWidget 상에 표시하는 방법에 대해서 배웁니다.
섹션 2. QPainter 실전 편, 크로마키 영상 처리 구현
크로마키(Chromakey)란 배경의 색을 특정 색상으로 설정함으로써 배경을 바꾸는 것을 말합니다. QPainter로 읽어 들인 사진에서 배경의 녹색을 다른 사진으로 바꾸는 것을 구현해 봄으로써 QPainter에 대해서 좀더 자세히 배웁니다.
섹션 3. 타이머 구현
지정한 시간을 반복할 때 마다 특정 함수를 호출할 수 있도록 Qt에서는 QTimer클래스를 제공합니다. 이번 섹션에서는 QTimer를 사용하는 방법에 대해서 배웁니다.
섹션 4. Thread Programming
Qt에서는 Thread를 좀더 쉽게 구현하기 위해서 유용한 Thread 관련 클래스들을 제공합니다. 또한 Re-entrancy를 만족하는 Thread를 구현하는 방법도 제공합니다. 따라서 이번 섹션에서는 Thread를 구현하는 방법을 배웁니다. 그리고 Multi Thread 상에서 Re-entrancy를 만족하는 Thread를 구현하는 방법에 대해서 배웁니다.
섹션 5. Custom Widget
Qt에서 제공하는 Widget을 이용해 GUI를 구성할 수 없는 경우 직접 Widget을 만들어야 합니다. 이러한 경우, 어떻게 Custom Widget을 만들어야 하는지 배웁니다. 그리고 사각형 모양의 윈도우가 아니라 다른 모양의 윈도우를 구현해야 하는 경우에 어떻게 구현해야 하는지 배웁니다.
섹션 6. 데이터베이스 프로그래밍
Qt는 데이터베이스에 접근할 수 있는 API를 제공합니다. 예를 들어 Qt에서 제공하는 데이터베이스 API를 이용하면 어떤 데이터베이스를 사용하는지 상관없이 공통의 Qt 데이터베이스 API를 사용할 수 있습니다.
예를 들어 MySQL, MS-SQL, Oracle, SQLite 등과 같이 각각의 데이터베이스에서 제공하는 클라이언트 API를 사용하지 않고 Qt에서 제공하는 데이터베이스 API를 이용하면 MySQL, MS-SQL, Oracle, SQLite 등의 데이터베이스를 핸들링 하는데 공통으로 사용할 수 있습니다. 따라서 이번 섹션에서는 Qt에서 제공하는 데이터베이스 API를 사용하는 방법에 대해서 배웁니다.
섹션 7. XML
Qt는 XML을 쉽게 핸들링 할 수 있는 모듈을 제공합니다. Qt에서 제공하는 XML모듈을 이용하면 XML의 SAX 와 DOM 방식의 XML 데이터를 쉽게 핸들링 할 수 있습니다. 이번 섹션을 통해서 XML을 핸들링 하는 방법에 대해서 배웁니다.
섹션 8. JSON
Qt는 JSON(JavaScript Object Notation)을 쉽게 핸들링 할 수 있는 JSON모듈을 제공합니다. 이번 섹션에서는 Qt에서 제공하는 JSON 모듈을 이용해 JSON 포맷을 쉽게 핸들링 할 수 있는 방법에 대해서 배웁니다.
섹션 9. 다국어를 지원하는 응용 어플리케이션 개발
Qt는 다국어를 지원하는 어플리케이션을 쉽게 개발할 수 있는 방법을 제공합니다. 이번 섹션에서는 Qt에서 제공하는 다국어 지원 툴을 이용해 다국어를 지원하는 어플리케이션을 만드는 방법에 대해서 배웁니다.
섹션 10. 라이브러리
Qt를 이용해 구현한 어플리케이션 상에 외부 라이브러리를 사용해야 하는 방법에 대해서 배웁니다. 또한 Qt 로 라이브러리를 만드는 방법에 대해서 배웁니다.
섹션 11. D-Pointer
버전업에 따르는 효과적은 소스코드 관리를 위해서 C와 C++에서는 Opaque Pointer 또는 Opaque Type을 사용합니다. Qt에서는 Opaque Pointer를 좀더 효과적으로 사용할 수 있도록 개선한 것이 D-Pointer입니다. 이번 섹션에서는 D-Pointer를 사용하는 방법에 대해서 배웁니다.
섹션 12. Qt를 이용한 Android 모바일 App개발
Qt는 다양한 플랫폼을 지원합니다. 이번 섹션에서는 C++과 Qt를 이용해 Android 플랫폼에서 동작하는 App을 구현하는 방법에 대해서 배웁니다.
섹션 13. Network Programming
TCP/IP 네트워크 기반의 어플리케이션을 구현을 좀더 쉽게 구현하기 위해서 Qt 에서는 Qt Network 모듈을 제공합니다. 이번 섹션에서는 Qt Network 모듈을 이용해 TCP 와 UDP 프로토콜 기반의 어플리케이션을 구현하는 방법에 대해서 배웁니다.
섹션 14. 개발한 SW를 배포하기 위한 설치 배포판 제작
Qt에서는 Qt Install Framework 라는 툴을 제공합니다. 이 툴은 MS Windows, Linux 그리고 macOS 플랫폼에서 설치파일을 쉽게 제작할 수 있습니다. 이번 섹션에서는 Qt Install Framework를 이용해 설치파일을 만드는 방법에 대해서 배웁니다.
학습 대상은
누구일까요?
여러 플랫폼에서 호환된 어플리케이션을 개발해야 하는 분에게 추천합니다.
자동차, 의료, 멀티미디어, 네트워크등 다양한 산업분야에서 SW를 개발하 수 있습니다.
선수 지식,
필요할까요?
C++, Qt 6 프로그래밍 1편
수강생 수
801
수강평 수
61
강의 평점
4.6
강의 수
9
근무경력
현: Embedded 분야 Senior software developer
LG전자, VS사업부 IVI선행플랫폼/모듈개발
SW마에스트로, SW 멘토
강의경력
삼성전자, Qt & QML 강의
LG전자, Qt & QML 분야 사내 강사
한컴아카데미 Qt 강의 출강
다수의 IT기업 Qt 강의 출강
저서
Qt 프로그래밍
Qt Quick 프로그래밍
Qt5 프로그래밍 가이드
MeeGo 프로그래밍 완벽 가이드
Qt 실전 프로그래밍
SW커뮤니티 운영
Qt 개발자 커뮤니티 운영자 ( www.qt-dev.com )
전체
55개 ∙ (11시간 32분)
가 제공되는 강의입니다.