WWW¿¡¼ Æ÷Ç×°ø°ú´ëÇÐ ÀüÀڽŹ® ±¸Ãà »ç·Ê
Abstract
ÇöÀç ¸¹Àº Á¾·ùÀÇ ÀüÀڽŹ®µéÀÌ ÀÎÅͳݿ¡¼ Á¤º¸¸¦ Á¦°øÇϰí Àִµ¥
¿©±â¼´Â ¾ó¸¶ÀüºÎÅÍ ÀÎÅ׳ݿ¡¼ ¼ºñ½º¸¦ ÇØ¿À°í ÀÖ´Â Æ÷Ç×°ø´ë
ÀüÀڽŹ®ÀÇ ±¸Ãà »ç·Ê¸¦ ¼Ò°³ÇϰíÀÚ ÇÑ´Ù.
Æ÷Ç×°ø´ë ÀüÀڽŹ®Àº ÀÔ·ÂµÈ ±â»çµéÀ» °ü¸®Çϱâ À§ÇÑ °£´ÜÇÑ
µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ°ú ÀÌ µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀ» ÀÌ¿ëÇÏ´Â WWW
ÀÎÅÍÆäÀ̽º (CGI ÇÁ·Î±×·¥µé) ·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
Æ÷Ç×°ø´ë ÀüÀڽŹ®Àº ÀÎÅÍ³Ý »ó¿¡¼ ¿©·¯ ¸íÀÇ ±âÀÚµéÀÌ
Web browser¸¦ ÀÌ¿ëÇØ¼ µ¿½Ã¿¡ ±â»ç¸¦ µ¥ÀÌŸº£À̽º ³»¿¡ ÀÔ·ÂÇÒ ¼ö ÀÖ°í
ÀÔ·ÂµÈ ±â»ç´Â ´Ù½Ã Web browser¸¦ ÀÌ¿ëÇØ¼ °Ë»öÇϰųª ÂüÁ¶µÉ ¼ö ÀÖ´Ù.
ÀԷµǴ ±â»ç´Â ÀÏ¹Ý text »Ó¸¸ ¾Æ´Ï¶ó image±îÁö Æ÷ÇÔÇÏ´Â ¹®¼ÀÌ´Ù.
±â»çÀÇ ÀÔÃâ·ÂÀÌ ¸ðµÎ ±âÁ¸ Web browser°¡ Á¦°øÇÏ´Â ±â´ÉÀ» ÀÌ¿ëÇØ¼
ÀÌ·ç¾îÁö´Â °ÍÀÌ Æ¯Â¡À̸ç Àü¹® DBMS´Â ÀÌ¿ëÇÏÁö ¾Ê¾Ò´Ù.
µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ°ú WWW ÀÎÅÍÆäÀ̽º ÇÁ·Î±×·¥µéÀº ¸ðµÎ PERL
language¸¦ ÀÌ¿ëÇØ¼ ±¸ÇöµÇ¾ú´Ù.
Keywords
ÀüÀڽŹ®, µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ, WWW, CGI
Author
Æ÷Ç×°ø°ú´ëÇб³
ºÐ»êó¸®È¯°æ ¿¬±¸½Ç
À±ÅÂÇü
(A member of POSTECH WWW working group)
E-mail :
nicebomb@vision.postech.ac.kr
URL :
http://lion.postech.ac.kr/~nicebomb/
È«¿ø±â
E-mail :
jwkhong@nile.postech.ac.kr
URL :
http://dpegate.postech.ac.kr/~jwkhong/
1. °³¿ä
ÇöÀç ¿©·¯ ½Å¹®»ç¿¡¼ ÀüÀڽŹ®À» ¾Õ´ÙÅõ¾î °³¹ßÇϰí ÀÖÀ¸¸ç ÀÎÅͳݿ¡¼
ÀÚ»çÀÇ ÀüÀڽŹ®À» ¼ºñ½ºÇϰí ÀÖ´Ù. [ 1,
2]
½Å¹®»çÀÇ ÀÔÀå¿¡¼ º»´Ù¸é ÀÎÅͳݿ¡¼ ÀÚ»çÀÇ ½Å¹® ±â»çµéÀ» ¼ºñ½ºÇÑ´Ù´Â
°ÍÀº ÂüÀ¸·Î ¸Å·ÂÀûÀÎ ÀÏÀÏ °ÍÀÌ´Ù.
¿Ö³ÄÇϸé ÀÚ»çÀÇ ½Å¹®ÀÌ ÀÎÅͳÝÀ̶ó´Â °¡»ó °ø°£À» ÅëÇØ¼ ¸¹Àº µ¶ÀÚÃþÀ» È®º¸ÇÒ
¼ö ÀÖ°í Àü¼¼°èÀÇ ´©±¸¿¡°Ô³ª Àü´ÞµÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
Æ÷Ç×°ø´ë ½Å¹® ¿ª½Ã º¸´Ù ¸¹Àº »ç¶÷µé¿¡°Ô Æí¸®ÇÏ°í ºü¸£°Ô ÀÐÇôÁöµµ·Ï Çϱâ
À§Çؼ ÀüÀڽŹ®À» ±¸ÃàÇÏ°Ô µÇ¾ú´Ù.
ÀüÀڽŹ®À» ±¸ÃàÇϱâ ÀÌÀü¿¡´Â ÁÖ·Î ´ëÇÐ ³»¿¡¼ ¹èÆ÷µÇ°í ´ëÇÐ ³»¿¡¼ ¸¹ÀÌ
ÀÐÇô Á³¾ú´Âµ¥ ÀÌÁ¦´Â »çȸ¿¡ ÁøÃâÇØ ÀÖ´Â ¸¹Àº ¼±¹èµé°ú Æ÷Ç×°ø´ë¿¡ °ü½ÉÀ»
°¡Áö°í ÀÖ´Â ¸¹Àº »ç¶÷µé¿¡°Ô Çб³ ¼Ò½ÄÀ» Á» ´õ ºü¸£°í Æí¸®ÇÑ ¹æ¹ýÀ¸·Î
Á¦°øÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù.
Æ÷Ç×°ø´ë ÀüÀڽŹ®ÀÇ ±¸Á¶´Â Å©°Ô ½Å¹®±â»çµéÀ» °ü¸®Çϱâ À§ÇÑ °£´ÜÇÑ µ¥ÀÌŸº£À̽º
½Ã½ºÅÛ[ 3]°ú WWW¿Í ÀÌ µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀ» ¿¬°áÇØ ÁÖ´Â
CGI[ 4, 5] ÇÁ·Î±×·¥ÀÇ
µÎ ºÎºÐÀ¸·Î ³ª´©¾î ¼³¸íÇÒ ¼ö ÀÖ´Ù.
ù¹øÂ°·Î µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀº ¹ü¿ë µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀ» ¸ñÇ¥·Î µðÀÚÀÎ
µÇ¾ú±â ¶§¹®¿¡ ÀüÀڽŹ®À» ±¸ÃàÇÏ´Â °Í À̿ܿ¡µµ Àι° µ¥ÀÌŸº£À̽º¸¦
±¸ÃàÇϰųª ÀüÀڽŹ®°ú ºñ½ÁÇÑ ¼º°ÝÀ» °¡Áö´Â µ¥ÀÌŸ¿¡ ´ëÇØ¼ µ¥ÀÌŸº£À̽º¸¦
±¸ÃàÇÒ ¼ö ÀÖ´Ù.
µÎ¹øÂ°·Î CGI ÇÁ·Î±×·¥Àº Web browser¿Í µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀ» ¿¬°á½ÃÄÑÁÖ±â
À§Çؼ ÇÊ¿äÇϸç CGI ÇÁ·Î±×·¥Àº µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ°ú Á÷Á¢ÀûÀÎ °ü°è°¡ ¾ø±â
¶§¹®¿¡ CGI ÇÁ·Î±×·¥ °³¹ßÀÚ´Â ÀÚ½ÅÀÌ ¿øÇÏ´Â »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ¸¸µé ¼ö ÀÖ´Ù.
CGI ÇÁ·Î±×·¥ °³¹ßÀÚ°¡ ¾Ë¾Æ¾ß ÇÒ Áß¿äÇÑ ³»¿ëÀº »ç¿ëÀڷκÎÅÍ ÀÔ·Â ¹ÞÀº
µ¥ÀÌŸ¸¦ µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ¿¡ ÀÔ·ÂÇϰųª ÀԷµǾî ÀÖ´Â µ¥ÀÌŸ¸¦ Ãâ·ÂÇÏ´Â
¹æ¹ýÀε¥ À̰ÍÀº µ¥ÀÌŸº£À̽º ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇØ¼ °¡´ÉÇÏ´Ù.
ÀÌÁ¦ ÀÌ ±ÛÀº WWW »ó¿¡¼ Ưº°ÇÑ DBMSÀÇ »ç¿ë ¾øÀÌ ÀüÀڽŹ®ÀÇ ±¸ÃàÀÌ ¾î¶»°Ô
°¡´ÉÇѰ¡¸¦ Æ÷Ç×°ø´ë ÀüÀڽŹ®ÀÇ ¿¹¸¦ µé¾î ¼³¸íÇÒ °ÍÀÌ´Ù.
2Àå¿¡¼´Â CGI¿¡ ´ëÇØ¼ ¼³¸íÇϰí 3Àå¿¡¼´Â Æ÷Ç×°ø´ë ÀüÀڽŹ®À»
±¸ÃàÇϱâ À§ÇØ Á¶»çÇÑ »ç¿ëÀÚ ¿ä±¸»çÇ׿¡ ´ëÇØ¼ ¼³¸íÇϰí
4Àå¿¡¼´Â Æ÷Ç×°ø°ú´ëÇÐ ÀüÀڽŹ®ÀÇ Àüü ±¸Á¶¿¡ ´ëÇØ¼ ¼³¸íÇÒ °ÍÀÌ´Ù.
5Àå¿¡¼´Â ÀÌÇØ¸¦ µ½±â À§Çؼ ½Å¹® ±â»çÀÇ ÀԷ°ú Ãâ·ÂÀÌ ¾î¶»°Ô ÀÌ·ç¾îÁö´Â
°¡¸¦ º¸¿©ÁÖ°í ÀÌ ¶§ ÀÌ¿ëµÇ´Â CGI ÇÁ·Î±×·¥µé¿¡ ´ëÇØ¼ ¼³¸íÇÒ °ÍÀÌ´Ù.
¾Õ¼ ¼³¸íÇÑ ´ë·Î Æ÷Ç×°ø°ú´ëÇÐ ÀüÀڽŹ®Àº Å©°Ô µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ°ú
WWW ÀÎÅÍÆäÀ̽ºÀÇ µÎ ºÎºÐÀ¸·Î ³ª´µ¾î Áö´Âµ¥
6Àå°ú 7Àå¿¡¼´Â ÀÌ µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ¿¡ ´ëÇØ¼ ÁßÁ¡ÀûÀ¸·Î ¼³¸íÇÒ °ÍÀÌ´Ù.
6Àå¿¡¼´Â µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ¿¡¼ »ç¿ëµÈ µ¥ÀÌŸ ¸ðµ¨¿¡ ´ëÇØ¼
7Àå¿¡¼´Â µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀÇ µðÀÚÀο¡ ´ëÇØ¼ Â÷·Ê·Î ¼³¸íÇÒ °ÍÀÌ´Ù.
¸¶Áö¸·À¸·Î 8Àå¿¡¼´Â °á·Ð°ú ÇâÈÄ °³È¹¿¡ ´ëÇØ¼ ¼³¸íÇÒ °ÍÀÌ´Ù.
2. CGI(Common Gateway Interface)
CGI´Â Web server°¡ ÀÌ¿ëÇÏ´Â °ÍÀ¸·Î CGI¸¦ ÀÌ¿ëÇØ¼ ½Ç½Ã°£À¸·Î
¹®¼¸¦ »ý¼ºÇؼ Web browser¿¡°Ô º¸³»Áְųª »ç¿ëÀÚÀÇ ÁúÀǸ¦
¹Þ¾Æ ÀÀ´äÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.
º¸´Ù ÀÚ¼¼ÇÑ ³»¿ëÀº Âü°í ÀÚ·á [ 4, 5]
¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.
3. Design Requirements
´ÙÀ½Àº Æ÷Ç×°ø´ë ÀüÀڽŹ®À» ±¸ÃàÇϴµ¥ ÀÖ¾î¼ ÇÊ¿äÇÑ ¿ä±¸»çÇ×µéÀ»
³ª¿ÇÑ °ÍÀÌ´Ù. ¾Æ·¡¿Í °°Àº ¿ä±¸»çÇ×µéÀ» ¸¸Á·½ÃŰ´Â ÀüÀڽŹ®À»
±¸ÃàÇÏ¿©¾ß ÇÑ´Ù.
- ½Å¹®±â»çÀÇ ÀԷ°ú Ãâ·ÂÀÌ ¸ðµÎ Web browser¸¦ ÀÌ¿ëÇØ¼ ÀÌ·ç¾îÁöµµ·Ï
ÇÏ¿© ¾ðÁ¦ ¾îµð¼µçÁö ³×Æ®¿öÅ©¸¦ ÅëÇØ¼ ±â»ç¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ°í ÀԷµÈ
±â»ç¸¦ º¼ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
- ±â»çÀÇ ÀÔ·ÂÀº ´Ù¼öÀÇ ±âÀÚ¿¡ ÀÇÇØ¼ ÀÌ·ç¾îÁö¸ç ¿©·¯¸íÀÇ ±âÀÚµéÀÌ
µ¿½Ã¿¡ ±â»ç¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
- ±â»ç¸¦ ÀÔ·ÂÇÏ´Â °Í ÀÌ¿ÜÀÇ ´Ù¸¥ ÀÛ¾÷Àº ¸ðµÎ ÀÚµ¿ÀûÀ¸·Î ÀÌ·ç¾î Áöµµ·Ï
ÇÏ¿© Ãß°¡ÀûÀÎ °ü¸®°¡ ÇÊ¿äÇÏÁö ¾Êµµ·Ï ÇÑ´Ù.
- Àü¹® DBMS´Â ÀÌ¿ëÇÏÁö ¾ÊÀ¸¸ç ±× ÀÌÀ¯´Â ´ÙÀ½°ú °°´Ù.
- ÀüÀڽŹ®À» ±¸ÃàÇϴµ¥ ÀÌ¿ëÇÒ ¸¸ÇÑ ÀûÇÕÇÑ DBMS¸¦ ãÀ» ¼ö ¾ø¾ú´Ù.
- ±âÁ¸¿¡ ¸¹ÀÌ Á¦Ç°ÈµÇ¾î ÀÖ´Â °ü°èÇü DBMSµéÀº ÀԷµǴÂ
textÀÇ ±æÀÌ¿¡ Á¦ÇÑÀÌ ÀÖ°í text°¡ ÀÔ·ÂµÉ ¶§ DBMS ÀÚüÀûÀ¸·Î °¢ ´Ü¾î¿¡
´ëÇØ¼ index¸¦ ¸¸µé¾î ÁÖÁö ¾Ê±â ¶§¹®¿¡ °Ë»ö ±â´ÉÀ» Ãß°¡Çϴµ¥ ÀûÇÕÇÏÁö
¾Ê¾Ò´Ù.
- Ãß°¡ ºñ¿ë ºÎ´ãÀÌ »ý±ä´Ù.
- Àü¹® DBMS¸¦ ÀÌ¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î Á÷Á¢ µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀ» ±¸ÇöÇØ¾ß ÇÑ´Ù.
- ±â»ç¸¦ ÀÔ·ÂÇϱâ À§Çؼ´Â Account¿Í Password¸¦ ¾Ë¾Æ¾ß ÇÏ¸ç ¾Æ¹«¿¡°Ô³ª
µ¥ÀÌŸº£À̽º¿¡ ´ëÇÑ Á¢±Ù ±ÇÇÑÀ» ÁÖÁö ¾Êµµ·Ï ÇÑ´Ù.
4. Àüü ±¸Á¶
ÀüÀڽŹ®À» ±¸ÃàÇÏ°Ô µÇ¸é ¸¹Àº ¾çÀÇ µ¥ÀÌŸµéÀÌ ÀúÀåµÇ°í ¶Ç °Ë»öµÇ¾î¾ß Çϴµ¥
µ¥ÀÌŸÀÇ °ü¸®¸¦ È¿À²ÀûÀ¸·Î Çϱâ À§Çؼ´Â DBMS¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
ÀüÀڽŹ® ±¸Ãà Ãʱ⿡ ¾î¶² DBMS°¡ ÀûÇÕÇÑ Áö¸¦ ¾Ë¾Æº¸±â À§Çؼ ±âÁ¸¿¡
Á¦Ç°ÈµÇ¾î ÀÖ´Â ¸î °¡Áö DBMS µéÀ» Á¶»çÇØ º¸¾ÒÀ¸³ª ±âÁ¸¿¡ ¸¹ÀÌ »ç¿ëµÇ°í
ÀÖ¾ú´ø °ü°èÇü DBMSµéÀº ÀԷµǴ µ¥ÀÌŸÀÇ Å©±â¿¡ Á¦ÇÑÀÌ ÀÖ¾ú°í
ƯÈ÷ text¸¦ ÀÔ·ÂÇÏ´Â °æ¿ì DBMS ÀÚüÀûÀ¸·Î °¢ ´Ü¾î¿¡ ´ëÇÑ index¸¦ ¸¸µé¾î
ÁÖÁö ¾Ê¾Æ¼ °Ë»öÇÏ´Â ºÎºÐÀº ¿©ÀüÈ÷ µû·Î ±¸ÇöÇØ¾ß Çß´Ù.
ÀÌó·³ ±âÁ¸ÀÇ DBMS¸¦ ÀÌ¿ëÇÏ´õ¶óµµ Å« µµ¿òÀÌ µÇÁö ¾Ê¾Æ¼ Á÷Á¢ °£´ÜÇÑ
µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀ» ±¸ÇöÇÏ°Ô µÇ¾ú´Ù.
<±×¸² 1> Æ÷Ç×°ø´ë ÀüÀڽŹ® Àüü ±¸Á¶
Àüü ±¸Á¶´Â À§ÀÇ ±×¸²°ú °°ÀÌ ÀԷµǴ ¹®¼µéÀ» ÀúÀåÇÏ°í °ü¸®Çϱâ
À§ÇÑ µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ°ú ÀÌ µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀ» »ç¿ëÇÏ´Â CGI ÇÁ·Î±×·¥µé·Î
ÀÌ·ç¾î Áø´Ù.
µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀº Å©°Ô DATABASE Interface, INDEX Generator,
Network InterfaceÀÇ ¼¼ ºÎºÐÀ¸·Î ³ª´µ¾î Áö´Âµ¥ °¢ ºÎºÐÀÇ Æ¯Â¡Àº
¾Æ·¡¿Í °°´Ù.
- DATABASE Interface´Â ¿ÜºÎ¿¡ °ø°³µÇ´Â ÀÎÅÍÆäÀ̽º·Î CGI ÇÁ·Î±×·¥µéÀº
DATABASE Interface¸¦ ÀÌ¿ëÇØ¼ µ¥ÀÌŸº£À̽º¿¡ Á¢±ÙÇÑ´Ù.
- INDEX Generator´Â ¹®¼µéÀÌ ÀÔ·ÂµÉ ¶§ °¢ ´Ü¾î¿¡ ´ëÇÑ index¸¦ ¸¸µé¾î
Áֱ⠶§¹®¿¡ ³ªÁß¿¡ ºü¸¥ °Ë»öÀÌ °¡´ÉÇÏ´Ù.
- Network Interface´Â FTP¿Í HTTP ÇÁ·ÎÅäÄÝ µîÀ» Áö¿øÇϴµ¥ À̰ÍÀº
µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ¿¡ URLÀ» ³Ñ°ÜÁÖ¸é µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀÌ Á÷Á¢ ÇØ´ç ¹®¼¸¦
³×Æ®¿öÅ©¸¦ ÅëÇØ¼ ÀÔ·ÂÇϵµ·Ï ÇÒ ¶§ ÀÌ¿ëµÈ´Ù.
À§ ±×¸²¿¡¼ (1)¿¡¼ (6)±îÁöÀÇ ¹øÈ£´Â »ç¿ëÀÚÀÇ ¿äûÀ¸·ÎºÎÅÍ Web serverÀÇ
ÀÀ´ä±îÁöÀÇ ¼ø¼¸¦ ³ªÅ¸³»°í Àִµ¥ »ç¿ëÀÚ°¡ Web browser¸¦ ÀÌ¿ëÇØ¼
Web server¿¡°Ô ¿äû(1)À» Çϸé Web server´Â CGI ÇÁ·Î±×·¥À» ½ÇÇà(2)ÇÑ´Ù.
CGI ÇÁ·Î±×·¥Àº ´Ù½Ã µ¥ÀÌŸº£À̽º¿¡°Ô ¿äû(3)À» ÇÏ°í µ¥ÀÌŸº£À̽º·ÎºÎÅÍ
ÀÀ´ä(4)À» ¹Þ¾Æ¼ HTML ¹®¼¸¦ ¸¸µé¾î Web server¿¡°Ô Àü´Þ(5)Çϸé Web
server°¡ Web browser¿¡°Ô HTML ¹®¼¸¦ º¸³»ÁÖ°Ô µÈ´Ù(6).
5. ½Å¹® ±â»ç ÀÔ·Â ¹× Ãâ·Â ½Ã³ª¸®¿À
¿©±â¼´Â ÀÌÇØ¸¦ µ½±â À§Çؼ ½ÇÁ¦·Î Web browser¸¦ ÀÌ¿ëÇØ¼ ½Å¹® ±â»ç¸¦ ÀÔ·ÂÇÏ´Â
³ª¸®¿À¿Í Ãâ·ÂÇÏ´Â ½Ã³ª¸®¿À ¹× °ü·Ã CGI ÇÁ·Î±×·¥µéÀ» »ìÆìº¼ °ÍÀÌ´Ù.
5.1 ÀÔ·Â ½Ã³ª¸®¿À
¾Õ¿¡¼ ¾ð±ÞÇßÁö¸¸ »ç¿ëÀÚ¿¡°Ô Á¦°øµÇ´Â ÀÎÅÍÆäÀ̽º´Â CGI ÇÁ·Î±×·¥ °³¹ßÀÚ°¡
¿øÇÏ´Â ´ë·Î ¸¸µé ¼ö ÀÖ´Ù.
¾Æ·¡´Â ±â»ç¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ´Â »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º Áß¿¡¼ Çϳª¸¦ º¸¿© ÁÖ°í ÀÖ´Ù.
À§ ³»¿ëÀ» »ìÆìº¸¸é ¸ÕÀú Account¿Í Password¸¦ ÀÔ·ÂÇÏ´Â ¶õÀÌ ÀÖ°í
±â»ç Á¦¸ñ°ú ±Û¾´ÀÌ ±×¸®°í °ü·Ã ±×¸² URL°ú ±â»ç URLÀ» ÀÔ·ÂÇÏ´Â ¶õÀÌ
ÀÖ´Ù. °ø¶õÀ» ä¿ì°í Submit¸¦ ´©¸£¸é CGI ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Âµ¥
CGI ÇÁ·Î±×·¥Àº »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ µ¥ÀÌŸ¸¦ ¹Þ¾Æ¼ ³×Æ®¿÷À¸·Î °ü·Ã
±×¸²°ú ±â»ç¸¦ °¡Á®¿Â ´ÙÀ½ µ¥ÀÌŸº£À̽º¿¡ ÀÔ·ÂÇÑ´Ù.
CGI ÇÁ·Î±×·¥ÀÇ ¼Ò½º´Â ¾Æ·¡¿Í °°´Ù.
#!/usr/local/bin/perl
require '../library/DBInterface.pl';
require 'Misc.pl';
# ---
# Check REQUEST_METHOD
$ENV{'REQUEST_METHOD'} ne "POST" &&
&critical_error("\nYou can't call this CGI program directly");
&cgi_receive;
&cgi_decode;
# Get Fill Out Form contents
$account = $FORM{'account'};
$password = $FORM{'password'};
$order = $FORM{'order'};
$title = $FORM{'title'};
$author = $FORM{'author'};
$imageurl = $FORM{'imageurl'};
$content = $FORM{'content'};
$texturl = $FORM{'texturl'};
# Check user authorization
$folder_root_ref = &FLD_Access("postech-times", $account, $password);
&critical_error("\nYou are not authorized") if ($folder_root_ref < 0);
# Make SEARCH string
$string = "title=$title&author=$author";
# Insert NEWS to DB
$ref_one = &FLD_GetReference($folder_root_ref, "1996/03/01");
$result = &DB_NEWSIn($ref_one, $string, $texturl, $content, $imageurl);
$result < 0 && &critical_error("\nCritical error : ");
&print_head("");
print "±â»ç°¡ ÀԷµǾú½À´Ï´Ù.";
exit;
À§ CGI ÇÁ·Î±×·¥À» »ìÆìº¸¸é ¸ÕÀú Fill Out FormÀÇ ³»¿ëÀ» ¾ò°í Account¿Í
Password°¡ ¿Ã¹Ù¸¥ Áö üũÇÏ°í ±â»ç¸¦ ÀÔ·ÂÇÏ´Â °£´ÜÇÑ ³»¿ëÀ¸·Î µÇ¾î ÀÖ´Ù.
5.2 Ãâ·Â ½Ã³ª¸®¿À
µ¥ÀÌŸº£À̽º¿¡ ÀԷµǾî ÀúÀåµÇ¾î ÀÖ´Â ±â»ç´Â CGI ÇÁ·Î±×·¥À¸·Î ´Ù½Ã
Ãâ·Â½ÃÄѺ¼ ¼ö ÀÖ´Ù.
¿©·¯°¡Áö ¸ð¾çÀ¸·Î ±â»ç¸¦ Ãâ·Â½ÃÄÑ º¼ ¼ö Àִµ¥ ¾Æ·¡´Â ±× Áß ÇѰ¡ÁöÀÌ´Ù.
6. µ¥ÀÌŸ ¸ðµ¨
µ¥ÀÌŸ ¸ðµ¨Àº ¾Æ·¡ÀÇ ±×¸²Ã³·³ µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ¿¡ ÀÔÃâ·ÂµÇ´Â ¹®¼¿¡
´ëÇÑ ¸ðµ¨À» ¸»ÇÑ´Ù.
<±×¸² 2> µ¥ÀÌŸ ¸ðµ¨
À§ ±×¸²À» »ìÆìº¸¸é ¸ðµç ¹®¼´Â ÀÔ·ÂµÉ ¶§ °Ë»ö ¹®ÀÚ¿ (SEARCH string) °ú
ÇÔ²² ÀԷµȴÙ.
°Ë»ö ¹®ÀÚ¿Àº ÇϳªÀÇ ¹®¼¸¦ ´ëÇ¥ÇÒ ¼ö ÀÖ´Â ¹®ÀÚ¿À̾î¾ß Çϴµ¥
ÀԷµǴ ¹®¼¸¦ ¿ä¾à ¼³¸íÇÑ ¸»À̳ª Áß¿äÇÑ Å°¿öµåµéÀÌ °Ë»ö ¹®ÀÚ¿·Î
ÀÌ¿ëµÉ ¼ö ÀÖ´Ù.
¹®¼¸¦ µ¥ÀÌŸº£À̽º¿¡¼ ÃßÃâÇØ ³¾ ¶§ ÀÌ °Ë»ö ¹®ÀÚ¿ÀÌ ÀÌ¿ëµÇ¸ç
°ü·ÃµÈ ¸ðµç ¹®¼µéÀ» ÃßÃâÇÒ ¼ö ÀÖ´Ù.
±âº»ÀûÀ¸·Î ÀԷµǰí Ãâ·ÂµÇ´Â ¹®¼´Â ÀÏ¹Ý text¿Í image¸¦ Æ÷ÇÔÇÏ´Â
¹®¼Àε¥ ÇöÀç ´ÙÀ½ÀÇ µÎ °¡Áö ÇüŸ¦ Áö¿øÇÑ´Ù.
- NEWS ¹®¼ : »õ·Î ¸¸µé¾îÁø ¹®¼ ÇüÅÂÀÌ¸ç ½Å¹® ±â»ç ÇüŸ¦ ÀǹÌÇÏ´Â
°ÍÀε¥ ÀÏ¹Ý text¿¡ image Çϳª¸¸À» Æ÷ÇÔÇÏ´Â ¹®¼ÀÌ´Ù.
- HTML ¹®¼ : À§ NEWS FormatÀÇ Á¦ÇѼºÀ» ¾ø¾Ö±â À§Çؼ Ãß°¡ÇÑ ¹®¼
ÇüÅÂÀÌ´Ù. ÀÏ¹Ý text¿¡ ¿©·¯ image¸¦ Æ÷ÇÔÇØ¾ß ÇÒ °æ¿ì¿¡´Â ÀÌ ¹®¼ ÇüŸ¦
ÀÌ¿ëÇØ¾ß ÇÑ´Ù.
º¸ÅëÀÇ ½Å¹® ±â»ç´Â text¿¡ image¸¦ Çϳª¸¸ Æ÷ÇÔÇϰųª ¾Æ´Ï¸é text¸¸À¸·Î
µÇ¾î ÀÖ´Â °æ¿ì°¡ ¸¹´Ù.
NEWS ¹®¼´Â ÀÌ¿Í °°Àº ½Å¹® ±â»çÀÇ Æ¯Â¡À» °í·ÁÇØ¼ ¸¸µé¾îÁø »õ·Î¿î
¹®¼ ÇüÅ·μ ÀÏ¹Ý text¿Í °ü·Ã image¸¦ µû·Î °ü¸®Çϱ⠶§¹®¿¡ ȸé
±¸¼ºÀÌ HTML ¹®¼¿¡ ºñÇØ ÀÚÀ¯·Ó´Ù.
HTML ¹®¼´Â NEWS ¹®¼ÀÇ ÇѰ踦 º¸¿ÏÇϱâ À§Çؼ Ãß°¡ÇÑ ¹®¼ÇüÅÂÀε¥
¿©·¯ imageµéÀÌ ¹®¼ ³»¿¡ Æ÷ÇԵǾî¾ß ÇÒ °æ¿ì HTML ¹®¼¸¦ ÀÌ¿ëÇϸé
µÈ´Ù.
7. µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ µðÀÚÀÎ
µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀº ¾Õ¿¡¼ ¼³¸íÇÑ µ¥ÀÌŸ ¸ðµ¨ÀÇ ¹®¼µéÀ» ÀÔ·ÂÇϰųª
Ãâ·ÂÇÏ°í °ü¸®Çϱâ À§Çؼ ÇÊ¿äÇÑ ½Ã½ºÅÛÀÌ´Ù.
¿©±â¼´Â ÀԷµǴ ¹®¼°¡ ¾î¶»°Ô ÀúÀåµÇ°í °ü¸®µÇ´Â°¡¿¡ ´ëÇÑ µ¥ÀÌŸº£À̽º
¸ðµ¨À» 7Àå 1Àý¿¡¼ ¼³¸íÇϰí
DATABASE Interface¿Í Network Interface ±×¸®°í INDEX Generator¿¡ ´ëÇØ¼
°¢°¢ 7Àå 2Àý, 7Àå 3Àý, 7Àå 4Àý¿¡¼ ¼³¸íÇÑ´Ù.
7.1 µ¥ÀÌŸº£À̽º ¸ðµ¨
µ¥ÀÌŸº£À̽º ¸ðµ¨Àº ÀԷµǴ ¹®¼°¡ Document Repository¿¡ ¾î¶°ÇÑ
¹æ½ÄÀ¸·Î ÀúÀåµÇ´Â°¡¿¡ ´ëÇÑ °³³äÀû ¸ðµ¨ÀÌ´Ù. µ¥ÀÌŸº£À̽º ¸ðµ¨Àº
Object °³³äÀ» Æ÷ÇÔÇϰí Àִµ¥ FOLDER Object¿Í DOCUMENT Object·Î
¼³¸íµÈ´Ù.
7.1.1 FOLDER Object
FOLDER´Â DOCUMENTÀÇ ÀúÀå â°íÀÌ´Ù. ¾î¶² ƯÁ¤ µ¥ÀÌŸº£À̽º¸¦
¸¸µé°íÀÚ ÇÒ °æ¿ì¿¡´Â DBA(DATABASE Administrator)°¡ ¸ÕÀú root-FOLDER¸¦
Document Repository¿¡ ¸¸µé¾î¾ß ÇÑ´Ù.
ÀÏ´Ü root-FOLDER°¡ ¸¸µé¾îÁö¸é ÀÌ µ¥ÀÌŸº£À̽º¿¡ Á¢±Ù ±ÇÇÑÀ» °¡Áö´Â
»ç¿ëÀÚµéÀÌ µ¥ÀÌŸ¸¦ ÀÔ·ÂÇϰųª Ãâ·ÂÇØ º¼ ¼ö ÀÖ´Ù.
¾Æ·¡ÀÇ ±×¸²À» º¸¸é NEWS FOLDER¿Í PEOPLE FOLDER°¡ Àִµ¥ NEWS FOLDER´Â
½Å¹® ±â»ç°¡ ÀúÀåµÇ´Â â°í¸¦ PEOPLE FOLDER´Â °³ÀÎÀÇ È¨ ÆäÀÌÁö°¡
ÀúÀåµÇ´Â â°í¸¦ ¿¹¸¦ µé¾î ³ªÅ¸³½ °ÍÀÌ´Ù.
<±×¸² 3> FOLDER Object
FOLDER¿¡ ´ëÇÑ Requirements´Â ´ÙÀ½°ú °°´Ù.
- ¸ðµç FOLDER´Â DOCUMENT¸¦ °¡Áö°Å³ª sub-FOLDER¸¦ °¡Áú ¼ö ÀÖ´Ù.
- root-FOLDER´Â Password ÆÄÀÏÀ» °¡Áö°í ÀÖ¾î¼ Account¿Í Password¸¦
¾Ë°íÀÖ´Â »ç¿ëÀÚ¿¡°Ô Á¢±Ù ±ÇÇÑÀÌ ÁÖ¾îÁø´Ù.
- root-FOLDER´Â DBA(DATABASE Administrator)¿¡ ÀÇÇØ¼ ¸¸µé¾îÁö°í
sub-FOLDERµéÀº root-FOLDER¿¡ Á¢±Ù ±ÇÇÑÀ» °¡Áö°í ÀÖ´Â »ç¿ëÀÚµéÀÌ ¸¸µé ¼ö
ÀÖ´Ù.
FOLDER Object¿Í °ü·ÃµÈ Operation¿¡´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.
- FLD_Access(root-FOLDER name, Account, Password)
¾î¶² FOLDER¿¡ Á¢±ÙÇϱâ À§Çؼ´Â ¹Ýµå½Ã root-FOLDERºÎÅÍ Á¢±Ù ±ÇÇÑÀ»
¾ò¾î¾ß Çϸç ÀÌ ÇÔ¼ö°¡ ÀÌ¿ëµÈ´Ù. Account¿Í Password°¡ ¿Ã¹Ù·Î
ÁöÁ¤µÇ¾ú´Ù¸é FOLDER reference¸¦ ¹ÝȯÇÑ´Ù.
- FLD_Make(FOLDER reference, FOLDER name)
sub-FOLDER¸¦ ¸¸µé ¶§ »ç¿ëµÈ´Ù.
- FLD_Remove(FOLDER reference)
FOLDER reference°¡ °¡¸®Å°´Â FOLDER¸¦ »èÁ¦ÇÑ´Ù.
- FLD_GetReference(FOLDER reference, FOLDER name)
sub-FOLDER¿¡ ´ëÇÑ FOLDER reference¸¦ ¾ò±â À§Çؼ »ç¿ëÇÑ´Ù.
- FLD_List(FOLDER reference)
FOLDER°¡ °¡Áö´Â ¸ðµç sub-FOLDERÀÇ nameÀ» ¹ÝȯÇÑ´Ù.
7.1.2 DOCUMENT Object
¾Õ¿¡¼ ¼³¸íÇÏ¿´µíÀÌ ÀԷµǴ ¹®¼´Â NEWS ÇüÅÂ¿Í HTML ÇüÅ·ΠÀúÀåµÇ´Âµ¥
ÀÌ ¹®¼µé ÇϳªÇϳª°¡ DOCUMENT Object¿¡ ÇØ´çµÈ´Ù.
DOCUMENT Object¿Í °ü·ÃµÈ Operation¿¡´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.
- DOC_GetFormat(DOCUMENT reference)
DOCUMENT reference¿¡ ÀÇÇØ¼ ÁöÁ¤µÇ´Â ¹®¼°¡ NEWS ¹®¼ÀÎÁö HTML ¹®¼ÀÎÁö¸¦
¾Ë ¼ö ÀÖ´Ù.
- DOC_GetSEARCHString(DOCUMENT reference)
DOCUMENTÀÇ SEARCH stringÀ» ¾ò°íÀÚ ÇÒ °æ¿ì¿¡ »ç¿ëÇÑ´Ù.
- DOC_ToCGIParameter(DOCUMENT reference)
- DOC_ToReference(CGI Parameter)
DOC_ToCGIParameter ¿Í DOC_ToReference ´Â ¼·Î ¿¬°üµÈ ÇÔ¼ö·Î½á
DOC_ToCGIParameter ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ DOCUMENT reference¸¦ stringÀ¸·Î º¯È¯ÇÒ ¼ö
ÀÖ°í º¯È¯µÈ stringÀº ³×Æ®¿öÅ©¸¦ ÅëÇØ¼ Àü´ÞÀÌ °¡´ÉÇÏ´Ù.
ÀÌ stringÀº DOC_ToReference ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ ´Ù½Ã DOCUMENT reference·Î
º¹±ÍµÉ ¼ö ÀÖ´Ù.
7.2 DATABASE Interface
DATABASE Interface´Â ¿ÜºÎ¿¡ °ø°³µÇ´Â ÀÎÅÍÆäÀ̽º·Î½á ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇØ¼
µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ¿¡ ¹®¼¸¦ ÀÔ·ÂÇϰųª ÀúÀåµÇ¾î ÀÖ´Â ¹®¼¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.
DATABASE Interface´Â FOLDER Object Methods¿Í DOCUMENT
Object Methods ±×¸®°í IO MethodsÀÇ ¼¼ ºÎºÐÀ¸·Î ³ª´µ¾îÁ® ÀÖ´Ù.
7.2.1 FOLDER Object Methods
FLD_Access(root-FOLDER name, Account, Password)
- Arguments
- root-FOLDER name : type String
- Account to this FOLDER : type String
- Password : type String
- Returns
- root-FOLDER reference : means Success
- NULL : means Error
- Errors (Global variable is set)
- -1 : root-FOLDER name is incorrect
- -2 : Account doesn't exist
- -3 : Password incorrect
FLD_Make(FOLDER reference, FOLDER name)
- Arguments
- FOLDER reference
- FOLDER name : type String
- Returns
- 1 : means Success
- -1 : means FOLDER already exists
- -2 : means Permission denied
FLD_Remove(FOLDER reference)
- Arguments
- Returns
- 1 : means Success
- -1 : means Permission denied
FLD_GetReference(FOLDER reference, FOLDER name)
- Returns
- sub-FOLDER reference : means Success
- NULL : means Error
- Errors (Global variable is set)
- -1 : means FOLDER reference is incorrect
- -2 : means FOLDER name is incorrect
FLD_List(FOLDER reference)
7.2.2 DOCUMENT Object Methods
DOC_GetFormat(DOCUMENT reference)
DOC_GetSEARCHString(DOCUMENT reference)
DOC_ToCGIParameter(DOCUMENT reference)
- Returns
- CGI Parameter : type String
DOC_ToReference(CGI Parameter)
- Returns
- 1 : means Success
- -1 : means Error
7.2.3 IO Methods to DB
NEWS ¹®¼¿Í HTML ¹®¼¸¦ ÀÔÃâ·Â ÇÒ ¶§ ÀÌ¿ëµÇ´Â ÇÔ¼öµéÀÌ´Ù.
DB_Query(FOLDER reference, sub-SEARCH string)
sub-SEARCH stringÀ» °¡Áö´Â ¸ðµç DOCUMENT referenceµéÀ»
standard outputÀ¸·Î Ãâ·ÂÇÑ´Ù.
DB_GetDOCReference(File Descriptor)
DB_Query °á°ú¸¦ ¹Þ¾Æ¼ DOCUMENT reference¸¦ Çϳª¾¿ ¾òÀ» ¼ö ÀÖ´Ù.
DB_NEWSIn(FOLDER reference, SEARCH string, text URL, text string,
image URL)
DB_NEWSOut(DOCUMENT reference)
NEWS ¹®¼¸¦ standard outputÀ¸·Î Ãâ·ÂÇÑ´Ù.
DB_HTMLIn(FOLDER reference, SEARCH string, URL)
DB_HTMLOut(DOCUMENT reference)
HTML ¹®¼¸¦ standard outputÀ¸·Î Ãâ·ÂÇÑ´Ù.
7.3 Network Interface
Network Interface´Â FTP¿Í HTTP ÇÁ·ÎÅäÄÝ µîÀ» Áö¿øÇϴµ¥
µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ ³»ºÎÀûÀ¸·Î »ç¿ëµÇ´Â °ÍÀ̸ç CGI ÇÁ·Î±×·¥¿¡¼ ÀÌ¿ëÇÏ´Â
ÀÎÅÍÆäÀ̽º´Â ¾Æ´Ï´Ù.
7.4 INDEX Generator
INDEX Generator´Â DOCUMENT°¡ ÀÔ·ÂµÉ ¶§ °¢ ´Ü¾î¿¡ ´ëÇØ¼ index¸¦ ¸¸µé¾î
³ªÁß¿¡ ºü¸¥ °Ë»öÀ» ÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù.
INDEX Generator´Â µ¶¸³ÀûÀ¸·Î ±¸ÇöµÇ´Â ¸ðµâÀÌ¸ç µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ ³»ºÎÀûÀ¸·Î
»ç¿ëµÈ´Ù. ÇöÀç INDEX Generator´Â ±¸ÇöµÇ¾î ÀÖÁö ¾Ê´Ù.
8. °á·Ð°ú ÇâÈÄ °èȹ
Áö±Ý±îÁö Æ÷Ç×°ø´ë ÀüÀڽŹ® ±¸Á¶¸¦ CGI ÇÁ·Î±×·¥°ú µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀ»
Áß½ÉÀ¸·Î ¼³¸íÇÏ¿´´Ù.
Æ÷Ç×°ø´ë ÀüÀڽŹ®Àº Web browser¸¦ ÀÌ¿ëÇØ¼ ¸ðµç ÀÛ¾÷ÀÌ ÀÌ·ç¾îÁöµµ·Ï
µÇ¾îÀֱ⠶§¹®¿¡ ½Å¹® ±â»çÀÇ ÀԷ°ú Ãâ·Â¿¡ Á¦ÇÑÁ¡ÀÌ ¸¹Àº ÆíÀÌ´Ù.
À̰ÍÀº ÇöÀçÀÇ WWW ±â¼ú·Î´Â ½Å¹® ±â»ç¸¦ Á÷Áý ÀúÀÛÇϰųª Ãâ·ÂµÇ´Â ½Å¹® ±â»çÀÇ
¸ð¾çÀ» ¹Ù²Û´Ù°Å³ª ÇÏ´Â ÀÏÀÌ ½±Áö ¾Ê±â ¶§¹®ÀÌ´Ù.
ÀԷ°ú Ãâ·Â¿¡ Á¦ÇÑÁ¡ÀÌ ¸¹ÀÌ ÀÖÁö¸¸ ÀÌ ±ÛÀÌ ºñ½ÁÇÑ ÀÏÀ» ÇϰíÀÚ ÇÏ´Â
»ç¶÷µé¿¡°Ô µµ¿òÀÌ µÇ±æ ¹Ù¶õ´Ù.
¾ÕÀ¸·ÎÀÇ °èȹÀº ÇöÀç ±¸ÇöµÇ¾î ÀÖÁö ¾Ê´Â INDEX Generator¸¦ ±¸ÇöÇÒ
¿¹Á¤À̸ç INDEX GeneratorÀÇ ±¸ÇöÀÌ ³¡³ª´Â ´ë·Î ¸ðµç ÇÁ·Î±×·¥µéÀ»
packageÈÇÏ¿© beta VersionÀ» ¹èÆ÷ÇÒ ¿¹Á¤ÀÌ´Ù.
Âü°í ÀÚ·á
- Á¶¼±ÀϺ¸
URL : http://www.chosun.com
- Áß¾ÓÀϺ¸
URL : http://www.joongang.co.kr
-
"¿ùµå¿ÍÀ̵å À¥°ú µ¥ÀÌŸº£À̽º ½Ã½ºÅÛÀÇ ÅëÇÕ", ±èÆòö, ±è»ó¿í, Á¦ 2ȸ
WWW-KR Workshop °ÀÇ ÀÚ·á
URL : http://sharon.comeng.chungnam.ac.kr/~dolphin/ws2/content/TS1-3/
-
"The Common Gateway Interface", NCSA CGI Documentation
URL : http://hoohoo.ncsa.uiuc.edu/cgi/
-
"¼¹ö ÀÎÅÍÆäÀ̽º", ÃÖÀ±¼ö, Á¦ 2ȸ WWW-KR Workshop °ÀÇ ÀÚ·á
URL : http://sharon.comeng.chungnam.ac.kr/~dolphin/ws2/content/TS1-1/
- "Surfin' Network Resources Across the Web", Luca Deri, IEEE
Second Workshop on Systems Management, Toronto, Canada, June 1996