Æ÷½ºÆ®±×·¹½ºÀÇ pg_hba.conf È°¿ë <author>TPLUG(µ¿¸íÁ¤º¸´ëÇб³ POWER LINUX USER GROUP) ÁÖ È¿½Ä <htmlurl url="mailto:nogadax@kldp.org" name="nogadax@kldp.org"> <date>2000³â 4¿ù4ÀÏ <abstract>ÀÌ ¹®¼­´Â Æ÷½ºÆ®±×·¹½ºÀÇ ÀÎÁõ ¹æ½ÄµîÀÇ È¯°æ¼³Á¤ ÆÄÀÏÀÎ pg_hba.conf¸¦ ¼³¸íÇÏ°í, ÀÌ¿¡ µû¸¥ »ç¿ë»óÀÇ ¿¹Á¦µîÀ» Á¦½ÃÇÏ°íÀÚ ÇÑ´Ù. ¶ÇÇÑ, JDBC ¸¦ ÀÌ¿ëÇÑ connection ¿¹Á¦¸¦ º¸¿©ÁØ´Ù. </abstract> <toc> <sect>Domain Socket <p>pg_hba.conf ¼³Á¤Àº µÎ°¡ÁöÀÇ ¹æ¹ýÀÌ ÀÖ´Ù. ù°´Â Unix Domain Socket ¹æ¹ýÀÌ°í µÑ°´Â Internet Domain Socket ¹æ¹ýÀÌ´Ù. <p>´ÙÀ½Àº ÀÌµé ¹æ¹ýÀÇ ¼³¸íÀÌ´Ù. <p>socket À̶õ unix »óÀÇ ÇÁ·Î¼¼½º°£ Åë½ÅÀ» À§ÇØ »ç¿ëµÇ´Â ¸ÞÄ«´ÏÁòÀ¸·Î¼­, ÀÌ·¯ÇÑ Åë½Å¿¡´Â µ¿ÀÏÇÑ ±â°è»óÀÇ ÇÁ·Î¼¼½º°£ Åë½Å°ú ³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÏ´Â ³×Æ® ¿öÅ©»óÀÇ ÇÁ·Î¼¼½º°£ Åë½ÅÀÌ ÀÖ´Ù. <p>socket Àº domain À̶ó´Â °øÅëµÈ Åë½Å Ư¼º¿¡ µû¶ó ºÐ·ùµÇ¸ç, µ¿ÀÏÇÑ ±â°è»óÀÇ ÇÁ·Î¼¼½º°£ Åë½ÅÀ» Unix Domain SocketÀ̶óÇÏ°í, ³×Æ®¿öÅ©»óÀÇ ÇÁ·Î¼¼½º°£ Åë½Å À» Internet Domain Socket (ȤÀº TCP/IP Domain Socket )¶ó ÇÑ´Ù. <p>Unix Domain SocketÀÇ ÁÁÀº ¿¹·Î´Â telnet À» ÅëÇÑ telnet µð¸ó°ú Æ÷½ºÆ®±×·¹½º µð¸ó°úÀÇ Åë½ÅÀÌ´Ù. <p>Internet Domain SocketÀÇ ÁÁÀº ¿¹·Î´Â ODBC ³ª JDBC ¸¦ ÅëÇØ ¿ø°ÝÁö Áï, ´Ù¸¥ ±â°è»ó¿¡¼­ JDBC¸¦ ÀÌ¿ëÇÑ Å¬¶óÀ̾ðÆ® ÇÁ·Î¼¼½º¿Í Æ÷½ºÆ®±×·¹½º µð¸ó°úÀÇ Åë½ÅÀÌ´Ù. ±×·¯¹Ç·Î JDBC ȤÀº, ODBC ¸¦ ÅëÇØ Æ÷½ºÆ®±×·¹½º DB¼­¹ö¿ÍÀÇ connection À» ¼³Á¤ÇÏ ·ÁÇÒ¶§ pg_hba.conf ÀÇ ¼³Á¤Àº Internet Domain Socket ¹æ½ÄÀ¸·Î ¼³Á¤ÇÏ¿©¾ß ÇÑ´Ù. <p>¸¸¾à 127.0.0.1 ÀÎ IP Address °¡ µ¿ÀÏÇÑ ±â°è»óÀÇ ÇÁ·Î¼¼½º°£ Åë½ÅÀ» À§ÇØ »ç¿ëµÇ¾ú´Ù ÇÒÁö¶óµµ 127.0.0.1 Àº ³×Æ®¿öÅ©»óÀÇ Æ¯¼öÇÑ IP À̹ǷΠÀÌ´Â ³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÏ´Â ³×Æ®¿öÅ©»óÀÇ ÇÁ·Î¼¼½º°£ Åë½ÅÀÌ´Ù. ±×·¯¹Ç·Î ÀÌ´Â Internet Domain Socket ÀÌ µÈ´Ù. <sect>pg_hba.conf ¼³Á¤ <p>(postgresql Host-Based-Access Control) <p>º¸Åë pg_hba.conf ´Â $PGDATA µð·ºÅ丮¿¡ Á¸ÀçÇÑ´Ù. ¿¹·Î¼­ Æ÷½ºÆ®±×·¹½ºÀÇ µðÆúÆ® µð·ºÅ丮´Â /usr/local/pgsqlÀÌ´Ù. ±×¸®°í PGDATA ÀÇ °ªÀº º¸Åë /usr/local/pgsql/data ÀÌ´Ù. <p>pg_hba.conf ÆÄÀÏÀº ÀϹÝÀûÀ¸·Î ·¹ÄÚµåµé·Î ÀÌ·ç¾îÁ® ÀÖÀ¸¸ç ·¹ÄÚµå¶õ ƯÁ¤ÇÑ ÇüŸ¦ Áö´Ñ ÇϳªÀÇ ¶óÀÎÀÌ´Ù. ¶óÀÎÀÇ Á¦ÀÏ ¾Õ¿¡ # ·Î µÇ¾î ÀÖÀ¸¸é ÀÌ´Â ÁÖ¼® 󸮰¡ µÇ¾î ÀÖ´Â °ÍÀÌ´Ù. ¶ÇÇÑ ¶óÀÎÀÌ °ø¶õÀ̸é ÀÌ´Â ¹«½ÃµÇ¾î Áø´Ù. <p>pg_hba.conf ÀÇ ·¹ÄÚµå´Â µÎ°¡Áö·Î ºÐ·ùµÇ¸ç Çϳª´Â Unix Domain Socket ÇüÀÌ¸ç ´Ù¸¥ Çϳª´Â Internet Domain Socket(TCP/IP Domain) ÇüÀÌ´Ù. <sect1>Unix Domain Socket ¼³Á¤<p> <tscreen><verb> ·¹ÄÚµå Çü½Ä local database authentication method : localÀº unix domain socket ¹æ½ÄÀÇ ¿¬°áÀ» Çã¿ëÇÑ´Ù. database ´Â ¿¬°áÀ» Çã¿ëÇÏ·Á´Â database ÀÌ¸ç ¸ðµç database ¿¡ ¿¬°áÀ» Çã¿ëÇÏ·Á¸é all À» ÀûÀ¸¸é µÈ´Ù. authentication method ´Â »ç¿ëÀÚ ÀÎÁõ¹æ½ÄÀ» ¼³Á¤ÇÑ´Ù. ¿¹ 1) local all trust : local ¿¡¼­ ¸ðµç µ¥ÀÌŸº£À̽º(all)¿¡ ´ëÇÑ ¿¬°áÀ» Çã¿ëÇϸç Á¢¼ÓÇÏ·Á´Â »ç¿ëÀÚµéÀº ¸ðµÎ ¹ÏÀ»¼ö ÀÖ´Â(trust) »ç¿ëÀÚ·Î ÀÎÁ¤ÇÏ¸ç º°´Ù¸¥ ÀÎÁõÀýÂ÷¸¦ °ÅÄ¡Áö ¾Ê°í ¹Ù·Î Á¢¼ÓÇÒ ¼ö ÀÖ´Ù. psqlÀ» ÅëÇÑ Á¢¼Ó : psql template1 ¿¹ 2) local template1 crypt : local ¿¡¼­ template1 µ¥ÀÌŸº£À̽º¿¡¸¸ Á¢¼ÓÀ» Çã¿ëÇϸç ÀÎÁõ ÀýÂ÷·Î crypt ¹æ½ÄÀ» °ÅÄ£´Ù. crypt´Â »ç¿ëÀÚ¿¡ ´ëÇÑ Æнº¿öµå¸¦ ¹¯°í ÀÌ Æнº¿öµå´Â ¾ÏȣȭµÇ¾î º¸³»¾îÁøÈÄ pg_shadow¶ó´Â ÆÄÀÏ¿¡ ÀÖ´Â Æнº¿öµå¿Í ºñ±³ÇÑ´Ù. ºñ±³µÈ Æнº¿öµå°¡ ¸Â¾Æ ¶³¾îÁö¸é Á¢¼ÓÀÌ Çã¿ëµÈ´Ù. psqlÀ» ÅëÇÑ Á¢¼Ó : psql -u template1 (-u ¿É¼ÇÀº À¯Àú¸í°ú Æнº¿öµå¸¦ ¹¯´Â´Ù) </verb></tscreen> <sect1>Internet Domain Socket ¼³Á¤<p> <tscreen><verb> ·¹ÄÚµå Çü½Ä host databse IP IP_mask auth method : jdbc ¿Í °°Àº Ä¿³Ø¼ÇÀ» ÅëÇØ Åë½ÅÀ» ÇÏ´Â client µéÀÌ ¿¬°áÀ» ÇÏ·ÁÇÒ ¶§ Çã¿ëÇϰųª ºÒÇ㸦 À§ÇØ ¼³Á¤ÇÑ´Ù. (Áï, ´Ù¸¥ È£½ºÆ®¿¡¼­ Á÷Á¢ Æ÷½ºÆ®±×·¹½ºÀÇ »ç¿ëÀÚ °èÁ¤ À¸·Î ¿¬°áÀ» ÇÏ·ÁÇÒ ¶§) host template1 210.110.144.161 255.255.255.255 crypt : 210.110.144.161 ÀÇ IP ¸¸ÀÌ crypt ¹æ½ÄÀ¸·Î template1 µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÀ» Çã¿ëÇÑ´Ù. host all 0.0.0.0 0.0.0.0 password : ¸ðµç µ¥ÀÌŸº£À̽º¿Í ¸ðµç IP ÁÖ¼ÒµéÀÌ password ¹æ½ÄÀ¸·Î Á¢¼ÓÀ» ÇÒ¼ö°¡ ÀÖ´Ù. </verb></tscreen> <sect1>Authentication method(ÀÎÁõ ¹æ¹ý)<p> <tscreen><verb> TRUST : º°´Ù¸¥ ÀÎÁõ ÀýÂ÷¾øÀÌ ¹Ù·Î Çã¿ëÇÑ´Ù. REJECT : ¹«Á¶°Ç Á¢¼ÓÀ» °ÅºÎÇÑ´Ù. CRYPT : À¯ÀúÀÇ Æнº¿öµå¸¦ ¹¯´Â´Ù. À̶§ Æнº¿öµå´Â ¾ÏȣȭµÇ¾î Æ÷½ºÆ®±×·¹½º¿¡°Ô º¸³»¾îÁø´Ù. PASSWORD : À¯ÀúÀÇ Æнº¿öµå¸¦ ¹¯´Â´Ù. À̶§ Æнº¿öµå´Â ¾ÏȣȭµÇÁö ¾ÊÀº ¹®ÀÚ ±×´ë·Î ¼­¹öÃøÀÎ Æ÷½ºÆ®±×·¹½º¿¡°Ô º¸³»¾îÁø´Ù. ´ÙÀ½ÀÇ ÀÎÁõ ¹æ¹ýÀº TCP/IP Domain ¿¡¸¸ ÇØ´çµÈ´Ù. krb4 : Kerberos V4 krb5 : Kerberos V5 ident : Ŭ¶óÀ̾ðÆ® »óÀÇ ident ¼­¹ö°¡ »ç¿ëµÇ¾îÁö¸ç $PGDATA/pg_ident.conf ¸¦ µû·Î ¼³Á¤ÇÏ¿©¾ß ÇÑ´Ù. </verb></tscreen> <p>¶ÇÇÑ, ³×Æ®¿öÅ© »óÀÇ Ä¿³Ø¼ÇÀ» ÇÏ·ÁÇÒ ¶§ ³í¸®ÀûÀÎ º¸¾È ÅͳÎÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù. ÀÌ´Â ssh º¸¾È ±â¹ýÀ» Àû¿ëÇÑ °ÍÀ¸·Î Ŭ¶óÀ̾ðÆ®¿Í Æ÷½ºÆ® ±×·¹½º ¼­¹ö »çÀÌÀÇ ³×Æ®¿öÅ© ÄÁ³Ø¼ÇÀ» ssh¸¦ ÀÌ¿ëÇÏ¿© ¾ÏÈ­È­ÇÒ ¼ö ÀÖ´Ù. ÀûÀýÇÑ Àû¿ëÀ¸·Î ¾ÈÀüÇÑ ³×Æ®¿öÅ© ÄÁ³Ø¼ÇÀ» ¸¸µé ¼ö ÀÖ´Ù. <tscreen><verb> Âü°í»çÀÌÆ®´Â ´ÙÀ½°ú °°´Ù. http://www.heimhardt.de/htdocs/ssh.html </verb></tscreen> <sect>¼³Á¤ Å×½ºÆ®<p> <sect1>Æ÷½ºÆ®±×·¹½º ½´ÆÛÀ¯Àú Æнº¿öµå <p>Å×½ºÆ®¸¦ À§ÇØ postgres ÀÇ ½´ÆÛ À¯Àú °èÁ¤ÀÇ Æнº¿öµå¸¦ ¸¸µé¾î¾ß ÇÑ´Ù. ÀÌ Æнº¿öµå´Â ´ÜÁö Æ÷½ºÆ®±×·¹½º¿¡ Á¢¼ÓÀ» À§ÇÑ °ÍÀ̸ç telnet ¿¡ ·Î±äÀ» À§ÇÑ Æнº¿öµå´Â ¾Æ´Ï´Ù. <p>¿©±â¼­ Æ÷½ºÆ®±×·¹½ºÀÇ ½´ÆÛÀ¯Àú °èÁ¤À» postgres ÀÌ°í Æнº¿öµå´Â nogadax¶ó°í °¡Á¤Çϸç ÀÌ¿¡ ´ëÇÑ ÀýÂ÷´Â ´ÙÀ½°ú °°´Ù. <tscreen><verb> ´Ü°è 1) [postgres@nogadax postgres]$ psql template1 template1=> alter user postgres with password "nogadax"; ... template1=>\q ´Ü°è 2) [postgres@nogadax postgres]$ vi $PGDATA/pg_hba.conf ........... À̺κп¡¼­ ¸¶Áö¸· ºÎºÐÀÇ ¶óÀÎÀ» ÁÖ¼®Ã³¸®ÇÑ ÈÄ "local all crypt" À» Ãß°¡ÇÑ´Ù. ±×·± ÈÄ ÀúÀåÇÏ°í ºüÁ® ³ª¿Â´Ù. ........... ´Ü°è 3) [postgres@nogadax postgres]$ psql -u template1 username : postgres passwd : nogadax template1=>create user testusr with password "testusr" creatdb; ........... template1=>select usename from pg_user; usename ---------- postgres testusr (2rows) template1=>\q ´Ü°è 4) [postgres@nogadax postgres]$ psql -u template1 username : testusr password : testusr template1=>\q [postgres@nogadax postgres]$ </verb></tscreen> <sect1>´Ù¾çÇÑ ¼³Á¤ ¿¹Á¦<p> <tscreen><verb> ¿¹ 1) ´ÙÀ½Àº °¡Á¤ ÀϹÝÀûÀÎ ¼³Á¤ÀÌ´Ù. local all trust host all 127.0.0.1 255.255.255.255 trust local ¸¦ ÅëÇØ ¸ðµç(all) µ¥ÀÌŸº£À̽º¿¡ ´ëÇÑ Á¢¼ÓÀ» Çã¿ëÇϸç host ÀÇ IP°¡ 127.0.0.1 ÀÎ Á¢¼ÓÀ» Çã¿ëÇÑ´Ù. ¿¹ 2) crypt ¼³Á¤ crypt ¿¡ ´ëÇÑ ¼³Á¤Àº ¹Ì¸® À¯Àú¸í°ú Æнº¿öµå°¡ ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ psql Á¢¼Ó½Ã -u ¿É¼ÇÀ» Àû¿ëÇÏ¿µ¾ß ÇÑ´Ù. local all crypt host all 210.110.144.161 255.255.255.255 crypt ¿¹ 3) reject ¼³Á¤ host all 210.110.144.161 255.255.255.255 reject 210.110.144.161 ÀÇ IP ¸¦ °¡Áø °÷À¸·ÎºÎÅÍÀÇ Á¢¼ÓÀ» Çã¿ëÇÏÁö ¾Ê´Â´Ù. Áï, °ÅºÎÇÑ´Ù(reject) ¿¹ 4) password ¼³Á¤ host all 210.110.144.161 255.255.255.255 password </verb></tscreen> <sect>JDBC CONNECTION Å×½ºÆ®<p> <p> 1. Ŭ¶óÀ̾ðÆ®´Â power linux 2 ¸¦ »ç¿ëÇÏ¿´°í ¼­¹ö·Î´Â accel ¸®´ª½º6.2 ¸¦ »ç¿ëÇÏ¿´´Ù. Æ÷½ºÆ®±×·¹½º´Â 7.0 beta3 À» »ç¿ëÇÏ¿´°í jdk1.2.2 ¸¦ »ç¿ëÇÏ¿´´Ù. <p> 2. Å×½ºÆ®¸¦ À§ÇØ Å¬¶óÀ̾ðÆ®¿¡ Æ÷½ºÆ®±×·¹½º JDBC µå¶óÀ̹ö¸¦ ¼³Ä¡ÇÏ¿©¾ß ÇÏ¸ç ¼³Ä¡½Ã ÁÖÀÇÇÒ Á¡ÀÌ ÀÖ´Ù. ¸¸¾à jdk1.1.x ¸¦ »ç¿ëÇÑ´Ù¸é Æ÷½ºÆ®±×·¹½º JDBC1 À» »ç¿ëÇÏ¿©¾ß Çϸç jdk1.2.x ¸¦ »ç¿ëÇÑ´Ù¸é Æ÷½ºÆ®±×·¹½º JDBC2 ¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. <p> 3. Ŭ¶óÀ̾ðÆ®¿¡ JDBC µå¶óÀ̹ö ¼³Ä¡ <p>¸ÕÀú Æ÷½ºÆ®±×·¹½º JDBC µå¶óÀ̹ö¸¦ Ŭ¶óÀ̾îÆ®ÃøÀÇ Àû´çÇÑ µð·ºÅ丮¿¡ º¹»çÇÑ´Ù. ¿©±â¼­´Â /usr/local/lib/jdbc_post/ µð·ºÅ丮¿¡ º¹»çÇÏ¿´´Ù. ±×·± ÈÄ CLASSPATH ¸¦ Àâ¾ÆÁØ´Ù. ´ÙÀ½Àº CLASSPATH ¼³Á¤ ¿¹ÀÌ´Ù. <tscreen><verb> CLASSPATH=/usr/local/lib/jdbc_post/postgresql.jar:. export CLASSPATH </verb></tscreen> <p>4. Æ÷½ºÆ®±×·¹½º ¼­¹öÀÇ pg_hba.conf ¸¦ ÀûÀýÈ÷ ¼öÁ¤ÇØÁÖ¾î¾ß ÇÑ´Ù. Å×½ºÆ®ÇÒ JDBC ¼Ò½º ¿¹Á¦¸¦ ¼öÇàÇÒ Å¬¶óÀ̾ðÆ®ÀÇ IP °¡ "210.110.144.161" À̶ó°í °¡Á¤ÇÏ°í Æ÷½ºÆ®±×·¹½º DB ¼­¹öÀÇ IP ÁÖ¼Ò´Â "210.110.144.162"¶ó°í °¡Á¤ÇÑ´Ù. Å×½ºÆ®ÀÇ ¼öÇà¿¡ ¾Õ¼­ DB ¼­¹öÃø¿¡ IP ÁÖ¼Ò°¡ "210.110.144.161"ÀΠŬ¶óÀ̾ðÆ®Ãø¿¡ ´ëÇÑ ÀÎÁõ ¼³Á¤À» ÇÏ¿©¾ß ÇÑ´Ù. ¼³Á¤Àº ´ÙÀ½°ú °°ÀÌ pg_hba.conf ¿¡ ´ÙÀ½ ¶óÀÎÀ» ÀûÀýÈ÷ Ãß°¡ÇÏ¿©¾ß ÇÑ´Ù. <tscreen><verb> host all 210.110.144.161 255.255.255.255 crypt </verb></tscreen> <p>5. Æ÷½ºÆ®±×·¹½º¿ëÀÇ ÀûÀýÇÑ ¿¹Á¦ ÇÁ·Î±×·¥À» º¹»çÇÑ ÈÄ ÄÄÆÄÀÏ ÇÑ´Ù. ¿©±â¼­´Â basic.java ¸¦ °¡Áö°í Å×½ºÆ® ÇÑ´Ù. Æ÷½ºÆ®±×·¹½º JDBC °ü·Ã ¿¹Á¦ ÇÁ·Î±×·¥Àº Æ÷½ºÆ®±×·¹½ºÀÇ ¼Ò½º µð·ºÅ丮ÀÇ /src/interfaces/jdbc/example µð·ºÅ丮¿¡ ÀÖ´Ù. <p>¶ÇÇÑ basic.java ¼Ò½ºÀÇ Á¦ÀÏ Ã¹ ¶óÀÎÀÇ "package example;"À» ÀûÀýÈ÷ ó¸®ÇÑ´Ù. (ÁÖ¼®Ã³¸®³ª »èÁ¦µî..) <p>ÄÄÆÄÀÏÀº ´ÙÀ½Ã³·³ ÇÑ´Ù. <tscreen><verb> javac basic.java </verb></tscreen> <p>½ÇÇàÀº ´ÙÀ½Ã³·³ ÇÑ´Ù. <p>java basic jdbc:postgresql://210.110.144.162/template1 postgres nogadax <p>À§ÀÇ IP ¾îµå·¹½º "210.110.144.162" ´Â Æ÷½ºÆ®±×·¹½º°¡ ÀÖ´Â ¼­¹öÀÇ IP ÀÌ°í "template1"Àº Á¢¼ÓÇÏ¿© Å×½ºÆ®ÇÏ·Á´Â µ¥ÀÌŸº£À̽º¸íÀÌ´Ù. "postgres"´Â Á¢¼ÓÀ» ÇÏ·ÁÇÏ´Â Æ÷½ºÆ®±×·¹½º ÀÇ DB »ç¿ëÀÚ¸íÀÌ°í "nogadax" ´Â Æнº¿öµåÀÌ´Ù. <p>IP ´Â ÀÚ½ÅÀÇ ¼­¹ö¿¡ ¸Â°Ô ÀûÀýÈ÷ º¯°æÇØÁØ´Ù. ¸¸¾à ÇϳªÀÇ ¼­¹ö»ó¿¡¼­ Å×½ºÆ®¸¦ ÇÏ·ÁÇÑ´Ù¸é IP´Â 127.0.0.1 À̸ç pg_hba.conf ÀÇ ¼³Á¤Àº ´ÙÀ½°ú °°´Ù. <tscreen><verb> host all 127.0.0.1 255.255.255.255 crypt </verb></tscreen> <sect>±âŸ<p> <p>Domain Socket ¿¡ ´ëÇÑ ³»¿ëÀº "Unix ÀÇ ³»ºÎ ±¸Á¶"(È«¸ª °úÇÐ ÃâÆÇ»ç,Á¶À¯±Ù ¿ª)ÀÇ "ÇÁ·Î¼¼½º°£ Åë½Å"ºÎºÐÀ» ÂüÁ¶ÇÏ¿´´Ù. <p>pg_hba.conf ´Â Æ÷½ºÆ®±×·¹½ºÀÇ Admin's Guide ÀÇ "SECURITY" ºÎºÐÀ» ÂüÁ¶ÇÏ¿´´Ù. <p>Æ÷½ºÆ®±×·¹½º JDBC µå¶óÀ̹ö °ü·Ã ³»¿ëÀº Æ÷½ºÆ®±×·¹½ºÀÇ Programmer's Guide ÀÇ "JDBC Interface" ºÎºÐÀ» ÂüÁ¶ÇÏ¿´´Ù. </article>