´ÙÀ½
ÀÌÀü
Â÷·Ê
X11 R6.4 ¸±¸®Áî(1998)´Â
X ÄÁ¼Ò½Ã¿òÀÌ °³¹ßÇÑ X11 À©µµ¿ì ½Ã½ºÅÛ Ç¥ÁØ¿¡ ¸Â´Â »ùÇà ÇÁ·Î±×·¥ÀÇ ÃÖ½Å
¹öÀüÀÌ´Ù. ´ëºÎºÐÀÇ
ÇöÀçÀÇ X11 Ç¥Áذú »ùÇà ÇÁ·Î±×·¥Àº À¯´Ð½º ȯ°æ¿¡¼ÀÇ À¯´ÏÄڵ忡 ´ëÇÑ
±¤¹üÀ§ÇÑ °ü½ÉÀ» ÀÏÂïºÎÅÍ ºÒ·¯ÀÏÀ¸Å°°í ÀÖ´Ù.
UTF-8 Àß¶ó³»±â¿Í ºÙÀ̱â:
ICCCM Ç¥ÁØÀº ¼±ÅÃÇÑ UCS ¹®ÀÚ¿À»
º¯È¯ÇÏ´Â ¹æ¹ýÀ» ¸í½ÃÇÏÁö ¾Ê°í ÀÖ´Ù. ¸î¸î º¥´õµéÀº ÇöÁ¸ÇÏ´Â
COMPOUND_TEXT
¸ÞÄ«´ÏÁò (CTEXT)¿¡ UTF-8À» ¶Ç ÇϳªÀÇ ÀÎÄÚµùÀ¸·Î½á Ãß°¡ÇÏ¿´´Ù. À̰ÍÀº Àû¾îµµ
´ÙÀ½°ú °°Àº ÀÌÀ¯¿¡¼ ÁÁÀº ÇØ°áÃ¥ÀÌ ¾Æ´Ï´Ù.
- CTEXT´Â ´Ù¼Ò º¹ÀâÇÑ ISO 2022 ¸ÞÄ«´ÏÁòÀÌ´Ù. ±×·¯³ª À¯´ÏÄÚµå´Â CTEXT¿¡ ¶Ç
´Ù¸¥ Ãß°¡ Ç׸ñÀ» Á¦°øÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ²ûÂïÇÑ ¸ÞÄ«´ÏÁò Àüü¸¦ ÈξÀ °£´ÜÇϰí
´õ¿í Æí¸®ÇÏ¸ç µ¿µîÇÑ ´É·ÂÀ» °®´Â ¹«¾ð°¡·Î ´ëüÇÒ ±âȸ¸¦ Á¦°øÇÑ´Ù.
- Á¸ÀçÇÏ´Â ¸¹Àº ¾ÖÇø®ÄÉÀ̼ǵéÀº CTEXT¸¦ ÅëÇØ ¼±ÅÃÇÑ °Í°ú Åë½ÅÇÒ ¼ö ÀÖÁö¸¸,
»õ·Ó°Ô Ãß°¡ÇÑ UTF-8 ¿É¼ÇÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. CTEXT »ç¿ëÀÚ´Â °ú°ÅÀÇ ISO 2022
ÀÎÄÚµùÀ» »ç¿ëÇÒ °ÍÀÎÁö »õ·Î¿î UTF-8 ÀÎÄÚµùÀ» »ç¿ëÇÒ °ÍÀÎÁö¸¦ °áÁ¤Çؾ߸¸ ÇÑ´Ù.
±×·¯³ª µÎ°¡Áö¸¦ µ¿½Ã¿¡ »ç¿ëÇÒ ¼ö´Â ¾ø´Ù. ´Ù½Ã ¸»Çؼ, CTEXT¿¡ UTF-8À» ½ÅÁßÈ÷
Ãß°¡ÇÑ´Ù°í ÇÒÁö¶óµµ Á¸ÀçÇÏ´Â CTEXT ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÇÏÀ§ ¹öÀü°úÀÇ È£È¯¼ºÀº ±úÁø´Ù.
- ÇöÀçÀÇ CTEXT ½ºÆåÀº ¼½¼Ç 6¿¡¼ ¸íÈ®ÇÏ°Ô ´ÙÀ½°ú °°ÀÌ UTF-8ÀÇ Ãß°¡¸¦
±ÝÁöÇϰí ÀÖ´Ù. "'´Ù¸¥ ÄÚµù ½Ã½ºÅÛ'¿¡ µî·ÏµÈ ISO´Â ÄÄÆÄ¿îµå ÅØ½ºÆ®¿¡¼ »ç¿ëµÇÁö
¾Ê´Â´Ù; È®ÀåµÈ ¼¼±×¸ÕÆ®µéÀº ISO 2022°¡ ¾Æ´Ñ ÀÎÄÚµù(non-2022 encodings)À» À§ÇÑ
À¯ÀÏÇÑ ¸ÞÄ«´ÏÁòÀÌ´Ù."
Juliusz Chroboczek˼
¼Ó¼º Çü(property type)°ú ¼±Åà ¸ñÇ¥(selection target)·Î »ç¿ëÇÒ ¼ö ÀÖ´Â »õ·Î¿î
UTF8_STRING ¿ä¼Ò¸¦ ÀÌ¿ëÇÏ¿© UTF-8ÀÇ ¼±Åà ¿©ºÎ¸¦ ´Ù·ç±â À§ÇÑ ICCMÀÇ È®Àå¿¡
´ëÇØ¼, "
À¯´ÏÄÚµå ÅØ½ºÆ®ÀÇ ³»ºÎ-Ŭ¶óÀÌ¾ðÆ® ±³È¯¿¡ °üÇÑ
Á¦¾È ÃʾÈ(Inter-Client Exchange of Unicode Text draft proposal)"À» ÀÛ¼ºÇÏ¿´´Ù.
- ¾µ¸ð ¾ø´Â ÆùÆ® µ¥ÀÌÅÍ ±¸Á¶µé: ÆùÆ®ÀÇ ¹ÌÅÍ ´ÜÀ§ ±æÀÌ¿¡ °üÇÑ
Á¤º¸¸¦ ³ªÅ¸³»±â À§ÇØ »ç¿ëÇÏ´Â Xlib API¿Í X11 ÇÁ·ÎÅäÄÝ µ¥ÀÌÅÍ ±¸Á¶´Â µå¹°°Ô
»ç¿ëÇÏ´Â ÆùÆ®µé(sparsely populated fonts)À» ó¸®ÇÒ ¶§´Â ´ë´ÜÈ÷ ¾µ¸ð°¡ ¾ø´Ù.
X Ŭ¶óÀÌ¾ðÆ®¿¡¼ ¾î¶² ÆùÆ®¿¡ ¾×¼¼½ºÇÏ´Â °¡Àå ÀϹÝÀûÀÎ ¹æ¹ýÀº XLoadQueryFont()
ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀ̸ç, À̰ÍÀº XFontStruct¸¦ À§ÇØ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í ¼¹ö·ÎºÎÅÍ
±×°ÍÀÇ ³»¿ëÀ» ºÒ·¯¿Â´Ù. XFontStruct´Â °¢°¢ 12¹ÙÀÌÆ®ÀÎ XCharStruct
¿£Æ®¸®(entry)ÀÇ ¹è¿À» Æ÷ÇÔÇÑ´Ù. ÀÌ·¯ÇÑ ¹è¿ÀÇ Å©±â´Â ¸¶Áö¸· ¹®ÀÚÀÇ ÄÚµå À§Ä¡ -
ù ¹øÂ° ¹®ÀÚÀÇ ÄÚµå À§Ä¡ + 1 ÀÌ´Ù. ±×·¯¹Ç·Î U+0020°ú U+FFFD¸¦ ¸ðµÎ Æ÷ÇÔÇÏ´Â
ÀÓÀÇÀÇ "*-iso10646-1" ÆùÆ®´Â 65502 ¿ä¼Ò¸¦ °®´Â XCharStruct ¹è¿ÀÌ ÇÒ´çµÇµµ·Ï
ÇÒ °ÍÀÌ´Ù(½ÉÁö¾î´Â CharCell ÆùÆ®µé¿¡ ´ëÇØ¼µµ °°Àº °á°ú°¡ ¹ß»ýÇÒ °ÍÀÌ´Ù).
À̰ÍÀº ±× ÆùÆ®°¡ ¿ÀÁ÷ 1000°³ÀÇ ¹®ÀÚµéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù ÇÒ Áö¶óµµ 786
ų·Î¹ÙÀÌÆ®ÀÇ Å¬¶óÀ̾ðÆ®-»çÀÌµå ¸Þ¸ð¸®(client-side memory)¿Í µ¥ÀÌÅÍ Àü¼ÛÀ»
ÇÊ¿ä·Î ÇÔÀ» ÀǹÌÇÑ´Ù.
Áö±Ý±îÁö °Å·ÐÇØ¿Ô´ø Àϰú °ü·ÃµÈ ¸î¸î ÁÖº¯ÀÇ Àϵé:
- XFree86 4.0¿¡ ÇÔ²² Á¦°øµÇ´Â ºñ-¾Æ½Ã¾Æ±Ç¿ë -misc-fixed-*-iso10646-1 ÆùÆ®µéÀº U+31FF ÀÌ»óÀÇ ¿µ¿ª¿¡¼´Â ¾î¶°ÇÑ ¹®ÀÚµµ Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù. À̰ÍÀº ÇÊ¿ä
ÇÑ ¸Þ¸ð¸®·®À» 153 ų·Î¹ÙÀÌÆ®±îÁö·Î Á¦ÇÑÇÑ´Ù. À̰ÍÀº ¿©ÀüÈ÷ ÁÁÁö ¾ÊÀº ÀÏÀÌÁö¸¸,
±×·¸°Ô ³ª»Û Àϵµ ¾Æ´Ï´Ù.(BDF ÆÄÀÏ¿¡¼ ³ªÅ¸³ª´Â U+31FF ÀÌ»óÀÇ ¿µ¿ª¿¡¼ À¯¿ëÇÑ ¹®
ÀÚµéÀÌ ½ÇÁ¦·Î Á¸ÀçÇϸç, ÀÌ·¯ÇÑ ¹®Á¦°¡ ÇØ°áµÉ ±× ³¯¸¸À» ±â´Ù¸®°í ÀÖ´Ù. ±×·¯³ª ±×
µéÀº ÇöÀç´Â -1·Î ÀÎÄÚµùµÇ¸ç, µû¶ó¼ X ¼¹ö¿¡ ÀÇÇØ¼ ¹«½ÃµÈ´Ù.)
- Bruno HaibleÀº ¼¹ö¿¡¼ Ŭ¶óÀÌ¾ðÆ®·Î ¾ÐÃà½ÃÄÑ XCharStruct¸¦ Àü¼ÛÇϰí,
°°Àº ÆùÆ®¸¦ ·ÎµåÇÏ´Â ´Ù¼öÀÇ »ç¿ëÀÚ¸¦ À§ÇÑ XlibÀÇ °øÀ¯ ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â,
XFree86 4.0À» À§ÇÑ BIGFONT ÇÁ·ÎÅäÄÝ È®ÀåÀÚ(extension)¸¦ ÀÛ¼ºÇÏ¿´´Ù.
ÀÌ·¯ÇÑ ÁÖº¯ÀÇ ÀϵéÀº XFontStruct°¡ µå¹°°Ô »ç¿ëÇÏ´Â ÆùÆ®µé¿¡°Ô ÀûÇÕÇÏÁö ¾Ê´Ù´Â
ÀáÀçÀûÀÎ ¹®Á¦¸¦ ÇØ°áÇØ ÁÖÁö ¾Ê´Â´Ù. ±×·¯³ª ±×µéÀº API ȤÀº Ŭ¶óÀÌ¾ðÆ® ¼Ò½º ÄÚµå
¸¦ º¯°æÇÒ ÇÊ¿ä ¾øÀÌ Áß¿äÇÑ È¿À² Çâ»óÀ» Á¦°øÇÑ´Ù. ÇѰ¡Áö ÁøÁ¤ÇÑ ÇØ°áÃ¥Àº XFontStr
uct¸¦ ¹è¿°ú´Â ´ëÁ¶ÀûÀ¸·Î ¹®ÀÚ¸¦ ÀúÀåÇÏ´Â Á¤·Ä ¸®½ºÆ®³ª ÇØ½Ã Å×À̺íÀ» Æ÷ÇÔÇÏ´Â
ÈξÀ À¯¿¬ÇÑ ¹«¾ð°¡·Î È®Àå ȤÀº ´ëüÇÏ´Â °ÍÀÌ µÉ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ XFontStructÀÇ Àç
¼³°è´Â ¶ÇÇÑ °áÇÕ ¹®ÀÚ¿Í Àεµ ¹®ÀÚÀÇ ¿¬°á¼±À» µ¿½Ã¿¡ »ç¿ëÇϱâ À§ÇØ ±ÞÈ÷ ÇÊ¿äÇÑ ´ë
ºñÃ¥ÀÌ µÉ °ÍÀÌ´Ù.
- Keysyms: Áö±Ý±îÁö Á¤ÀÇµÈ ¹Ù·Î´Â keysyms´Â ´ÜÁö ¾ÆÁÖ ÀÛÀº
Unicode ¸ñ·Ï ¸¸À» Æ÷ÇÔÇÑ´Ù. Markus KuhnÀº U-00000000 ºÎÅÍ U-00FFFFFF±îÁöÀÇ
¹üÀ§³»ÀÇ ¸ðµç UCS ¹®ÀÚ´Â 0x01000000 ºÎÅÍ 0x01ffffff±îÁöÀÇ ¹üÀ§³»ÀÇ keysym
°ªÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù°í Á¦¾ÈÇÏ¿´´Ù(±×¸®°í xterm¿¡¼ À̰ÍÀ» ±¸ÇöÇÏ¿´´Ù).
À̰ÍÀº ³Î¸® ÀÎÁ¤µÇ°í ÀÖ´Â °Íó·³ Àüü 31ºñÆ®ÀÇ UCS °ø°£À» Áö¿øÇÏÁö ¾Ê´Â´Ù.
±×·¯³ª À̰ÍÀº UTF-16°ú ±× ÀÌ»óÀÇ ¸ðµå¿¡¼ ³ªÅ¸³¾ ¼ö ÀÖ´Â U-0010FFFF±îÁöÀÇ
¸ðµç ¹®ÀÚµéÀ» Áö¿øÇϸç, ISO°¡ ´õ Å« ¿µ¿ªÀÇ UCS ÄÚµåµéÀ» ÇÒ´çÇÒ °Í °°Áö´Â
¾Ê´Ù(»ç½Ç ¹Ì·¡¿¡´Â ISO 10646À¸·ÎºÎÅÍ U-0010FFFF¸¦ ³Ñ´Â ÄÚµå °ø°£À» ¾ø¾ÖÀÚ´Â
Á¦¾ÈÀÌ ÀÖ´Ù). µû¶ó¼ À¯´ÏÄÚµå ¹®ÀÚ U+ABCD¸¦ ¾ò±â À§Çؼ´Â keysyms 0x0100abcd¸¦
Á÷Á¢ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ °íÀüÀûÀÎ keysyms¿Í UCS(X11 Ç¥ÁØ¿¡ µé¾î°¡¾ß¸¸ ÇÒ °Í
ÁßÀÇ ÇϳªÀÌ´Ù) »çÀ̸¦ º¯È¯½Ã۱â À§ÇØ Á¦¾ÈµÈ Å×ÀÌºí¿¡ °üÇÑ ¼Ò½º ÄÚµåÀÎ xtermÀÇ
keysym2ucs.c
ÆÄÀÏÀ» º¸¶ó. Markus´Â ¶ÇÇÑ X ÇÁ·ÎÅäÄÝ Ç¥ÁØ
ºÎ·Ï A: KEYSYM ÀÎÄÚµùÀÇ °³Á¤ÆÇ ÃʾÈ
À» ÀÛ¼ºÇß´Ù. ±×°ÍÀº UCS »óÈ£ ÂüÁ¶ Å×À̺íÀ» Ãß°¡ÇÑ KEYSYM ÀÎÄÚµù(
PDF)ÀÌ´Ù.
- °áÇÕ ¹®ÀÚ: X11ÀÇ ¼¼ºÎ »çÇ×À» º¸¸é °áÇÕ ¹®ÀÚ¸¦ ¾î¶² ½ÄÀ¸·Îµµ
Áö¿øÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÆùÆ® Á¤º¸¿¡´Â ¾×¼¾Æ®¸¦ ÀÚµ¿À¸·Î ºÙÀ̴µ¥
ÇÊ¿äÇÑ µ¥ÀÌÅͰ¡ ºÎÁ·ÇÏ´Ù(¿¹µé µé¸é, TeX¿¡´Â ¸ðµç ÆùÆ®¿¡ ¾×¼¾Æ®¸¦ ÀÚµ¿À¸·Î
ºÙÀÌ´Â ±â´ÉÀÌ ÀÖ´Ù). ´Ù¾çÇÑ »ç¶÷µéÀÌ À×Å©¸¦ °¡Áö°í ¹®ÀÚÀÇ ¿ÞÆí¿¡ ÆøÀÌ ¾ø´Â
¹®ÀÚ(zero-width characters)¸¦ »ç¿ëÇÏ´Â °¡Àå °£´ÜÇÑ °áÇÕ ¹®ÀÚ °ãÃľ²±â(simplest
overstriking combining characters)¸¦ ±¸ÇöÇϱâ À§Çؼ ½ÇÇèÀ» ÇØ¿Ô´Ù. ±×·¯³ª
À̰ÍÀ» ±¸ÇöÇÏ´Â ¹æ¹ý¿¡ °üÇÑ ¼¼ºÎ »çÇ×Àº ½ÇÁ¦·Î ¸í½ÃµÇÁö ¾Ê°í ÀÖ´Ù. (¿¹¸¦ µé¸é,
CharCell°ú ¸ð³ë½ºÆäÀ̽º ÆùÆ®(monospaced fonts)´Â ÆøÀÌ ¾ø´Â ¹®ÀÚ¸¦ Çã¿ëÇÏÁö
¾Ê´Â´Ù.) ±×·¯¹Ç·Î À̰ÍÀº ¾ÆÁ÷ Æø³Ð°Ô È®¸³µÈ ±â¼úÀÌ ¾Æ´Ï´Ù.
- ¿¬°á¼±: Àεµ ¼Ã¼´Â ¿¬°á¼± ġȯÀ» Áö¿øÇÏ´Â ÆùÆ® ÆÄÀÏ Æ÷¸ËÀ»
ÇÊ¿ä·Î ÇÑ´Ù. À̰ÍÀº Áö±ÝÀ¸·Î½á´Â °áÇÕ ¹®ÀÚó·³ X11ÀÇ ¼¼ºÎ »çÇ׿¡ Æ÷ÇԵǾî
ÀÖÁö ¾Ê´Ù.
- UTF-8 ·ÎÄÉÀÏ: X11 R6.4 »ùÇÃÀº Áö±ÝÀ¸·Î½á´Â UTF-8 ·ÎÄÉÀÏÀ» À§ÇÑ
¾î¶°ÇÑ Áö¿øµµ Æ÷ÇÔÇÏÁö ¾Ê°í ÀÖ´Ù. °ú°ÅÀÇ UTF ·ÎÄÉÀÏÀº ÀÖÁö¸¸, ±×°ÍÀº ºÒ¿ÏÀüÇϸç
ÇöÀç¿¡´Â ¾µ¸ð¾ø´Â UTF-1 ÀÎÄÚµùÀ» »ç¿ëÇÑ´Ù. UTF-8 ·ÎÄÉÀÏÀ» ±¸ÇöÇϱâ À§Çؼ´Â
ÀϹÝÀûÀÎ ÀÎÄÚµù º¯È¯ °úÁ¤ÀÌ ÇÊ¿äÇÒ »Ó¸¸ ¾Æ´Ï¶ó ¿©·¯°¡Áö Űº¸µå µî·Ï(entry)
¹æ¹ý, Á¸ÀçÇÏ´Â ISO 8859¿Í keysym Űº¸µå¸¦ UCS·Î ¸ÅÇÎÇÏ¿© ¹èÄ¡Çϱâ, ÇÕ¼º Ű
(compose key)¸¦ À§ÇÑ ±Øµµ·Î È®ÀåµÈ Áö¿ø ¹× Çѱ۰ú ÇÑÀÚ µî·Ï
Áö¿ø(entry support)À» ÀÔ·ÂÇϱâ À§ÇÑ ÀÓÀÇ ¹®ÀÚÀÇ
ISO 14755 16Áø¼ö µî·ÏÀÌ ÇÊ¿äÇÏ´Ù.
- »ùÇà ±¸Çö(sample implementation): xterm, xfontsel, À©µµ¿ì
¸Å´ÏÀúµî°ú °°Àº °íÀüÀûÀΠǥÁØ ÅøÀ» À§ÇÑ À¯´ÏÄÚµå Áö¿ø »Ó¸¸ ¾Æ´Ï¶ó ¼ö¸¹Àº
±¤¹üÀ§ÇÑ À¯´ÏÄÚµå Ç¥ÁØ ÆùÆ®µéÀÌ »ùÇà ±¸Çö¿¡ Ãß°¡µÇ¾î¾ß¸¸ ÇÑ´Ù. ÀÌ·¯ÇÑ ºÎºÐ¿¡
°üÇÑ ¸î¸î ¿¬±¸µéÀÌ ÀÌ¹Ì XFree86 ³»ºÎ¿¡¼ ÀÌ·ç¾îÁö°í ÀÖÀ¸¸ç ±× ¹ÛÀÇ ÀϵéÀº
ÀÌÀüÀÇ Áß¿ä »ç¾ÈµéÀÌ ¾ÆÁ÷ ÇØ°áµÇÁö ¾Ê¾Ò´Ù´Â »ç½Ç·Î ÀÎÇØ ÇöÀç ¿¬±âµÇ°í ÀÖ´Ù.
ÀÌ·¯ÇÑ À̽´µéÀ» ¿¬±¸ÇÏ´Â ÀÛ¾÷ÀÌ ÁøÇà ÁßÀΰ¡? ¸ð¸£°Ú´Ù. ³ª´Â ¸î ÀÏ¿¡ °ÉÃÄ X ÄÁ
¼Ò½Ã¿òÀ» °ø½ÄÀûÀ¸·Î °è½ÂÇÑ ´ÜüÀÌÀÚ X11 Ç¥Áذú »ùÇà ±¸ÇöÀÇ °ü¸®ÀÚ ¿ªÇÒÀ» ÇÏ´Â Op
engroupÀÎ
X.Org¿¡ Á¢ÃËÇÏ·Á ½ÃµµÇßÁö¸¸,
±×µé·ÎºÎÅÍ ¾ÆÁ÷ ¾µ¸ð ÀÖ´Â ¾î¶°ÇÑ ´ë´äµµ ¾òÁö ¸øÇß´Ù(X.OrgÀÇ ÇÑ ¸â¹öÀÎ
XFree86¿¡µµ Á¢ÃËÇßÁö¸¸, ¿ª½Ã ´ë´äÀ» ¾òÁö ¸øÇß´Ù).
´ÙÀ½
ÀÌÀü
Â÷·Ê