<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="tech-gdk" xml:lang="ko">

  <info>
    <link type="guide" xref="tech" group="gdk"/>
    <revision pkgversion="3.0" date="2011-04-05" status="candidate"/>

    <credit type="author copyright">
      <name>Shaun McCance</name>
      <email its:translate="no">shaunm@gnome.org</email>
      <years>2011–2012</years>
    </credit>

    <include xmlns="http://www.w3.org/2001/XInclude" href="cc-by-sa-3-0.xml"/>

    <desc>윈도우 시스템용 저수준 추상</desc>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>조성호</mal:name>
      <mal:email>shcho@gnome.org</mal:email>
      <mal:years>2016, 2017, 2018.</mal:years>
    </mal:credit>
  </info>

<title>GDK</title>

  <p>GDK는 그래픽 및 입력 장치용 윈도우 시스템과 연동하는 <link xref="tech-gtk">GTK+</link>의 하부 라이브러리입니다. 프로그램 코드에서 GDK를 직접 쓸 일은 거의 없지만, 화면에 저수준 창을 만들고 다양한 입력 장치로 사용자와 소통할 때 필요한 모든 기능이 있습니다. GDK는 다양한 윈도우 시스템의 추상체처럼 동작하기에 GTK+는 X 윈도우 시스템(X11), 마이크로소프트 윈도우, Mac OS X 쿼츠 어느곳에든 이식할 수 있습니다.</p>

<p>GDK는 키보드, 마우스 및 기타 입력 장치의 이벤트에 접근할 수 있게 합니다. GTK+의 위젯 구현체는 이 기능을 활용하며, 프로그램 코드에서 활용할 수 있게 이벤트를 고수준 시그널로 바꿉니다. 예를 들어, 적절한 위치에서 사용자가 마우스 단추를 눌렀다 떼면, <code>GtkButton</code> 위젯은, 마우스에서 발생하는 <code>GDK_BUTTON_PRESS</code> 이벤트와 <code>GTK_BUTTON_RELEASE</code> 이벤트를 추적하며, 이 이벤트를 적절한 <code>GtkButton::clicked</code> 시그널로 바꿉니다.</p>

<p>GDK는 끌어다 놓기 및 시스템의 클립보드 데이터에 접근할 저수준 루틴을 제공합니다. 개별 컨트롤을 구현할 때 적당한 사용자의 상호작용 행동에 따른 반응을 구현하려면 이 기능에 접근해야합니다.</p>

<p>GDK에는 GTK+와 같은 완전한 그래픽 툴킷을 구현할 때 필요한 기타 기능도 보유하고 있습니다. GDK는 GTK+가 여러 환경에서 동작하도록 플랫폼 추상체로 동작하므로 GTK+에서 필요한 모든 시스템 기능을 동작하는 API를 제공합니다. GTK+에서 필요한 시스템 기능에는 멀티헤드 디스플레이, 해상도, 색 품질, 색상표, 커서 정보가 있습니다.</p>

  <p>윈도우 시스템의 하부에서, 이벤트 저수준 접근, 윈도우, 클립보드 등의 저수준 접근 처리가 필요할 때면 GDK를 활용해야합니다. 이 작업에 GDK를 활용하면, 이식성을 확보하고, GTK+ 코드의 나머지 부분과 합쳐 쓸 수 있습니다. GDK의 단순 드로잉 루틴은 보통 사용하면 안됩니다. GDK가 단순히 윈도우 시스템의 드로잉 기반을 래핑했을 때 본래 목적을 벗어납니다. 고화질 2D 그래픽을 처리하려면, GDK 대신 <link xref="tech-cairo">카이로</link>에서 제공하는 확장 기능을 활용하십시오.</p>

<list style="compact">
  <item><p><link href="https://developer.gnome.org/gdk3/stable/">GDK 참고 설명서</link></p></item>
</list>
</page>
