Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Core Internals/ko
한국어 | ["영어 원문":http://doc.qt.io/qt-5.1/qtdoc/topics-core.html]
Core Internals
Qt는 기초 enabler 모음을 풍부하게 (주로 "Qt Core":http://doc.qt.io/qt-5.1/qtcore/qtcore-index.html 모듈에) 포함하고 있습니다.
Qt는 이런 enabler 들을 고수준 UI 및 응용 프로그램 개발 컴포넌트를 제공하기 위해 사용합니다.
아래의 주제들은 가장 중요한 enabler 들에 대해 설명하고,
Qt에서 아직 제공하고 있지 않는 전문적인 기능들을 구현하는 데에 이들을 사용하는 방법을 보여 줍니다.
객체, 속성, 이벤트
"QObject":http://doc.qt.io/qt-5.1/qtcore/qobject.html 클래스는 Qt 객체 모델 의 근간을 이루며, 많은 Qt 클래스들의 부모입니다.
이 객체 모델은, 실행 중에, 객체의 속성("properties":http://doc.qt.io/qt-5.1/qtcore/properties.html)과 메서드를 자가 검진하고, 조작하고 호출할 수 있게 하는 "meta-object system":http://doc.qt.io/qt-5.1/qtcore/metaobjects.html과 같은 많은 매커니즘을 소개합니다. 또한 이는 QObject-기반 객체간 통신의 하위 레벨인 "Qt event system":http://doc.qt.io/qt-5.1/qtcore/eventsandfilters.html의 토대 역할을 합니다.
다른 하나의 상위 레벨 통신은 Qt의 "Signals & Slots":http://doc.qt.io/qt-5.1/qtcore/signalsandslots.html 매커니즘에서 제공됩니다.
이 기능은, 응용 프로그램의 상태를 관리하는 정형화되고 예측 가능한 방법을 제공하는, "The State Machine Framework":http://doc.qt.io/qt-5.1/qtcore/statemachine-api.html 와 결합하여 사용할 수 있습니다.
Container 클래스
container 란, 해당 인스턴스가 다른 객체의 모음집이 되는 데이터 구조체입니다.
다음은 컨테이너의 몇 가지 예입니다. : 동적 배열, 큐, 연결된 리스트, associative 배열.
Qt는 메모리의 데이터를 구조화 하기 위한, 범용의 템플릿 기반 "컨테이너 클래스 집합을 제공합니다.
더 자세한 정보는 "컨테이너 클래스":http://doc.qt.io/qt-5.1/qtcore/containers.html 의 전체 리스트를 참고하십시오.
국제화
Qt는 표시할 수 있는 문자열의 인코딩에 "Unicode":http://doc.qt.io/qt-5.1/qtdoc/unicode.html 를 사용합니다. 유니코드는 세계에서 일반적으로 사용되는 모든 활자 시스템을 지원하며, 크로스플랫폼 개발에 이상적입니다.
Qt의 강력한 "internationalization system":http://doc.qt.io/qt-5.1/qtdoc/internationalization.html을 이용하면, 모든 다양한 언어를 하나의 코드 기반에서 지원하도록 응용 프로그램을 작성할 수 있습니다.
프로세스 간 통신
Qt는 프로세스간 통신("communication between processes":http://doc.qt.io/qt-5.1/qtdoc/ipc.html)을 지원하기 위해 몇몇 클래스를 제공합니다.
QProcess 클래스를 이용하면 외부 프로세스를 띄우고 관리할 수도 있습니다.
스레딩
Qt는 안전하고 플랫폼 독립적인 방식으로 스레드와 병렬처리 코드("threads and parallelized code":http://doc.qt.io/qt-5.1/qtcore/thread-basics.html)를 관리하는 간략하고 편리한 기능("primitives and convenience functionality":http://doc.qt.io/qt-5.1/qtcore/threads.html)을 제공합니다.
플랫폼 지원
Qt는 여러분에게, 동일 코드 기반으로 어떠한 수정 없이 서로 다른 플랫폼에서 컴파일 하고 배포할 수 있는, 플랫폼 독립적인 코드를 작성할 수 있게 해줍니다.
플랫폼 전용 기능을 사용해야 하고 시스템 라이브러리와 통합해야 하는 경우에도, Qt는 이에 대한 솔루션을 제공합니다.
Qt는 Qt 플랫폼 추상화("Qt Platform Abstraction":http://doc.qt.io/qt-5.1/qtdoc/qpa.html, QPA)를 이용하여, 대상 플랫폼의 창 시스템과 통합됩니다. QPA는, Qt를 새로운 플랫폼으로 간단하고 빠르게 이식하게 하는, 창 시스템의 추상화입니다. 이러한 시스템 중 하나가 Wayland protocol 입니다. Qt가 "Wayland":http://doc.qt.io/qt-5.1/qtdoc/wayland-introduction.html 와 같이 사용되면, 멀티 프로세스 그래픽 사용자 인터페이스를 지원하는, 하드웨어 내장형 경량 창 시스템의 역할을 하게 됩니다.
Qt 플랫폼 추상화는 "Qt's plugin system":http://doc.qt.io/qt-5.1/qtcore/plugins-howto.html 을 사용합니다. 이 시스템은 Qt를 특정 (새 이미지 형식, 데이터베이스 드라이버 등등에 대한 지원을 추가하는 등의)영역으로 확장하는, 또한 서드파티 플러그인을 지원하는 확장형 Qt 응용 프로그램을 작성하는 데에도 사용할 수 있는, API들을 제공합니다.