· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/JServ_PgSQL-KLDP

<!--post_jdbc.sgml By NoGaDa-X !!(/06/15/2000)-->
<!doctype linuxdoc system>
<article>
<title>postgreSQLÀÇ JDBC Ȱ¿ëÇϱâ 
<author>ÁÖÈ¿½Ä <htmlurl url="mailto:nogadax@kldp.org" name="nogadax@kldp.org">
<date>2000³â 6¿ù 15ÀÏ 
<abstract>ÀÌ ¹®¼­´Â "Apache-JServ ¿¡ postgreSQL ¿¬µ¿Çϱâ"¶ó´Â Á¦¸ñÀÇ ¹®¼­¸¦ ´ëÆø ¼öÁ¤, º¸¿ÏÇÑ 
°ÍÀÌ´Ù. ¶ÇÇÑ ¼­¹ö Ŭ¶óÀÌ¾ðÆ®¿¡¼­ JDBC¸¦ ¼³Á¤ÇÏ´Â »çÇ×µµ Ãß°¡ÇÏ¿´´Ù.

ÀÌ ¹®¼­´Â Æ÷½ºÆ®±×·¹½ºÀÇ JDBC¸¦ Ȱ¿ëÇÏ´Â ¹æ¹ýÀ» Å©°Ô µÎ°¡Áö·Î ³ª´©¾î ¼³¸íÇÑ´Ù. ù ¹ø
°´Â postgreSQLÀ» DB ¼­¹ö·Î Çϰí À©µµ¿ì(  Window 98 )¸¦ Ŭ¶óÀÌ¾ðÆ®·Î ÇÒ¶§ JDBCÀÇ 
¼³Á¤»çÇ׿¡ ´ëÇØ ¼³¸íÇÑ´Ù. µÎ ¹øÂ°´Â Jserv¸¦ Ãß°¡ÇÑ Apache¿¡ DB  ¼­¹ö·Î¼­ postgreSQL 
À» ¿¬µ¿Çϱâ À§ÇØ JDBCÀÇ ¼³Á¤ »çÇ׵ ´ëÇØ ¼³¸íÇÑ´Ù.</abstract>
<toc>
<sect>Áغñ »çÇ×
<p>¼³Á¤ ¹×   Å×½ºÆ®¿¡ ¾Õ¼­  ±âº»ÀûÀ¸·Î  ÁغñµÇ¾î¾ß  ÇÒ  »çÇ×ÀÌ ÀÖ´Ù.   ÀÌ¿¡ ´ëÇÑ  »çÇ×Àº  
<url url="http://www.kldp.org" name="http://www.kldp.org"> ¸¦ ÂüÁ¶Çϰųª ±âŸ ¹®¼­¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù. ´ÙÀ½Àº  ¹Ì¸® ÁغñµÇ¾î
¾ß ÇÒ »çÇ×ÀÌ´Ù. 
<itemize>       
<item>¾ÆÆÄÄ¡ 
<item>JServ 
<item>JDK1.1.x ÀÌ»ó 
<item>JSDK2.0 ÀÌ»ó 
<item>postgreSQL 
<item>Window 98 (Ŭ¶óÀ̾ðÆ®)
</itemize>
<p>ÀÌ¹Ì Å×½ºÆ®¸¦ ¸¶Ä£ ÇÊÀÚÀÇ È¯°æÀº ´ÙÀ½°ú °°´Ù. 
<itemize>
<item>¾×¼¿ ¸®´ª½º 6.1 
<item>¾ÆÆÄÄ¡ 1.3.9 
<item>JServ 1.0 
<item>JDK 1.2.2 
<item>JSDK 2.0 
<item>postgresql 6.5.3 ¹× postgresql 7.0.x
<item>Window 98 (Ŭ¶óÀ̾ðÆ®)
</itemize>
<p>±âŸ Âü°í¸¦ À§ÇÑ »çÀÌÆ®´Â ´ÙÀ½°ú °°´Ù.  
<itemize>
<item><url url="http://www.apache.kr.net"    name="http://apache.kr.net"> 
<item><url url="http://www.apache.org"       name="http://www.apache.org"> 
<item><url url="http://www.postgresql.org"   name="http://www.postgresql.org"> 
<item><url url="http://www.blackdown.org"    name="http://www.blackdown.org">
<item><url url="http://java.apache.org"      name="http://java.apache.org">
<item><url url="http://java.sun.com"         name="http://java.sun.com">
<item><url url="http://database.sarang.net"  name="http://database.sarang.net">
</itemize>
<p>±âŸ ¾à°£ÀÇ Æ÷½ºÆ®±×·¹½º ¹®¼­¿Í  Apache-JServ, Æ÷½ºÆ®±×·¹½º ¿¬µ¿ °ü·ÃÀÇ  ¼Ò½º ¿¹Á¦°¡  
ÇÊÀÚÀÇ È¨ÆäÀÌÁö¿¡ (<url url="http://user.chollian.net/~nogadax" name="http://user.chollian.net/~nogadax">) ÀÖÀ¸´Ï ÂüÁ¶Çϱ⠹ٶõ´Ù.  

<sect>Æ÷½ºÆ®±×·¹½º JDBC µå¶óÀ̹ö ¸¸µé±â 
<p>Æ÷½ºÆ®±×·¹½º´Â <bf>Type 4</bf>ÀÇ JDBC µå¶óÀ̹ö¸¦ Á¦°øÇÑ´Ù.  Type 4´Â ¼ø¼ö ÀÚ¹Ù·Î ÀÛ¼ºµÇ¾ú°í 
µ¥ÀÌÅͺ£À̽º ÀÚüÀÇ Åë½Å ÇÁ·ÎÅäÄÝ·Î Åë½ÅÇÑ´Ù. À̴ Ŭ¶óÀ̾ðÆ®ÃøÀÌ JDBC¸¦ ÅëÇØ DBMS 
¼­¹ö¿ÍÀÇ Á÷Á¢ÀûÀÎ Åë½ÅÀÌ °¡´ÉÇÔÀ» ÀǹÌÇÑ´Ù. ³×Æ®¿öÅ©»ó¿¡¼­ JDBC µå¶óÀ̹ö¸¦ ÅëÇØ °£Æí
ÇÏ°Ô Æ÷½ºÆ®±×·¹½º DB ¼­¹ö¿Í ¿¬°áÇÒ ¼ö ÀÖÀ¸¸ç À̸¦ ÀÀ¿ëÇÏ·Á´Â °³¹ßÀÚ´Â DB  ÀÇ ±â´É¿¡
¸¸ ÁýÁßÇϸç ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù. 

<p>¶ÇÇÑ Æ÷½ºÆ®±×·¹½º JDBC µå¶óÀ̹ö´Â Ç÷§Æû¿¡  ºñÁ¾¼ÓÀûÀ̹ǷΠÇѹø ÄÄÆÄÀÏµÈ µå¶óÀ̹ö´Â 
¾î¶² Ç÷§Æû¿¡¼­µµ »ç¿ë °¡´ÉÇÏ´Ù. ¿¹¸¦ µé¾î,  ÄÄÆÄÀÏ µÇ¾î »ý¼ºµÈ Æ÷½ºÆ®±×·¹½º JDBC µå
¶óÀ̹ö´Â À©µµ¿ì³ª ¸®´ª½º¿¡¼­ ¾î¶°ÇÑ ¼öÁ¤¾øÀÌ ¹Ù·Î »ç¿ë °¡´ÉÇÏ´Ù.

<sect1>JDBC ´Ù¿î¹Þ±â 

<p>Æ÷½ºÆ®±×·¹½º¸¦ Á÷Á¢ ¼³Ä¡ÇÏÁö ¾Ê¾Æ Æ÷½ºÆ®±×·¹½ºÀÇ ¼Ò½º°¡ ¾øÀ» °æ¿ì Æ÷½ºÆ®±×·¹½º »çÀÌÆ®
(<url url="http://www.postgresql.org" name="http://www.postgresql.org">) ¿¡¼­ RPM ÇüÅÂÀÇ JDBC µå¶óÀ̹ö¸¦ ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù. ±×¿Ü¿¡ 
<url url="http://www.retep.org.uk" name="http://www.retep.org.uk"> ¿¡¼­ ´Ù¿î ¹ÞÀ» ¼ö ÀÖ´Ù. 

<p>´Ù¿î¹ÞÀ» ¶§ ÁÖÀÇÇÒ Á¡ÀÌ Àִµ¥ ¸¸¾à "JDK1.1.x" ¸¦ °¡Áö°í ÀÖ´Ù¸é "JDBC  1" µå¶óÀ̹ö¸¦ 
´Ù¿î¹Þ¾Æ¾ß Çϰí "JDK1.2" ÀÌ»óÀ» °¡Áö°í ÀÖ´Ù¸é "JDBC 2" µå¶óÀ̹ö¸¦ ´Ù¿î¹ÞÀ¸¸é µÈ´Ù. 

<sect1>JDBC ¸¸µé±â 

<p>JDBC µå¶óÀ̹ö°¡ ¾ø´Ù¸é À̸¦ ¸¸µé¾î¾ß ÇÑ´Ù. ¸¸¾à, Æ÷½ºÆ®±×·¹½ºÀÇ ¼Ò½º¸¦ ´Ù¿î¹Þ¾Æ Á÷Á¢ 
¼³Ä¡¸¦ ÇÑ °æ¿ìÀÌ¸é Æ÷½ºÆ®±×·¹½º ¼Ò½º µð·ºÅ丮³»ÀÇ interfaces µð·ºÅ丮¿¡ JDBC µå¶óÀ̹ö 
¼Ò½º°¡ À־ ÄÄÆÄÀÏÀ» ÇÏ¸é µÈ´Ù. 

<p>JDBC µå¶óÀ̹öÀÇ ÄÄÆÄÀϽà "JDK1.1.x" ÇÏ¿¡¼­ JDBC µå¶óÀ̹ö¸¦ ¸¸µé¸é "JDBC 1" µå¶óÀÌ
¹öÀÌ´Ù. JDK1.2 ¹öÁ¯¿¡¼­ ¸¸µé¾îÁø JDBC µå¶óÀ̹ö´Â "JDBC 2" µå¶óÀ̹öÀÌ´Ù. 

<p>ÀÌ ¹®¼­¿¡¼­´Â Æ÷½ºÆ®±×·¹½ºÀÇ ¼Ò½º µð·ºÅ丮´Â  "/usr/local/src/pgsql_¹öÁ¯" ÀÌ¶ó °¡Á¤Çϰí 
Æ÷½ºÆ®±×·¹½º°¡ ÄÄÆÄÀÏµÇ¾î ¼³Ä¡µÉ µð·ºÅ丮¸¦ "/usr/local/pgsql" À̶ó°í °¡Á¤ÇÑ´Ù. ±âŸ, Æ÷
½ºÆ®±×·¹½º "6.5.x" ¹öÀü´ëÀÇ ÄÄÆÄÀÏ ¹æ¹ý°ú Æ÷½ºÆ®±×·¹½º "7.0.x" ¹öÀü´ëÀÇ JDBC  µå¶óÀ̹ö
ÀÇ ÄÄÆÄÀÏ ¹æ¹ýÀÌ ´Ù¸£¹Ç·Î ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. ÀÌÁ¦ JDBC µå¶óÀ̹ö¸¦ ¸¸µé¾îº¸ÀÚ. 

<sect2>postgreSQL 6.5.x µå¶óÀ̹ö ¸¸µé±â<p> 

<p>postgreSQL 6.5.x ÀÇ °æ¿ì´Â ´ÙÀ½°ú °°´Ù. 

<p>/usr/local/src/pgsql6.5.3/src/interfaces/jdbc]$<bf> make</bf>

<p>´ÜÁö À§ÀÇ µð·ºÅ丮·Î °¡¼­ "make"¸¸ ÇØÁÖ¸é µÈ´Ù. "make" ¿Ï·á  ÈÄ¿¡ ÄÄÆÄÀÏ µÈ µå¶óÀ̹ö
¸¦ È®ÀÎÇØ º¸ÀÚ. µå¶óÀ̹öÀÇ À̸§Àº "postgresql.jar" ÀÌ´Ù. ÀÌÁ¦´Â "/usr/local/pgsql" ¿¡ jdbc 
¶ó´Â µð·ºÅ丮¸¦ ¸¸µé°í "postgresql.jar" ¸¦ º¹»çÇÏÀÚ. JDBC µå¶óÀ̹ö¸¦ ÀúÀåÇÒ µð·ºÅ丮´Â 
ÀÚ½ÅÀÌ ¿øÇÏ´Â ´ë·Î ¹Ù²Ù¾îµµ ÁÁ´Ù. 

<p>/usr/local/pgsql]$ mkdir  jdbc
<p>/usr/local/pgsql]$ cp  ../src/pgsql6.5.3/src/interfaces/postgresql.jar  ./jdbc/

<sect2>postgreSQL 7.0.x µå¶óÀ̹ö ¸¸µé±â<p> 

<p>"postgreSQL 7.0.x" ÀÇ °æ¿ì´Â "6.5.x" ¿Í´Â Á»  ´Ù¸£´Ù. ¸¸¾à, "6.5.x" ó·³ "make" ¸¸ ÀÔ·Â
ÇÏ¸é ¸Þ½ÃÁö°¡ ³ª¿À´Âµ¥  ±× ³»¿ëÀº  "JDK1.1.x" ÀÌ¸é   "make  jdbc1   jar"À» ÀÔ·ÂÇϰí 
"JDK1.2.x" À̸é "make  jdbc2  jar"¸¦ ÀÔ·ÂÇ϶ó´Â  ¸Þ½ÃÁö°¡ ³ª¿Â´Ù. ¿©±â¼­´Â "JDK1.2.x" 
·Î °¡Á¤Çϰí ÄÄÆÄÀÏ ÇØº¸ÀÚ.

<p> /usr/local/src/pgsql7.0.2/src/interfaces/jdbc]$<bf> make    jdbc2    jar</bf> 

<p>ÀÌÁ¦ ÄÄÆÄÀÏ µÈ µå¶óÀ̹ö¸¦ È®ÀÎÇØ  º¸ÀÚ. µå¶óÀ̹öÀÇ À̸§Àº "postgresql.jar" ÀÌ´Ù.  »ý¼ºµÈ 
JDBC µå¶óÀ̹ö´Â "/usr/local/pgsql" ¿¡ jdbc ¶ó´Â µð·ºÅ丮¸¦ ¸¸µé°í JDBC µå¶óÀ̹ö¸¦ º¹
»çÇØ ³õÀ¸¸é µÈ´Ù. 

<p> /usr/local/pgsql]$ mkdir  jdbc
<p> /usr/local/pgsql]$ cp  ../src/pgsql7.0.2/src/interfaces/postgresql.jar  ./jdbc/

<sect1>JDBC µå¶óÀ̹ö Å×½ºÆ®Ç챉  

<p>¸®´ª½º¿¡¼­ ÄÄÆÄÀÏµÇ¾î »ý¼ºµÈ  JDBC µå¶óÀ̹ö¸¦ Å×½ºÆ®ÇÏ·Á°í  ÇÏ´Â °æ¿ì "JDK"¸¦  À§ÇØ 
CLASSPATH ¸¦ ¼³Á¤ÇÏ¿©¾ß ÇÑ´Ù. CLASSPATHÀÇ ¼³Á¤ ¿¹´Â ´ÙÀ½°ú °°´Ù. 

<p><bf>export   CLASSPATH="$CLASSPATH:/usr/local/pgsql/jdbc/postgresql.jar:."</bf>

<p>À§ÀÇ export ¸í·ÉÀ» ÀÏ¹Ý ½©»ó¿¡¼­  ½ÇÇàÇÏ¿©µµ µÇ³ª ÀÌ´Â ÀÏȸ¼ºÀ̹ǷΠ¸Å¹ø  ºÎÆÃ ¶§¸¶´Ù 
export ¸í·ÉÀ» ½ÇÇàÇØÁÖ¾î¾ß ÇÑ´Ù. ÀÏȸ¼ºÀÌ ¾Æ´Ñ ¿µ±¸ÀûÀ¸·Î ¼³Á¤Çϱâ À§ÇØ ¸®´ª½ºÀÇ ºÎÆÃ
½Ã ·Î±ä °ü·Ã ¼³Á¤ ÆÄÀÏÀÎ "<bf>/etc/profile</bf>" À̳ª "/root/.bash_profile" µî¿¡ À§ÀÇ CLASSPATH 
¼³Á¤ ¿¹¸¦ Ãß°¡ÇÏ¸é µÈ´Ù. 

<p>¼³Á¤ÀÌ ³¡³ª¸é ºÎÆÃ  ÈÄ ¼³Á¤  »çÇ× ¹×  JDBC µå¶óÀ̹öÀÇ È®ÀÎÀ»  À§ÇØ Å×½ºÆ®¸¦  ÇØº¸ÀÚ. 
JDBC µå¶óÀ̹öÀÇ Å×½ºÆ®¸¦ À§ÇØ "<bf>/usr/local/src/pgsql653/src/interfaces/jdbc/example</bf>" µð·º
Å丮ÀÇ ¿¹Á¦ ¼Ò½º¸¦ ÄÄÆÄÀÏÇØº»´Ù. ´ÙÀ½Àº Å×½ºÆ®¸¦ À§ÇØ example µð·ºÅ丮ÀÇ  basic.java¸¦ 
ÄÄÆÄÀÏÇÏ´Â ¿¹ÀÌ´Ù.

<p>/usr/local/src/pgsql653/src/interfaces/jdbc/example]$ javac  basic.java

<sect>¼­¹ö Ŭ¶óÀÌ¾ðÆ® (À©µµ¿ì) ¼³Á¤ 

<p>¸®´ª½º¿¡ Æ÷½ºÆ®±×·¹½º¸¦ ¼³Ä¡ÇÑ ÈÄ Æ÷½ºÆ®±×·¹½º¸¦ DB¼­¹ö·Î Çϰí Ŭ¶óÀ̾ðÆ®ÃøÀÎ À©µµ¿ì
¿¡¼­ JDBC¸¦ ÅëÇØ  Æ÷½ºÆ®±×·¹½º¸¦ ÀÌ¿ëÇÏ·Á ÇÑ´Ù°í  °¡Á¤ÇÏÀÚ. ±âŸ À©µµ¿ìÀÇ  IP ÁÖ¼Ò´Â 
210.110.144.169 ÀÌ¶ó °¡Á¤ÇÑ´Ù. 

<p><bf>JDBC µå¶óÀ̹öÀÇ ¼³Á¤ ¼ø¼­´Â ´ÙÀ½°ú °°´Ù.</bf>

<enum>
<item><p>Æ÷½ºÆ®±×·¹½º JDBC µå¶óÀ̹ö¸¦ À©µµ¿ìÀÇ Àû´çÇÑ µð·ºÅ丮¿¡ º¹»çÇÑ´Ù. 

<item><p>À©µµ¿ìÀÇ AUTOEXEC.BAT ÆÄÀÏ¿¡ JDBC µå¶óÀ̹ö °æ·Î¸¦ CLASSPATH¿¡ µî·ÏÇÑ´Ù. 
<p>¾Æ·¡´Â AUTOEXEC.BAT ÆÄÀÏ¿¡¼­ÀÇ ¼³Á¤¿¹ÀÌ´Ù.
<p><bf>set  classpath=.;c:\postgres\jdbc_drv\postgresql.jar</bf><p>
<item><p>À©µµ¿ì¸¦ ¸®ºÎÆÃÇÑ´Ù.<p>
<item><p>À©µµ¿ì¿¡¼­ DB¼­¹ö·ÎÀÇ ¿øÇÒÇÑ Á¢±ÙÀ» Çã¿ëÇ챉  À§ÇØ ¸®´ª½º¿¡ ¼³Ä¡µÈ Æ÷½ºÆ®±×·¹½ºÀÇ 
"pg_hba.conf" ÆÄÀÏÀ» ¼öÁ¤ÇÑ´Ù. 
<p>¸¸¾à    Æ÷½ºÆ®±×·¹½ºÀÇ    °æ·Î°¡    "/usr/local/pgsql"    ÀÌ¸é    pg_hba.conf    ÆÄÀÏÀº 
"<bf>/usr/local/pgsql/data</bf>" µð·ºÅ丮¿¡ ÀÖ´Ù. 
<p>¾Æ·¡´Â ¼³Á¤ ¿¹·Î¼­ Àڽſ¡ ȯ°æ¿¡ ¸Â°Ô ¼öÁ¤ÇÑ ´ÙÀ½ pg_hba.conf ÆÄÀÏÀÇ ¸¶Áö¸· ¶óÀο¡ Ãß
°¡ÇÏ¸é µÈ´Ù.  
<p><bf>host   all   210.110.144.169   255.255.255.255   trust</bf> 
</enum>

<p>À§ÀÇ ¿¹¿¡ ´ëÇÑ ¼³¸íÀº ´ÙÀ½°ú °°´Ù. 
 
<p><bf>host</bf> ´Â ¿¹¾à¾î·Î¼­ Internet Domain ¹æ½ÄÀ» ÀǹÌÇÑ´Ù. <bf>all</bf>  Àº ¸ðµç µ¥ÀÌÅͺ£À̽º¸¦ ÀǹÌÇÏ
¸ç ¸¸¾à ƯÁ¤ DB·Î ¼³Á¤ÇϰíÀÚ ÇÑ´Ù¸é DB À̸§À»  ÀûÀ¸¸é µÈ´Ù. ¿¹¸¦ µé¾î Á¢±ÙÇÏ·Á´Â µ¥
ÀÌÅͺ£À̽º¸íÀÌ "nogadax"   À̸é À§ÀÇ   ¿¹¿¡¼­ "all"   ´ë½Å "nogadax"¸¦   ÀûÀ¸¸é µÈ´Ù. 
<bf>210.110.144.169</bf>´Â Æ÷½ºÆ®±×·¹½º¿¡ Á¢±ÙÇÏ·Á´Â Ŭ¶óÀ̾ðÆ®ÀÇ  IPÁּҷμ­ ¿©±â¼­´Â À©µµ¿ìÀÇ 
IP ÁÖ¼ÒÀÌ´Ù. <bf>255.255.255.255</bf> ´Â Net Mask ÀÌ´Ù. <bf>trust</bf> ´Â  Ŭ¶óÀ̾ðÆ®ÀÇ Á¢±Ù¿¡ ´ëÇÑ ÀÎÁõ 
¸Þ¼Òµå·Î¼­ trust´Â º°´Ù¸¥ ÀÎÁõ ÀýÂ÷¾øÀÌ access °¡ °¡´ÉÇÏ´Ù. ¸¸¾à <bf>crypt</bf> ÀÌ¸é  ID  ¿Í ÆÐ
½º¿öµå°¡ ÇÊ¿äÇÏ´Ù. ÀÌ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº  "pg_hba.conf" ¼³¸íÀ» ÂüÁ¶¹Ù¶ó¸ç ÀÌ¿¡ ´ëÇÑ 
°ÍÀº <url url="http://www.kldp.org" name="http://www.kldp.org"> ¿¡ ÀÖÀ¸´Ï ÂüÁ¶Çϱ⠹ٶõ´Ù.  

<p><bf>Å×½ºÆ®</bf>
<p>Å×½ºÆ®¸¦ À§ÇØ Æ÷½ºÆ®±×·¹½ºÀÇ JDBC ¿¹Á¦ ÇÁ·Î±×·¥ ¼Ò½º¸¦ À©µµ¿ì¿¡ Àû´çÈ÷ º¹»çÇÑ ÈÄ ÄÄÆÄÀÏ ÇÑ´Ù. 
ÄÄÆÄÀÏ ¿¹´Â ´ÙÀ½°ú °°´Ù. 
<P> javac  Basic.java

<sect> Apache-Jserv¿¡ ¿¬µ¿Ç챉   

<P>ÀÌ ºÎºÐÀ» ½ÃÀÛÇϱâ Àü¿¡ JDK¸¦  À§ÇÑ <bf>CLASSPATH</bf>°¡ ¸ÕÀú ¼³Á¤µÇ¾î  ÀÖ¾î¾ß ÇÑ´Ù. À̸¦ 
À§ÇØ ¾Õ¿¡¼­ ¼³¸íÇÑ  "JDBC µå¶óÀ̹ö Å×½ºÆ®Çϱâ"¸¦ ÂüÁ¶Çϱâ¹Ù¶õ´Ù. 

<P>Apache-JServ °¡ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ´Ù¸é JServ ȯ°æÆÄÀÏÀÎ "<bf>jserv.properties</bf>" °¡  ÀÖÀ» °ÍÀÌ
´Ù. ÀÌ È­Àϳ»¿¡ postgresql.jarÀÇ °æ·Î¸¦ Æ÷ÇÔ½ÃÄÑÁÖ¸é  µÈ´Ù. ÇÊÀÚÀÇ Apache-JServÀÇ È¯°æ 
ÆÄÀÏ ±¸¼ºÀº ´ÙÀ½°ú °°´Ù. 

<tscreen><verb>
 /usr/local/apache/conf]$ ls
    access.conf  
    httpd.conf    
    srm.conf   
    jserv.conf   
    jserv.properties 
    servlets.properties 
</verb></tscreen>

<p>Æ÷½ºÆ®±×·¹½ºÀÇ JDBC µå¶óÀ̹ö°¡ "jserv.proeprties" ¿¡ µî·ÏÀÌ µÇ¸é Apache-JServ ¸¦ À§ÇÑ 
ȯ°æ ¼³Á¤Àº ³¡ÀÌ´Ù. "jserv.properties" ¿¡ ´ÙÀ½Ã³·³ Ãß°¡ÇØÁÖ¸é µÈ´Ù. 

<p> <bf>wrapper.classpath=/usr/local/pgsql/jdbc/postgresql.jar</bf>

<p>À§Ã³·³ Ãß°¡¸¦ ÇÏ¿´´Ù¸é Apache-JServ ÀÇ È¯°æ¼³Á¤ ºÎºÐÀº ³¡³µ´Ù. 

<p>ÀÌÁ¦´Â "¼­¹ö Ŭ¶óÀÌ¾ðÆ® (À©µµ¿ì) ¼³Á¤" ºÎºÐ¿¡¼­ ¾ð±ÞµÇ¾ú´ø "pg_hba.conf" ÆÄÀÏÀ» ¼öÁ¤ÇÏ
¸é µÈ´Ù. ¿©±â¼­´Â Apache °¡ ¼³Ä¡µÈ °÷ÀÇ IP ÁÖ¼Ò¸¦  210.110.144.168 ¶ó°í °¡Á¤ÇÏÀÚ. ¶ÇÇÑ, 
Æ÷½ºÆ®±×·¹½ºÀÇ °æ·Î°¡ "/usr/local/pgsql" ÀÌ¸é  pg_hba.conf ÆÄÀÏÀº "/usr/local/pgsql/data" 
µð·ºÅ丮¿¡ ÀÖ´Ù. 

<p>¾Æ·¡´Â ¼³Á¤ ¿¹·Î¼­ Àڽſ¡ ȯ°æ¿¡ ¸Â°Ô ¼öÁ¤ÇÑ ´ÙÀ½ pg_hba.conf ÆÄÀÏÀÇ ¸¶Áö¸· ¶óÀο¡ Ãß
°¡ÇÏ¸é µÈ´Ù.  
<tscreen><verb>
host  all  210.110.144.168  255.255.255.255  trust 
</verb></tscreen>
<p>À§ÀÇ ¿¹¿¡ ´ëÇÑ ¼³¸íÀº ´ÙÀ½°ú °°´Ù. 
 
<p><bf>host</bf> ´Â ¿¹¾à¾î·Î¼­ Internet Domain ¹æ½ÄÀ» ÀǹÌÇÑ´Ù.  Internet Domain Àº ÇÁ·Î¼¼½ºÀÇ Åë
½ÅÀÌ ³×Æ®¿öÅ©°£ÀÇ ÇÁ·ÎÅäÄÝÀ» ÅëÇØ ÀÌ·ç¾îÁö°Ô ÇÏ´Â ¸ÞÄ«´ÏÁòÀ¸·Î¼­ ÇÁ¸£ÅäÄÝÀ» ÅëÇØ  DB 
¼­¹ö¿¡ Á¢±ÙÇÏ·Á´Â Host ÀÇ Á¢±ÙÀ» Á¦¾îÇÑ´Ù. <bf>all</bf> Àº ¸ðµç µ¥ÀÌÅͺ£À̽º¸¦ ÀǹÌÇÏ¸ç ¸¸¾à Ư
Á¤ DB·Î ¼³Á¤ÇϰíÀÚ ÇÑ´Ù¸é DB À̸§À» ÀûÀ¸¸é  µÈ´Ù. ¿¹¸¦ µé¾î Á¢±ÙÇÏ·Á´Â µ¥ÀÌÅͺ£À̽º
¸íÀÌ "nogadax" À̸é À§ÀÇ  ¿¹¿¡¼­ "all" ´ë½Å "nogadax"¸¦  ÀûÀ¸¸é µÈ´Ù. "<bf>210.110.144.168</bf>" 
´Â Æ÷½ºÆ®±×·¹½º¿¡ Á¢±ÙÇÏ·Á´Â Ŭ¶óÀ̾ðÆ®ÀÇ IPÁÖ¼ÒÀÌ´Ù. ¿©±â¼­´Â Apache-Jserv°¡ ¼³Ä¡µÈ 
°÷ÀÇ IP ÁÖ¼ÒÀÌ´Ù. <bf>255.255.255.255</bf> ´Â Net Mask ÀÌ´Ù. <bf>trust</bf> ´Â  Ŭ¶óÀ̾ðÆ®ÀÇ Á¢±Ù¿¡ ´ëÇÑ 
ÀÎÁõ ¸Þ¼Òµå·Î¼­ trust´Â º°´Ù¸¥ ÀÎÁõ ÀýÂ÷¾øÀÌ  access °¡ °¡´ÉÇÏ´Ù. ¸¸¾à crypt  ÀÌ¸é  ID  
¿Í ÆÐ½º¿öµå°¡ ÇÊ¿äÇÏ¸ç ´õ¿í ÀÚ¼¼ÇÑ  ³»¿ëÀº pg_hba.conf ÆÄÀÏÀ» ¼³¸íÇÑ ¹®¼­¸¦  ÂüÁ¶Çϱâ 
¹Ù¶õ´Ù.  

<sect> Æ÷½ºÆ®±×·¹½º JDBC ±âÃÊ 

<sect1>JDBC¸¦ À§ÇÑ Áغñ»çÇ× 

<p>JDBC µå¶óÀ̹ö·Î Æ÷½ºÆ®±×·¹½º¸¦ ÀÀ¿ëÇÑ ÇÁ·Î±×·¥À» Å×½ºÆ®Çϱâ Àü¿¡ Æ÷½ºÆ®±×·¹½º µð¸ó
ÀÌ È°¼ºÈ­ µÇ¾î ÀÖ¾î¾ß ÇÏ¸ç µ¥¸óÀº ´ÙÀ½ÀÇ ¿É¼Ç(i)¿¡ ÀÇÇØ ±âµ¿µÇ¾îÁ®¾ß ÇÑ´Ù. 

<p><bf>postmaster   -i &</bf>

<p>À̰ÍÀº ³×Æ®¿öÅ©¸¦ ÅëÇØ ¿¬°áÇÏ·Á´Â JDBC¸¦ À§ÇØ Çʼö »çÇ×ÀÌ´Ù. ¶ÇÇÑ pg_hba.conf ÆÄÀÏÀ» 
È®ÀÎÇϵµ·Ï ÇÑ´Ù. ¸¸¾à, ÀϹÝÀûÀÎ IPÁÖ¼Ò°¡ ¾Æ´Ñ <bf>localhost(127.0.0.1)</bf>À» »ç¿ëÇÏ·ÁÇÑ´Ù¸é ÀÌ ÁÖ
¼Ò(127.0.0.1)¿¡ ´ëÇÏ¿© pg_hba.conf ¿¡ ¼³Á¤ÇÏ¿©¾ß ÇÑ´Ù. ´ÙÀ½Àº localhost ¼³Á¤ ¿¹ÀÌ´Ù. 
<tscreen><verb>
host  all  127.0.0.1  255.255.255.255  trust
</verb></tscreen>

<sect1>µå¶óÀ̹ö ·Îµù 

<p>JDBC µå¶óÀ̹öÀÇ ·Îµù ¹æ¹ýÀº <bf>Class.forName()</bf> ¸¦ »ç¿ëÇÏ¸é  µÈ´Ù. ÁÖÀÇÇÒ Á¡ÀÌ Àִµ¥ Æ÷
½ºÆ®±×·¹½º 6.5.x ¹öÀü°ú 7.0.x  ¹öÀü´ë¿¡¼­ ¾à°£ÀÇ Â÷À̰¡ »ý°å´Ù. ÇÊÀÚ°¡  Å×½ºÆ®¸¦ ¸ñÀûÀ¸
·Î ÀÌÀü¿¡ ¸¸µé¾î ³õ¾Ò´ø ÇÁ·Î±×·¥À¸·Î 7.0.x ¹öÀü´ëÀÇ JDBC µå¶óÀ̹ö¸¦ Å×½ºÆ®¸¦ ÇØº» °á
°ú ¿¡·¯°¡ ¹ß»ýÇÏ¿´´Ù. ¿¡·¯¸¦ ÇØ°áÇϱâ À§ÇØ 7.0.x ¹öÀüÀÇ ¹®¼­¸¦ ã¾Æº» °á°ú ¾Æ¹«·± º¯µ¿
ÀÌ ¾ø¾úÁö¸¸ example µð·ºÅ丮ÀÇ ¿¹Á¦ ¼Ò½º¸¦ º¸°í ¿øÀÎÀ» ¹ß°ßÇÏ¿´´Ù. 

<p>Æ÷½ºÆ®±×·¹½º 6.5.x ¹öÀüÀÇ JDBC µå¶óÀ̹ö´Â Class.forName("<bf>postgresql.jar</bf>");  ÇÏ¸é µÇÁö¸¸ 
7.0.x ¹öÀüÀÇ JDBC µå¶óÀ̹ö´Â Class.forName("<bf>org.postgresql.jar</bf>");¸¦ ÇÏ¿©¾ß  ÇÑ´Ù. ÀÌ·¯ÇÑ 
Â÷À̸¦ ÁÖÀÇÇϱ⠹ٶõ´Ù. ´ÙÀ½Àº Æ÷½ºÆ®±×·¹½º  ¹öÀü´ëº°·Î Class.forName()¸¦ »ç¿ëÇÑ ¿¹ÀÌ
´Ù. ±âŸ ¿¹¿Ü 󸮸¦ À§ÇØ <bf>ClassNotFoundException</bf>À» »ç¿ëÇÑ´Ù. 

<sect2>postgresql 6.5.X ¿¡¼­ÀÇ Class.forName() ÀÇ ¿¹<p>

<tscreen><verb>
public void  test()
throws ClassNotFoundException, FileNotFoundException,
       IOException, SQLException
{ 
   String url = "jdbc:postgresql:nogadax";  
   String usr = "postgres";  
   String pwd = "";

   Class.forName("postgresql.Driver");

   Connection db = DriverManager.getConnection(url, usr, pwd);
   ........
   ........
}
</verb></tscreen>

<sect2>postgresql 7.0.X ¿¡¼­ÀÇ Class.forName() ÀÇ ¿¹<p>

<tscreen><verb>
public void  test()
throws ClassNotFoundException, FileNotFoundException,
       IOException, SQLException
{ 
   String url = "jdbc:postgresql:nogadax";  
   String usr = "postgres";  
   String pwd = "";

   Class.forName("org.postgresql.Driver");

   Connection db = DriverManager.getConnection(url, usr, pwd);
   ........
   ........
}

</verb></tscreen>

<sect1>Connection to the Database 

<p>Æ÷½ºÆ®±×·¹½ºÀÇ µ¥ÀÌÅͺ£À̽º·ÎÀÇ ¿¬°áÀ» À§ÇÑ ¿¹´Â ´ÙÀ½°ú °°´Ù. 

<tscreen><verb>
 jdbc:postgresql:database_name 
 jdbc:postgresql://host/database_name 
 jdbc:postgresql://host:port/database_name 

</verb></tscreen>

<descrip>
<tag>host</tag>Æ÷½ºÆ®±×·¹½º DB ¼­¹öÀÇ È£½ºÆ® ³×ÀÓÀÌ´Ù. IP¸¦ Á־ µÈ´Ù.
 ¸¸¾à ÀÌ ºÎºÐÀÌ  »ý·«µÇ¸é µðÆúÆ®´Â localhost(127.0.0.1) ÀÌ´Ù.<p> 
<tag>port</tag>Æ÷½ºÆ®±×·¹½ºÀÇ µðÆúÆ® Æ÷Æ®´Â 5432 ÀÌ¸ç »ý·« °¡´ÉÇÏ´Ù.<p> 
<tag>database_name</tag>µ¥ÀÌŸº£À̽º¸í<p> 
</descrip> 

<sect2>±âŸ »çÇ×<p> 

<p>ÄÁ³ØÆ®Çϱâ À§ÇØ JDBC ·ÎºÎÅÍ Connection ÀνºÅϽº¸¦ ¾ò¾î¾ß ÇÑ´Ù. À̸¦ À§ÇØ 
DriverManager.getConnection() ¸Þ¼Òµå¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. 

<p>Connection  db = DriverManager.getConnection(url,user,pwd); 


<p>±âŸ Æ÷½ºÆ®±×·¹½º´Â ÇϳªÀÇ ·¹ÄÚµåÀÇ Å©±â°¡<bf> 8K ¹ÙÀÌÆ®</bf>·Î Á¦ÇѵǾî ÀÖ´Ù. ¸¸¾à ÇϳªÀÇ ·¹
Äڵ尡 8K ¹ÙÀÌÆ®¸¦ ³Ñ¾î¾ß ÇÑ´Ù¸é "<bf>Large Object</bf>" ¶ó´Â ¹æ¹ýÀ» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ÀÌ¿¡  ´ë
ÇØ¼­´Â Æ÷½ºÆ®±×·¹½º ÇÁ·Î±×·¡¸Ó °¡À̵åÀÇ JDBC ºÎºÐÀ»  ÂüÁ¶Çϱ⠹ٶõ´Ù. ¶ÇÇÑ, JDBC ¸¦ 
À§ÇÑ ³ª¸ÓÁö ÀÚ¼¼ÇÑ ºÎºÐÀº ÀÏ¹Ý JDBC ¹®¼­µéÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù. 

<sect1>Jserv Å×½ºÆ®¿ë ¼Ò½º

<p>´ÙÀ½Àº Apache-Jserv ¿Í postgreSQLÀÌ ¿¬µ¿µÇ¾úÀ» ¶§ Å×½ºÆ®¸¦ À§ÇÑ ¼Ò½ºÀÌ´Ù. ´ÙÀ½ÀÇ ¼Ò½º´Â Æ÷½ºÆ®±×·¹½ºÀÇ
¿¹Á¦ ¼Ò½º·Î¼­ ´ÜÁö servlet ·Î ¹Ù²Ù¾î web »ó¿¡¼­ ½ÇÇàÀÌ µÇ°Ô²û ÇØÁØ °ÍÀÌ´Ù. 

<p>´ÙÀ½ ¿¹Á¦¸¦ ÄÄÆÄÀÏÇÏ°í ½ÇÇàÇϱ⿡  ¾Õ¼­ Æ÷½ºÆ®±×·¹½º¿¡ µ¥ÀÌŸº£À̽º¸¦  ¸¸µé¾î¾ß ÇÑ´Ù. 
¿©±â¼­´Â µ¥ÀÌŸº£À̽º À̸§ÀÌ nogadax ÀÌ´Ù. À̸¦ ÀûÀýÈ÷ ¹Ù²Ù±â ¹Ù¶õ´Ù. ¶ÇÇÑ Æ÷½ºÆ®±×·¹
½ºÀÇ À¯Àú¸íÀº postgres ÀÌ°í ÆÐ½º¿öµå´Â ¾ø´Ù. À̰÷ÀÇ ¼Ò½º¿¡¼­ÀÇ url, usr, pwd ÀÇ ¼³Á¤Àº 
´ÙÀ½°ú °°´Ù. À̸¦ ÂüÁ¶ÇÏ¿© ÀÚ½ÅÀÇ È¯°æ¿¡ ¸Â°Ô ¹Ù²Ù±â ¹Ù¶õ´Ù. 

<tscreen><verb>
 String url = "jdbc:postgresql:nogadax";  
 String usr = "postgres";  
 String pwd = "";
</verb></tscreen>

<p>ÇÊÀÚÀÇ Å×½ºÆ® ȯ°æÀº ÇÑ´ëÀÇ  PC ¿¡ Æ÷½ºÆ®±×·¹½º¿Í ¾ÆÆÄÄ¡°¡  °°ÀÌ ¼³Ä¡µÇ¾î ÀÖ´Ù. ¸¸¾à 
Å×½ºÆ®ÇÏ·Á°í Çϴ ȯ°æÀÌ  DB¼­¹ö¿Í WEB¼­¹ö°¡  ¼­·Î ´Ù¸¥  °÷¿¡ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é,  Áï, 
3-Tier ȯ°æÀ̸é URL Àº À§¿Í´Â ´Ù¸£°Ô µÇ¾îÁ®¾ß ÇÑ´Ù. 

<p>ÀÚ½ÅÀÇ È¯°æÀ» Àû¿ëÇϱâ À§ÇØ ´ÙÀ½ÀÇ ¿¹¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù. Âü°í·Î IP ÁÖ¼Ò 210.110.144.162 ´Â 
Æ÷½ºÆ®±×·¹½º DB ¼­¹öÀÇ IPÁÖ¼ÒÀÌ¸ç Æ÷Æ® ¹øÈ£°¡ »ý·«µÇ¾úÀ¸¹Ç·Î µðÆúÆ® ¹øÈ£ "5432"·Î ÀÚµ¿ ¼ÂÆÃµÈ »óÅÂÀÌ´Ù.

<p>  String  url= "jdbc:postgresql://210.110.144.162/nogadax";

<p>±âŸ Class.forName()À» ¹öÀü¿¡ µû¶ó  ÀûÀýÈ÷ ¼öÁ¤Çϱ⠹ٶõ´Ù.  ¾Æ·¡ÀÇ Å×½ºÆ®¿ëÀÇ ¼Ò½º´Â 
Æ÷½ºÆ®±×·¹½º 6.5.3 ÀÇ JDBC µå¶óÀ̹ö¸¦ ±âÁØÀ¸·Î ÀÛ¼ºµÇ¾úÀ¸¹Ç·Î Class.forName()ÀÌ  ¾Æ·¡
¿Í °°´Ù. 

<p>   Class.forName("postgresql.Driver");

<p>±×·¯¹Ç·Î 7.0.x ÀÇ JDBC µå¶óÀ̹ö¿¡¼­ Å×½ºÆ®¸¦ ÇÏ·Á¸é  "<bf>org.postgresql.Driver</bf>" ·Î ¼öÁ¤ÇÏ
¸é µÈ´Ù.  

<p>¶ÇÇÑ ÄÄÆÄÀÏµÈ ¼­ºí¸´Àº ¸®Æ÷ÁöÅ丮¿¡ ÀÖ¾î¾ß ÇÑ´Ù. ¸®Æ÷ÁöÅ͸®´Â ¼­ºí¸´À» À§ÇÑ ³í¸®ÀûÀÎ
µð·ºÅ丮ÀÌ´Ù. À̰ÍÀº zone ¿Í ¿¬°áµÇ¾îÁö´Âµ¥ zoneÀº URL¿¡  ÷°¡µÇ¾îÁø´Ù. ¸¸¾à zone ÀÇ 
À̸§ÀÌ servlet ÀÌ°í  ¾Æ·¡ÀÇ ¿¹Á¦¼Ò½º¸¦ ÄÄÆÄÀÏ  ÈÄ  ÁöÁ¤µÈ ¸®Æ÷ÁöÅ͸®¿¡  ÀÖ´Ù¸é ½ÇÇàÀ»  
À§ÇØ ºê¶ó¿ìÁ®ÀÇ URL â¿¡ ´ÙÀ½Ã³·³ ÀÔ·ÂÇØÁÖ¸é µÇ´Âµ¥ Àڽſ¡°Ô ¸Â°Ô ¹Ù²Ù¾îÁÖ¸é µÈ´Ù. 

<p>http://localhost/servlet/Hello

<p>ȤÀº

<p>http://210.110.144.162/servlet/Hello

<p>ȤÀº

<p>http://nogadax.tit.ac.kr/servlet/Hello

<p>´ÙÀ½Àº "Hello.java" ¶ó´Â Å×½ºÆ®¿ëÀÇ ¼Ò½ºÀÌ´Ù. 

<tscreen><verb>
-------------------------------
import java.io.*;
import javax.servlet.*;
import java.sql.*;
import java.text.*;
import javax.servlet.http.*;

public class Hello extends HttpServlet
{ 
  Connection db;  
  Statement  st;
  PrintWriter out;

  public void doGet (HttpServletRequest request,
                     HttpServletResponse response) 
  throws ServletException, IOException  
  {   
   String title = "Example Apache JServ Servlet";
   response.setContentType("text/html");
   out = response.getWriter();
   out.println("<HTML><HEAD><TITLE>");
   out.println(title);
   out.println("</TITLE></HEAD><BODY bgcolor=\"#FFFFFF\">");
   out.println("<H1>" + title + "</H1>");
   out.println("<H2>Congratulations, Apache JServ is working!</H2>");
   try {
        test();
       } catch(Exception ex){
          out.println("<h2>DB error!</h2>");
         }
   out.println("</BODY></HTML>");
   out.close();
   }

   public void cleanup()
   {  
     try {
         st.executeUpdate("drop table basic");
       } catch(Exception ex) {  }
   }
         
   public void doexample() throws SQLException
   {
     out.println("<br><h2>Running tests:</h2>");
     st.executeUpdate("create table basic (a int2, b int2)");
     st.executeUpdate("insert into basic values (1,1)");
     st.executeUpdate("insert into basic values (2,1)");
     st.executeUpdate("insert into basic values (3,1)");
     st.executeUpdate("update basic set b=8");
     out.println("<h2>Updated "+st.getUpdateCount()+" rows</h2>");
     PreparedStatement ps = db.prepareStatement("insert into
                                               basic values (?,?)");
     for(int i=2;i<5;i++) {
            ps.setInt(1,4);             // "column a" = 5
            ps.setInt(2,i);             // "column b" = i
            ps.executeUpdate(); 
      }
     ps.close();                
     out.println("<h2>performing a query</h2>");
     ResultSet rs = st.executeQuery("select a, b from basic");
     if(rs!=null) {
         while(rs.next()) {
               int a = rs.getInt("a");
               int b = rs.getInt(2); 
               out.println("<h2>  a="+a+" b="+b+"</h2>");
          }
         rs.close(); 
     }
   }

   public void  test()
   throws ClassNotFoundException, FileNotFoundException,
                                 IOException,SQLException
   { 
    String url = "jdbc:postgresql:nogadax";  
    String usr = "postgres";  
    String pwd = "";
    Class.forName("postgresql.Driver");
    db = DriverManager.getConnection(url, usr, pwd);
    out.println("<h2>Connecting to Database URL = " + url +"</h2>");
    out.println("<h2>Connected...Now creating a statement</h2>");
    st = db.createStatement();
    cleanup();    
    doexample();    
    cleanup();
    out.println("<h2>Now closing the connection</h2>");
    st.close();   
    db.close();
   }//end test
 }
</verb></tscreen>

<p><bf>½ÇÇà °á°ú</bf> 

<p>½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù. ¾Æ·¡¿¡¼­ º¸¿©Áö´Â URLÀÌ ´Ù¸¦ ¼ö ÀÖ´Ù. 

<tscreen><verb>
Example Apache JServ Servlet
Congratulations, Apache JServ is working!
Connecting to Database URL = jdbc:postgresql:nogadax
Connected...Now creating a statement

Running tests:

Updated 3 rows
performing a query
a=1 b=8
a=2 b=8
a=3 b=8
a=4 b=2
a=4 b=3
a=4 b=4

Now closing the connection

</verb></tscreen>

<sect>Æ÷½ºÆ®±×·¹½º À¯Àú ¸¸µé±â 

<p>JDBC ·Î ¿¬°áÀ» ÇÒ ¶§ »õ·Î¿î À¯Àú¸í°ú ÆÐ½º¿öµå¸¦ ÁÖ°í ½ÍÀ» ¶§°¡ ÀÖÀ» °ÍÀÌ´Ù. À̸¦ À§ÇØ
Æ÷½ºÆ®±×·¹½ºÀÇ À¯Àú¿Í À¯Àú¿¡ ´ëÇÑ ÆÐ½º¿öµå¸¦ ¸¸µå´Â ¹æ¹ýÀ» °£´ÜÈ÷ ¼Ò°³ ÇϰڴÙ. 

<p>¸ÕÀú Æ÷½ºÆ®±×·¹½ºÀÇ ½´ÆÛ °èÁ¤(DBA)¸¦ "postgres" ¶ó°í °¡Á¤ÇÏÀÚ.

<p>¿©±â¼­´Â µ¥ÀÌÅͺ£À̽ºÀÇ »õ·Î¿î À¯Àú¸¦ »ý¼ºÇÏ°í ±× À¯ÀúÀÇ µ¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇÒ °ÍÀÌ´Ù. 
¼ø¼­´Â ´ÙÀ½°ú °°´Ù. 

<p><bf>1.</bf> postgres °èÁ¤¿¡ ÆÐ½º¿öµå¸¦ »ý¼ºÇÑ´Ù. À̸¦ À§ÇØ Æ÷½ºÆ®±×·¹½ºÀÇ Æ¯º°ÇÑ µ¥ÀÌÅͺ£À̽ºÀÎ 
"<bf>template1</bf>" ¿¡ Á¢¼ÓÇÑ´Ù.  ÆÐ½º¿öµå¸¦ "123qwe" ¶ó°í °¡Á¤ÇÑ´Ù.

<tscreen><verb>
postgres]$ psql template1
.......
template1=>alter user postgres with password '123qwe';
ALTER USER
template1=>\q
postgres]$ 
</verb></tscreen>

<p><bf>2.</bf> "pg_hba.conf" ÆÄÀÏÀ»  ¼öÁ¤ÇÑ´Ù. ¸¸¾à,  DB ¼­¹ö·Î Á¢¼ÓÇÏ·Á´Â  ÀÚ½ÅÀÇ Host  ÀÇ IP °¡ 
"210.110.144.169" ÀÌ¸é ´ÙÀ½Ã³·³ ¼öÁ¤ÇÑ´Ù. 

<tscreen><verb>
 local  all                                     crypt 
 host   all   127.0.0.1        255.255.255.255  crypt
 host   all   210.110.144.169  255.255.255.255  crypt
</verb></tscreen>

<p>Âü°í·Î host ·Î ½ÃÀÛÇÏ´Â ¶óÀÎÀº DB ¼­¹ö¿¡ Á¢±ÙÇÏ·Á´Â Ŭ¶óÀÌ¾ðÆ®¸¦ Á¦¾îÇÏ·Á ÇÑ´Ù. ±×·¯
¹Ç·Î DB ¼­¹öÀÇ IP ¸¦ ÁÖ´Â °ÍÀÌ ¾Æ´ÔÀ» ÁÖÀÇÇϱ⠹ٶõ´Ù. ¶ÇÇÑ "<bf>crypt</bf>"´Â DB ¼­¹ö·ÎÀÇ Á¢
±Ù Á¦¾î ¸Þ¼ÒµåÀ̹ǷΠ"crypt"¸¦ Àû¿ëÇÑ ÈĺÎÅÍ´Â  DB¼­¹ö·ÎÀÇ Á¢¼ÓÀ» À§ÇØ °èÁ¤°ú ÆÐ½º¿ö
µå°¡ ÇÊ¿äÇÏ´Ù.  

<p><bf>3.</bf> ´Ù½Ã Æ÷½ºÆ®±×·¹½º ½´ÆÛ°èÁ¤À¸·Î "template1" µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÑ ÈÄ »õ·Î¿î µ¥ÀÌÅͺ£
À̽º À¯Àú¸¦ »ý¼ºÇÑ´Ù. »õ·Î »ý¼ºÇÒ À¯Àú¸¦ "nogadax" ¶ó°í °¡Á¤Çϸç ÀÌ À¯Àú¿¡°Ô µ¥ÀÌÅͺ£
À̽º¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Â ±ÇÇÑÀ» ÁÙ °ÍÀ̸ç ÀÌ ¿É¼ÇÀº "<bf>createdb</bf>" ÀÌ´Ù. ±âŸ  "<bf>createuser</bf>" ¶ó
´Â ¿É¼Çµµ Àִµ¥ ÀÌ ¿É¼ÇÀº  ´Ù¸¥ À¯Àú¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Â  ±ÇÇÑÀ» ÁØ´Ù. ¶ÇÇÑ, "template1" 
¿¡ Á¢¼ÓÀ» À§ÇÑ ¿É¼Ç "<bf>-u</bf>"¸¦  ÁÖ¾î¾ß ÇÏ¸ç ¿É¼ÇÀ» ÁØ ÈĺÎÅÍ´Â  °èÁ¤°ú ÆÐ½º¿öµå¸¦ ¹¯´Â´Ù. 
ÀÌ ¿É¼ÇÀ» ÁÖ´Â ÀÌÀ¯´Â pg_hba.conf ¿¡ "crypt" Á¢±Ù Á¦¾î ¸Þ¼Òµå¸¦ ÁÖ¾ú±â ¶§¹®ÀÌ´Ù. 

<tscreen><verb>
postgres]$ psql -u template1
Username : postgres
Password :
.........
template1=> create user nogadax with password 'qwert' createdb ;
CREATE  USER
template1=>\q
postgres]$

</verb></tscreen>

<p><bf>4.</bf> »ý¼ºµÈ nogadax À¯Àú·Î template1 µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÑ µÚ "nogadax"ÀÇ µ¥ÀÌÅͺ£À̽º
¸¦ »ý¼ºÇÏÀÚ. µ¥ÀÌÅͺ£À̽º¸íÀº "test" ¶ó°í °¡Á¤ÇÑ´Ù. 

<tscreen><verb>
postgres]$ psql -u template1
Username : nogadax 
Password :
..............
template1=>create database test;
CREATE DATABASE 
template1=>\q
postgres]$ psql -u test
Username : nogadax 
Password :
................
test=> \q
postgres]$

</verb></tscreen>
</article>




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0073 sec