| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 21. Áö¿ªÈ | Fast Forward | Next |
locale Áö¿øÀº ¾ËÆÄºª, Á¤·Ä(sorting), ¼ýÀÚ Çü½Ä µî ¹®ÈÀû ±âÈ£¸¦ ¹è·ÁÇÑ ÀÖ´Â ¾îÇø®ÄÉÀ̼ÇÀ» ´ë»óÀ¸·Î ÇÕ´Ï´Ù. PostgreSQLÀº ¼¹öÀÇ operating systemÀÌ Á¦°øÇϴ ǥÁØ ISO C¿Í POSIXÀÇ Áö¿ª(locale) ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. Ãß°¡ÀûÀÎ Á¤º¸´Â ½Ã½ºÅÛÀÇ ¹®¼¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.
Áö¿ª(locale) Áö¿øÀº initdb¸¦ »ç¿ëÇØ µ¥ÀÌÅͺ£À̽º Ŭ·¯½ºÅ͸¦ ÀÛ¼ºÇÒ ¶§ ÀÚµ¿ÀûÀ¸·Î Ãʱâȵ˴ϴÙ. initdb´Â µðÆúÆ®·Î ±× ½ÇÇà ȯ°æÀÇ ·ÎÄÉÀÏ ¼³Á¤¿¡ µû¶ó µ¥ÀÌÅͺ£À̽º Ŭ·¯½ºÅ͸¦ ÃʱâÈÇÕ´Ï´Ù. ¶§¹®¿¡ ½Ã½ºÅÛÀÌ µ¥ÀÌÅͺ£À̽º Ŭ·¯½ºÅÍ·Î »ç¿ëÇÏ°í ½ÍÀº Áö¿ª(locale)À» ¹Ì¸® ¼³Á¤ÇØµÎ¸é ´õ ÀÌ»ó ÇÊ¿ä·Î ÇÏ´Â °ÍÀº ¾ø½À´Ï´Ù. ´Ù¸¥ Áö¿ª(locale)À» »ç¿ëÇÏ°í ½ÍÀº °æ¿ì(¶Ç´Â ½Ã½ºÅÛÀÇ ·ÎÄÉÀÏ ¼³Á¤ÀÌ ºÒºÐ¸íÇÑ °æ¿ì)´Â initdbÀÇ --locale¿É¼ÇÀ» »ç¿ëÇÏ¿© ¿øÇÏ´Â Áö¿ª(locale)À» ÁöÁ¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌÇÏ´Â ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
initdb --locale=sv_SE
ÀÌ ¿¹Á¦´Â Áö¿ª(locale)À» ½º¿þµ§(SE)¿¡¼ »ç¿ëµÇ°í ÀÖ´Â ½º¿þµ§¾î(sv)¿¡ ¸ÂÃß°í ÀÖ½À´Ï´Ù. ±× ¹Û¿¡µµ en_US(¹Ì±¹ ¿µ¾î)³ª fr_CA(ij³ª´ÙÀÇ ÇÁ¶û½º¾î)µîÀ» ¼³Á¤ ÇÒ ¼ö ÀÖ½À´Ï´Ù. Áö¿ª¿¡ ´ëÇØ Çϳª ÀÌ»óÀÇ character set°¡ »ç¿ë °¡´ÉÇϸé, cs_CZ.ISO8859-2¿Í °°ÀÌ ±â¼ú ÇÒ ¼ö ÀÖ½À´Ï´Ù. ½Ã½ºÅÛ¿¡¼ Áö¿ªÀ» ¾î¶² À̸§À¸·Î »ç¿ëÇÒ ¼ö ÀÖÀ»±î ÇÏ´Â ¹®Á¦´Â operating systemÀÇ vender¿¡ ÀÇÇØ Á¦°øµÈ °Í°ú ¹«¾ùÀÌ ¼³Ä¡µÇ¾ú´Â °¡¿¡ ÀÇÁ¸ÇÕ´Ï´Ù (´ëºÎºÐÀÇ ½Ã½ºÅÛ¿¡¼´Â locale -a¶ó°í ÇÏ´Â Ä¿¸àµå·Î ÀÌ¿ë °¡´ÉÇÑ Áö¿ªÀÇ À϶÷À» ÀÔ¼öÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù).
¶§·Î´Â ÀϺΠÁö¿ªÀ¸·ÎºÎÅÍÀÇ ·êÀ» È¥ÇÕÇÏ´Â °ÍÀÌ À¯¿ëÇÕ´Ï´Ù. Áï, ¿µ¾î Á¶ÇÕ(collation) ±ÔÄ¢À» »ç¿ëÇÏ´Â ½ºÆäÀÎ¾î ¸Þ¼¼Áö¿Í °°½À´Ï´Ù. ÀÌ ±â´ÉÀ» Áö¿øÇϱâ À§Çؼ, Áö¿ªÈ ·êÀÇ Æ¯Á¤ÇÑ ºÎºÐ¸¸À» Á¦¾îÇÏ´Â Áö¿ª ÇÏÀ§Ä«Å×°í¸®ÀÇ ÁýÇÕÀÌ Á¸ÀçÇÕ´Ï´Ù.
| LC_COLLATE | ¹®ÀÚ¿ Á¤·Ä ¼ø¼ |
| LC_CTYPE | ¹®ÀÚÀÇ ºÐ·ù(¹®ÀÚ¶õ ¹«¾ùÀΰ¡, ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â°¡) |
| LC_MESSAGES | ¸Þ¼¼ÁöÀÇ ¾ð¾î |
| LC_MONETARY | ÅëÈ Çü½Ä |
| LC_NUMERIC | ¼ýÀÚ Çü½Ä |
| LC_TIME | ³¯Â¥¿Í ½Ã°¢ÀÇ Çü½Ä |
½Ã½ºÅÛÀÌ Áö¿ªÀ» Áö¿øÇÏÁö ¾Êµµ·Ï ÇÏ°í ½ÍÀº °æ¿ì, Ưº°ÇÑ Áö¿ª¿¡ C³ª POSIX¸¦ »ç¿ëÇØ Áֽʽÿä.
Áö¿ª Ä«Å×°í¸®ÀÇ Æ¯¼º Áß ÀϺδ °ªÀ» µ¥ÀÌÅͺ£À̽º Ŭ·¯½ºÅÍÀÇ ¼ö¸íÀ» À§ÇØ °íÁ¤½ÃÄÑ¾ß ÇÕ´Ï´Ù. Áï, initdbÀÇ ½ÇÇàµÇ¸é, ÀÌ °ªÀ» º¯°æÇÒ ¼ö ¾ø°Ô µË´Ï´Ù. LC_COLLATE¿Í LC_CTYPEÀº ÀÌ·¯ÇÑ Ä«Å×°í¸®¿¡ µé¾î°©´Ï´Ù. À̵éÀº À妽º Á¤·Ä ¼ø¼¿¡ ¿µÇâÀ» ¹ÌÄ¡±â ¶§¹®¿¡, °ªÀÌ °íÁ¤µÇ¾î¾ß¸¸ ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ÅØ½ºÆ® ¿ÀÇ À妽º´Â ÆÄ±«µË´Ï´Ù. PostgreSQLÀº initdb°¡ °ËÁöÇÑ LC_COLLATE¿Í LC_CTYPE °ªÀ» ±â·ÏÀ» °¿äÇÕ´Ï´Ù. ¼¹ö´Â ½ÃÀÛµÈ ½ÃÁ¡¿¡¼ ÀÚµ¿ÀûÀ¸·Î ÀÌ·¯ÇÑ µÎ °ªÀ» ä¿ëÇÕ´Ï´Ù.
±× ¿ÜÀÇ Áö¿ª Ä«Å×°í¸®´Â ¼¹ö°¡ ½ÇÇàÁßÀÌ´õ¶óµµ Áö¿ª Ä«Å×°í¸®¿Í °°Àº À̸§À» °®´Â run-time ¼³Á¤ º¯¼ö¸¦ ¼³Á¤ÇÔÀ¸·Î¼, ¿øÇÏ´Â µ¥·Î º¯°æµÉ ¼ö ÀÖ½À´Ï´Ù. (ÀÚ¼¼ÇÑ °ÍÀº Chapter 17À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä). initdb¿¡ ÀÇÇØ ¼±ÅÃµÈ µðÆúÆ®´Â ½ÇÁ¦ ¼¹öÀÇ ±âµ¿½Ã¿¡ µðÆúÆ®·Î¼ µ¿ÀÛÇÔÀ¸·Î½á postgresql.conf¼³Á¤ ÆÄÀÏ¿¡ ÀÔ·ÂµÉ »ÓÀÔ´Ï´Ù. ÀÌ ´ëÀÔ¹®À» postgresql.conf·ÎºÎÅÍ »èÁ¦Çϸé, ¼¹ö´Â ½ÇÇà ȯ°æÀÇ ¼³Á¤À» ±×´ë·Î »ç¿ëÇÕ´Ï´Ù.
¼¹öÀÇ Áö¿ªÀÇ µ¿ÀÛÀº ¾î´À Ŭ¶óÀ̾ðÆ®ÀÇ È¯°æ¿¡µµ ÀÇÁ¸ÇÏÁö ¾Ê°í, ¼¹ö¸¦ ÂüÁ¶ÇÒ ¼ö Àִ ȯ°æ º¯¼ö·Î Á¤ÇØÁý´Ï´Ù. ±×·¯¹Ç·Î ¼¹ö¸¦ °¡µ¿½Ã۱â Àü¿¡ ¿Ã¹Ù¸¥ Áö¿ª ¼³Á¤À» Çϵµ·Ï ÁÖÀÇÇØ Áֽʽÿä. °á°úÀûÀ¸·Î ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®¿¡ ´Ù¸¥ Áö¿ªÀÌ ¼³Á¤µÇ¾î ÀÖÀ¸¸é, ¸Þ¼¼Áö´Â ±×µéÀÌ ¾îµð¿¡ ºñ·ÔµÆ´Â Áö¿¡ µû¶ó ´Ù¸¥ ¾ð¾î·Î Ç¥½ÃµË´Ï´Ù.
Note: ½ÇÇà ȯ°æÀÇ Áö¿ªÀ» °è½ÂÇÑ´Ù´Â °ÍÀº ´ëºÎºÐÀÇ operating ½Ã½ºÅÛ¿¡¼ ´ÙÀ½°ú °°Àº Àǹ̸¦ °¡Áý´Ï´Ù. ÁöÁ¤µÈ Áö¿ª Ä«Å×°í¸®¿¡ ´ëÇØ, ¿¹¸¦ µé¸é Á¶ÇÕ(collation), ÀÌÇÏÀÇ È¯°æ º¯¼ö°¡ ¼ø¼´ë·Î Âü°íµÉ ¼ö ÀÖ½À´Ï´Ù. LC_ALL,LC_COLLATE(°³º°ÀÇ Ä«Å×°í¸®¿¡ ´ëÀÀÇÏ´Â º¯¼ö),LANG. ÀÌ·¯ÇÑ È¯°æ º¯¼ö°¡ ¾øÀ» °æ¿ì´Â Áö¿ª µðÆúÆ®ÀÎ C·Î ¼³Á¤µË´Ï´Ù.
¸Þ¼¼ÁöÀÇ ¾ð¾î¸¦ ¼³Á¤Çϱâ À§ÇÑ ¸ñÀûÀ¸·Î, ÀϺΠ¸Þ¼¼Áö Áö¿ªÈ ¶óÀ̺귯¸®´Â ¸ðµç Áö¿ª ¼³Á¤À» ¿À¹ö¶óÀ̵åÇϴ ȯ°æ º¯¼ö LANGUAGE¸¦ °Ë»öÇÕ´Ï´Ù. ÀǽÉÀÌ °£´Ù¸é, º¸´Ù ¸¹Àº Á¤º¸¸¦ À§ÇØ operating systemÀÇ ¹®¼, ƯÈ÷ gettextÀÇ ¹®¼¸¦ ÂüÁ¶ÇØ Áֽʽÿä.
À¯ÀúÀÇ ¼±ÅÃÇÑ ¾ð¾î·Î ¸Þ¼¼Áö°¡ ¹ø¿ªµÇµµ·Ï Çϱâ À§Çؼ´Â NLS°¡ ¼³Ä¡½Ã¿¡ »ç¿ëµÇ¾îÁ®¾ß¸¸ ÇÕ´Ï´Ù. ÀÌ ¿É¼ÇÀº ´Ù¸¥ Áö¿ª Áö¿ø ±â´É°ú´Â µ¶¸³µÇ¾î ÀÖ½À´Ï´Ù.
Áö¿ª ¼³Á¤Àº ÀÌÇÏÀÇ SQL ±â´É¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.
C³ª POSIXÀ̿ܿ¡ PostgreSQL·Î Áö¿ª ±â´ÉÀ» »ç¿ëÇÒ ¶§ÀÇ °áÁ¡Àº ½ÇÇà ¼ÓµµÀÔ´Ï´Ù. Áö¿ª ±â´ÉÀº ¹®ÀÚÀÇ ´À¸®°Ô ´Ù·ç°í, LIKE¿¡ ÀÇÇÑ ÀϹÝÀûÀÎ À妽ºÀÇ »ç¿ëÀ» ¹æÇØÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯¸¦ °í·ÁÇØ¼ Á¤¸»·Î ÇÊ¿äÇÑ ¶§¸¸ Áö¿ª ±â´ÉÀ» »ç¿ëÇØ ÁÖ¼¼¿ä.
C ÀÌ¿ÜÀÇ Áö¿ª ±â´É¿¡ ´ëÇØ, LIKE ±¸¹®À» °¡Áö´Â À妽º »ç¿ëÇϱâ À§ÇÑ PostgreSQLÀÇ È¸ÇÇ ¹æ¹ýÀ¸·Î¼ ¸î °¡Áö custom ¿¬»êÀÚ Å¬·¡½º°¡ ÀÖ½À´Ï´Ù. À̵éÀ» ÀÌ¿ëÇϸé, ¾ö°ÝÇÑ ¹®ÀÚ¿Í ¹®ÀÚÀÇ ºñ±³¸¦ ¼öÇàÇÏ´Â À妽º³ª, Áö¿ª ºñ±³ ·êÀ» ¹«½ÃÇÏ´Â À妽º¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀºSection 11.8À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
»ó±âÀÇ ¼³¸í¿¡ µû¶ó Áö¿ª Áö¿ø ±â´ÉÀÌ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏÁö ¾Ê´Â °æ¿ì, operating systemÀÇ Áö¿ª Áö¿ø ±â´ÉÀÌ Á¤È®ÇÏ°Ô ¼³Á¤µÇ¾î ÀÖ´ÂÁö È®ÀÎÇØ ÁÖ¼¼¿ä. ÁöÁ¤µÈ Áö¿ªÀÇ ¼³Ä¡ ¿©ºÎ¸¦ È®ÀÎÇϱâ À§Çؼ, operating systemÀÌ À̸¦ Á¦°øÇÏ´Â °æ¿ì¿¡ locale -aÄ¿¸àµå¸¦ »ç¿ëÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.
PostgreSQL°¡ ¿¹»óÇÏ´Â Áö¿ªÀÌ ½ÇÁ¦·Î »ç¿ëµÇ¾îÁö´ÂÁö È®ÀÎÇØ ÁÖ¼¼¿ä. LC_COLLATE¿Í LC_CTYPE ¼³Á¤Àº initdb ½Ã°£¿¡ °áÁ¤µÇ°í, initdb¸¦ Àç½ÇÇàÇÏÁö ¾Ê´Â ÇÑ º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù. LC_MESSAGES³ª LC_MONETARY¸¦ Æ÷ÇÔÇÏ´Â ´Ù¸¥ Áö¿ª ¼³Á¤Àº ¼¹ö ±âµ¿½ÃÀÇ È¯°æ¿¡ ÀÇÇØ óÀ½À¸·Î °áÁ¤µË´Ï´Ù¸¸, ±× ÀÚ¸®¿¡¼ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. SHOWÄ¿¸àµå¸¦ »ç¿ëÇØ, »ç¿ë ÁßÀÎ Áö¿ª ¼³Á¤À» È®ÀÎÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
¼Ò½º ¹èÆ÷¹°ÀÇ src/test/localeµð·ºÅ丮¿¡´Â PostgreSQLÀÇ Áö¿ª Áö¿øÀ» À§ÇÑ ½ÃÇèÀÌ ÀÖ½À´Ï´Ù.
¿¡·¯ ¸Þ¼¼ÁöÀÇ ÅØ½ºÆ®¸¦ ÆÄ½Ì(parsing)ÇÔÀ¸·Î½á ¼¹öÃø ¿¡·¯¸¦ ´Ù·ç´Â Ŭ¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ÇÀº ¼¹öÀÇ ¸Þ¼¼Áö°¡ ´Ù¸¥ ¾ð¾î·Î ÀÛ¼ºµÇ¸é ºÐ¸íÈ÷ ¹®Á¦°¡ µË´Ï´Ù. ÀÌ¿Í °°Àº ¾îÇø®ÄÉÀÌ¼Ç ÀÛ¼ºÀÚ °æ¿ì´Â ¿¡·¯ ÄÚµå ½ºÅ°¸¶·Î ´ëü½ÃŰ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.
¸Þ¼¼Áö ¹ø¿ª īŻ·Î±×¸¦ À¯ÁöÇÏ´Â °ÍÀº ÀڽŵéÀÇ ¾ð¾î·Î PostgreSQL¸¦ ±¸ÇöÇÏ°í ½ÍÀº ¸¹Àº ÀÚ¿øºÀ»çÀÚÀÇ Áö¼ÓÀûÀÎ ³ë·ÂÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ¸¸¾à ÇöÀç ¸ð±¹¾î·Î ¸Þ¼¼Áö¸¦ »ç¿ëÇÒ ¼ö ¾ø°Å³ª ÃæºÐÇÏ°Ô ¹ø¿ªµÇÁö ¾ÊÀ» °æ¿ì, µµ¿òÀ» ÁÖ½Å´Ù¸é °¨»çÇϰڽÀ´Ï´Ù. µµ¿òÀ» ¿øÇÒ °æ¿ì, Chapter 46³ª °³¹ßÀÚµéÀÇ ¸ÞÀϸµ ¸®½ºÆ®¿¡ Åõ°íÇØ Áֽʽÿä.