Beginning Bioinformatics for Biologists
  ÇÁ·Î±×·¡¹Ö ½ÃÀÛÇϱâ
  Writer : Seyeon Weon   Updated : 10-26   Hit : 7201   Updates 
ÀÏ´Ü ÀڽۨºÎÅÍ °¡Áö´Â °ÍÀÌ °¡Àå Áß¿äÇÕ´Ï´Ù. »ý¹° ºÐ¾ßÀÇ Àϵ鿡¼­ ÇÊ¿äÇÑ perl ÇÁ·Î±×·¡¹ÖÀº °áÄÚ ¾î·Á¿î °Íµµ º¹ÀâÇÑ °Íµµ ¾Æ´Õ´Ï´Ù. ¹°·Ð perl script´Â º¹ÀâÇØÁú ¼ö ÀÖ´Â Á¤µµ¿¡ ÇѰ谡 ÀÖ´Â °ÍÀÌ ¾Æ´Ï´Ï, ¾ó¸¶µçÁö º¹ÀâÇÑ °ÍÀ» ¸¸µå´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. ÇÏÁö¸¸ ¿ì¸® ÀÏÀÇ ´ëºÎºÐÀº ÀÌ·± º¹ÀâÇÑ °ÍµéÀÌ ¾Æ´Ï°í, ±âº»ÀûÀÎ °Íµé¸¸ ¾Ë¸é Å« Èû µéÀÌÁö ¾Ê°í ÇØ³¾ ¼ö ÀÖ´Â °ÍµéÀÔ´Ï´Ù. ¹®Á¦´Â ¿ë±â¸¦ °¡Áö°í ½ÃÀÛÀ» ÇÏ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í´Â Á¶±Ý Á¤¼º°ú ½Ã°£À» µé¿©¼­ °øºÎ¸¦ ÇØ³»´Â °ÍÀÔ´Ï´Ù. ¸î ´Þ Á¤µµ °í»ýÀ» ÇØ¼­ ÀÌ·¸°Ô ÇÑ ¹ø ÇØµÎ¸é, Æò»ýÅä·Ï ÀÚ½ÅÀÇ °¡Ä¡¸¦ ³ô¿©ÁÖ´Â ±â¼úÀÌ µÉ °ÍÀÔ´Ï´Ù.
 
ÇÁ·Î±×·¡¹ÖÀ̶õ ÄÄÇ»ÅͰ¡ ¾Ë¾Æº¸µµ·Ï ¾î¶² ÀÏÀÇ ¼öÇà¿¡ ÇÊ¿äÇÑ ÀÏ·ÃÀÇ ¸í·ÉµéÀ» Àû¾îÁÖ´Â °ÍÀÔ´Ï´Ù. ÄÄÇ»Åʹ ½ÃŰ´Â ´ë·Î¸¸ ÇÕ´Ï´Ù. ¿À´Ã³¯ ¿ì¸®°¡ »ç¿ëÇÏ´Â ÄÄÇ»Å͵éÀº Æù ³ëÀ̸¸ ¹æ½Ä ÄÄÇ»ÅͶó°í ÇØ¼­ ±âº»ÀûÀ¸·Î °°Àº ¸ð¾çÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ÄÄÇ»ÅÍ¿¡¼­ ½ÇÁ¦·Î °è»êÀÌ ¼öÇàµÇ´Â ºÎºÐÀÌ CPU¶ó´Â °ÍÀ» ¸ð¸£´Â »ç¶÷Àº ¾øÀ» ÅÍÀ̰í, ¿À´Ã³¯ ¿ì¸®°¡ »ç¿ëÇϴ CPU Çϳª¿¡´Â °ÅÀÇ 1¾ï °³¿¡ ´ÞÇϴ Ʈ·£Áö½ºÅ͵éÀÌ ¿¬°áµÇ¾î Á¤ÇØÁø ¿©·¯ °¡Áö ±â´ÉµéÀ» ¼öÇàÇϵµ·Ï ²Ù¸çÁ® ÀÖ½À´Ï´Ù. CPUÀÇ ÀÛµ¿Àº ¹°·Ð °íÁ¤ÀûÀÎ °ÍÀÌ ¾Æ´Ï°í, ¿ì¸®°¡ ³Ö¾îÁØ input¿¡ µû¶ó¼­ outputÀÌ ´Þ¶óÁöµµ·Ï ÀÛµ¿À» ÇÕ´Ï´Ù. ±×¸®°í ¿À´Ã³¯ ¿ì¸®°¡ »ç¿ëÇÏ´Â µðÁöÅÐ ÄÄÇ»Åʹ µ¿ÀÏÇÑ input¿¡ ´ëÇØ¼­´Â Ç×»ó µ¿ÀÏÇÑ outputÀÌ ³ª¿Àµµ·Ï ¸¸µé¾îÁ® ÀÖ½À´Ï´Ù. (À̸¦ "deterministicÇÏ´Ù"¶ó°í ÇÕ´Ï´Ù.)
 
CPU »óÀÇ ¾î¶² ±â´ÉÀÌ ÀÛµ¿À» Çϵµ·Ï ¸¸µé±â À§Çؼ­´Â, ÀÌÁø¼ö·Î µÈ ¼ÒÀ§ ±â°è¾î¶ó´Â °ÍÀ» ÀÔ·ÂÀ» ÇØÁÖ°Ô µË´Ï´Ù. ÀÌ ±â°è¾î°¡ ½ÇÁ¦·Î CPU°¡ ÀÌÇØ¸¦ ÇÏ´Â ¸í·ÉÀÔ´Ï´Ù. ±×·¸´Ù¸é ÇÁ·Î±×·¡¹Ö ¾ð¾î¶õ ¹«¾ùÀϱî¿ä? ¿À´Ã³¯ ¿ì¸®°¡ »ç¿ëÇϰí ÀÖ´Â ÄÄÇ»ÅÍÀÇ ¿ø¾ÈÀ» ¸¸µé¾î³½ Æù ³ëÀ̸¸Àº °è»êÀÇ ÃµÀç·Îµµ À¯¸íÇѵ¥, ´Ù¸¥ »ç¶÷µéÀÌ ±â°è¾î·Î ÇÁ·Î±×·¡¹ÖÀ» ÇØ³»Áö ¸øÇÏ´Â °ÍÀ» ÀǾÆÇØ Çß´Ù°í ÇÏ´Â À̾߱⵵ ÀüÇØÁý´Ï´Ù. ¿ì¸® °°Àº º¸Åë »ç¶÷µéÀº ¹°·Ð ±â°è¾îº¸´Ù´Â ÈξÀ Àΰ£ÀûÀÎ ¾ð¾î°¡ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ µÑ »çÀÌÀÇ °£°ÝÀ» ¸Þ¿ì±â À§Çؼ­´Â ÀÌ·¸°Ô ÇÏ¸é µÇ°ÚÁÒ. ¹®¹ý°ú »ç¿ëÇÒ ¼ö ÀÖ´Â ´Ü¾î µîÀÌ Á¤È®ÇÏ°Ô Á¤ÇØÁø ¾ð¾î°¡ À־, ÀÌ ¾ð¾îÀÇ ±ÔÁ¤¿¡ µû¶ó¼­ »ç¶÷ÀÌ Àû¾îÁÖ¸é, ±×°ÍÀ» ´Ù½Ã ±â°è¾î·Î ¹ø¿ªÀ» ÇØÁÖ¸é µÇ°ÚÁÒ. ÀÌ·¯ÇÑ ¹ø¿ªÀ» ÇØÁÖ´Â ¼ÒÇÁÆ®¿þ¾î¸¦ compiler¶ó°í ÇÕ´Ï´Ù. perlÀÇ °æ¿ì¿¡´Â interpreter¶ó°í Çϴµ¥, »ç½Ç»ó °°Àº °ÍÀ̶ó°í º¸¸é µË´Ï´Ù. compiler¿¡¼­´Â ±â°è¾î ÄÚµå·Î µÈ ÆÄÀÏÀÌ µû·Î ¸¸µé¾îÁö°í, ÀÌ ÆÄÀÏÀ» ´Ù½Ã ½ÇÇà(Áï, CPU¿¡°Ô º¸³»´Â °Í)À» ÇÏ´Â °ÍÀ̰í, interpreter¿¡¼­´Â »ç¶÷ÀÌ Â§ Äڵ尡 µû·Î ÆÄÀÏ·Î ¸¸µé¾îÁöÁö ¾Ê°í ¸Þ¸ð¸® »ó¿¡¼­¸¸ ¹ø¿ªÀÌ µÇ¾î¼­ °ðÀå ½ÇÇàÀÌ µË´Ï´Ù. ±×¸®°í, »ç¶÷ÀÌ Â§ Äڵ带 ¼Ò½º ÄÚµå¶ó°í ÇѴٴ °Í Á¤µµ´Â À̹̠´Ùµé ¾Ë°í ÀÖÀ» ÅÍÀ̰í¿ä.
 
ÀÌ·¯ÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀÌ °¡Áö´Â °¡Àå ±âº»ÀûÀΠƯ¡Àº, »ç¶÷ÀÌ ¹®¹ýÀ» ¾î±âÁö ¾Ê°í Â®À» °æ¿ì¿¡´Â ¾Ö¸ÅÇÑ Á¡ÀÌ Àִٰųª È¥µ¿ÀÌ µÈ´Ù°Å³ª ÇÏ´Â ¹®Á¦°¡ ÀüÇô ¾øÀÌ compiler°¡ ¿Ïº®ÇÏ°Ô ºÐ¼®À» ÇØ¼­ ¹ø¿ªÀ» ÇÒ ¼ö°¡ ÀÖÀ¸¸ç, ±× ¹ø¿ª ¼Óµµ ¶ÇÇÑ ¸Å¿ì ºü¸£´Ù´Â Á¡ÀÔ´Ï´Ù. (ÀÌ·¯ÇÑ ¼ºÁúÀº ÀÌµé ¹®¹ýÀÌ Àü»êÇÐ ¿ë¾î·Î context free grammar¶ó°í ÇÏ´Â class¿¡ ¼ÓÇϱ⠶§¹®ÀÔ´Ï´Ù.) ±×¸®°í ÀÌ·¯ÇÑ ¹ø¿ª Àâ¾÷À» ÇÒ ¶§¿¡ compiler°¡ ÇÏ´Â Áß¿äÇÑ ÀÏ ÁßÀÇ Çϳª·Î, ÁÖ¾îÁø ¼Ò½º Äڵ忡¼­ ÃÖ´ëÇÑ ½ÇÇà ¼Óµµ°¡ ºü¸¥ ±â°è¾î ¹ø¿ªÀÌ ³ª¿Ã ¼ö ÀÖµµ·Ï ¿©·¯ °¡Áö º¹ÀâÇÑ º¯ÇüµéÀ» °¡ÇÏ°Ô µÇ´Âµ¥, À̸¦ "optimizationÀ» ÇÑ´Ù"¶ó°í ÇÕ´Ï´Ù. ¹°·Ð ¼Ò½º Äڵ带 § »ç¶÷ÀÇ Àǵµ¿¡¼­ ¹þ¾î³ª°Ô´Â ÇÏÁö ¾ÊÀ¸¸ç, ¿¹¸¦ µé¾î ¼ø¼­ÀÇ Àç¹èÄ¡ µî°ú °°ÀÌ ½ÇÁ¦·Î ¼öÇàµÇ´Â ÀÏ¿¡´Â º¯È­°¡ ¾øÀÌ ½ÇÇà ¼Óµµ¸¸ ´õ ºü¸£µµ·Ï ÇØÁÖ´Â °ÍÀÔ´Ï´Ù.
 
±× ´ÙÀ½ library¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇÊ¿äÇѵ¥, ¿ì¸®ÀÇ °æ¿ì¿¡´Â BioPerlÀ̶õ °ÍÀÌ °¡Àå Áß¿äÇÑ libraryÀÔ´Ï´Ù. library¿¡ ´ëÇÑ ¼³¸íÀº À̰÷¿¡¼­ ¹Ýº¹Àº ÇÏÁö ¾ÊÀ¸´Ï, "BioPerlÀ̶õ"¿¡¼­ ¹Ýµå½Ã Àо±â¸¦ ¹Ù¶ø´Ï´Ù. Çö½Ç¼¼°è¿¡¼­ÀÇ ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¹Ö ÀÛ¾÷µéÀº ÇÊ¿äÇÑ libraryµéÀ» ºÒ·¯¼­ ÀÚ½ÅÀÌ ¿øÇÏ´Â ¸ñÀû¿¡ ¸Âµµ·Ï Â¥±é±â¸¦ ÇÏ´Â °ÍÀÔ´Ï´Ù. µû¶ó¼­ compiler°¡ ÇØ¾ß ÇÏ´Â ÀÏ ÁßÀÇ Çϳª´Â, ¿ì¸®°¡ § ¼Ò½º Äڵ带 ±â°è¾î·Î ¹ø¿ªÇÏ´Â Àϰú µ¿½Ã¿¡, ¿ì¸®°¡ § ¼Ò½º ÄÚµå ¼Ó¿¡¼­ »ç¿ëÀÌ µÈ libraryµéÀ» Ã£¾Æ¼­ ¿¬°áÀ» ½ÃŰ´Â ÀÏÀÔ´Ï´Ù. À̸¦ "link¸¦ ÇÑ´Ù"¶ó°í ÇÕ´Ï´Ù. Áö±Ý ÀûÀº °ÍÀº ´õ ÀϹÝÀûÀÎ ¾ð¾îµé¿¡¼­ ÀÛµ¿ÇÏ´Â ¹æ½ÄÀ̰í, perlÀÇ °æ¿ì¿¡´Â ¿ì¼± library¶ó´Â ¿ë¾îº¸´Ù´Â moduleÀ̶õ ¿ë¾î¸¦ ´õ ÀϹÝÀûÀ¸·Î »ç¿ëÇÑ´Ù´Â Á¡ÀÌ ÀÖÀ¸¸ç, moduleÀÇ ¼Ò½º Äڵ带 ºÒ·¯¼­ ¿ì¸®°¡ § ¼Ò½º ÄÚµå ¼Ó¿¡ °í½º¶õÈ÷ »ðÀÔÀ» ÇÏ´Â ¹æ½ÄÀ¸·Î ÀÛµ¿À» ÇÏ´Â °ÍÀÌÁö¸¸, ¿ÜÇüÀûÀÎ È¿°ú´Â µ¿ÀÏÇÑ °ÍÀÌ µË´Ï´Ù.
 
¸¸¾à perl interpreter¿Í perl moduleµéÀÌ ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ ¼Ó¿¡ ¸¶·ÃÀÌ µÇ¾îÀÖ´Ù¸é, ÀÌÁ¦ ¼Ò½º Äڵ带 ÀÛ¼ºÇÒ ¶§ »ç¿ëÇÒ ¹®¼­ ÆíÁý±â°¡ ÇÊ¿äÇϰÚÁÒ? (perl interpreter¿Í perl moduleÀÇ ¼³Ä¡¿¡ ´ëÇÑ ³»¿ëÀº ´Ù¸¥ ±Û¿¡¼­ Àû°Ú½À´Ï´Ù.) ¹®¼­ ÆíÁý±â¿¡ ´ëÇÑ ³»¿ëÀº "¹®¼­ ÆíÁý±â »ç¿ëÇϱâ"¿¡¼­ Àо±â ¹Ù¶ø´Ï´Ù. ÀÌÁ¦ ÇÊ¿äÇÑ °ÍÀº ´Ù °®Ãá ¼ÀÀ̷২ä. ±×¸®°í´Â ÀÌ ¸ðµç °ÍÀº ´Ù À¯´Ð½º(¸®´ª½º ¶Ç´Â cygwin) È¯°æ¿¡¼­ ¼öÇàÇÏ´Â °ÍÀ» ±âº»À¸·Î Çϰí ÀÖ´Ù´Â Á¡Àº Àß ¾Ë°í ÀÖÁÒ? ´õ ±¸Ã¼ÀûÀ¸·Î´Â bash¶ó´Â shellÀÌ Á¦°øÇØÁִ ȯ°æÀÌ µÇ´Â °ÍÀ̰í¿ä. (¾ÆÁ÷ ÀûÁö ¾Ê¾ÒÁö¸¸, ÀÌ ºÎºÐ¿¡ ´ëÇØ¼­´Â ´Ù¸¥ ±Û¿¡¼­ ¼³¸íÀÌ µË´Ï´Ù.)
 
ÀÌÁ¦ ¸ðµç Áغñ°¡ µÇ¾úÀ¸´Ï, ¹®¼­ ÆíÁý±â¸¦ ¶ç¿ì°í perl scriptµéÀ» ¸¸µé¾îº¸µµ·Ï ÇսôÙ.
 
¾Æ·¡ ³»¿ëÀ» ´ãÀº plain text ÆÄÀÏÀ» ¸¸µé¾î¼­, ÀÚ½ÅÀÌ ¿øÇϴ ÆÄÀϸíÀ¸·Î ÀúÀåÀ» ÇØ³»Áö ¸øÇÏ´Â »ç¶÷ÀÌ ÀÌ ±ÛÀ» ¿©±â±îÁö Àаí ÀÖ´Â ºÒ»ó»ç¾ß ¼³¸¶ »ý±æ ¸®°¡ ¾øÀ» °Í °°±º¿ä.
 
print "I feel great!";
 
ÀÌ·¸°Ô ÇÏ¸é ¾È ÁÁ´Ù´Â °ÍÀ» °­Á¶ÇÏ´Â Àǹ̿¡¼­ t1.plÀ̶õ ÆÄÀϸíÀ¸·Î ÀúÀåÀ» Çß´Ù°í ÇսôÙ. ^^; ¿ì¼±, .plÀº perl script ÆÄÀÏÀÇ È®ÀåÀÚ·Î ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â °ÍÀÔ´Ï´Ù. ¹°·Ð ´Ù¸¥ È®ÀåÀÚ¸¦ »ç¿ëÇØµµ µÇÁö¸¸, °­Á¦µÇ´Â ±ÔÁ¤Àº ¾Æ´ÏÁö¸¸ ¸ðµÎ°¡ Áö۰í ÀÖ´Â ¾à¼Ó°ú °°Àº °ÍÀÔ´Ï´Ù. t1.pl, t2.pl, t3.pl °°Àº ½ÄÀ¸·Î ÇØµÎ¸é ³ªÁß¿¡ Ȳ´çÇÏ°Ô µÇ°ÚÁÒ. ÆÄÀϸíÀ¸·Î´Â ¾î´À ÆÄÀÏÀÌ ¾î¶² ÀÏÀ» Çϵµ·Ï Â¥³õ¾Ò´ÂÁö ÁüÀÛµµ ¾È µÉ ÅÍÀÌ´Ï... µû¶ó¼­, Áö³ªÄ¡°Ô ±æÁö´Â ¾Ê´Â Á¤µµ·Î ¿µ¾î ´Ü¾îµéÀ» Á¦´ë·Î »ç¿ëÇØ¼­ ÆÄÀϸíÀ» ¸¸µå´Â °ÍÀº ´ç¿¬È÷ ÇØ¾ß ÇÏ´Â ÀÏÀÔ´Ï´Ù.
 
print´Â ÇÔ¼ö¸íÀ̰í, µû¿ÈÇ¥ ¾È¿¡ ÀÖ´Â °ÍÀº ÀÌ ÇÔ¼ö¿¡ inputÀ¸·Î µé¾î°¥ ºÎºÐÀÔ´Ï´Ù. µû¿ÈÇ¥ ÀÚü´Â input¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù. ³¡¿¡ ÀÖ´Â ;Àº ¿©±â±îÁö°¡ ±¸ºÐµÇ´Â ´ÜÀ§ÀÓÀ» ¾Ë·ÁÁÖ´Â ÀÏÁ¾ÀÇ ¸¶Ä§Ç¥¿Í °°Àº ¿ªÇÒÀ» ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¼¼¹ÌÄÝ·ÐÀ» Àؾî¹ö¸®°í ºü¶ß¸®¸é ¾È µË´Ï´Ù. (ÀÌ °æ¿ì¿¡´Â »ç½Ç ¾ø¾îµµ ½ÇÇàÀÌ µÇ´Âµ¥, À̰ÍÀº ÇÑ Á٠¥¸®¶ó¼­ ±×·± °ÍÀÔ´Ï´Ù. ÀÌ·± °æ¿ì´Â ½ÇÁ¦ »óȲ¿¡¼­´Â ¾ø´Â ÀÏÀ̰ڱº¿ä.)
 
±× ´ÙÀ½¿¡´Â bash prompt »óÅ¿¡¼­,
 
perl t1.pl
 
À̶ó°í ÀÔ·ÂÇÏ°í ¿£ÅÍ۸¦ ÃÄÁÝ´Ï´Ù. ±×·³ È­¸é¿¡
 
I feel great!
 
¶ó°í ³ª¿À°Ô µÇÁÒ. ¸¸¾à ÇÑ ¶óÀÎ ´ë½Å¿¡ ¾Æ·¡¿Í °°ÀÌ µÎ ¶óÀÎÀ» ÀÔ·ÂÀ» ÇØÁÖ¸é ¾î¶»°Ô µÉ±î¿ä?
 
print "I feel great!";
print "I feel really great!";
 
¿¹»ó¹ÛÀ¸·Î ´ÙÀ½°ú °°ÀÌ ³ª¿À°Ô µË´Ï´Ù.
 
I feel great!I feel really great!
 
»ó´çÈ÷ ½Ç¸Á½º·´ÁÒ? ¿ì¸®ÀÇ Àǵµ¸¦ ÆÄ¾ÇÇØ¼­ ´ÙÀ½ ÁÙ·Î °¡´Â °Í±îÁö´Â ¸ø ÇÒÁö¶óµµ, ½ÉÁö¾î´Â ¶ç¾î¾²±âÁ¶Â÷ ÇØÁÖÁö ¸øÇÏ´Ù´Ï ¸»ÀÔ´Ï´Ù. ÄÄÇ»ÅÍ´Â ¿ÏÀüÈ÷ ¿ì¸®°¡ ½ÃŰ´Â ´ë·Î¸¸ ÇÕ´Ï´Ù. À§ perl script ¾î´À °÷¿¡µµ ´ÙÀ½ ÁÙ·Î °¡¶ó°Å³ª ÇÑ Ä­À» ¶ç¿ì¶ó´Â ¸í·ÉÀÌ ¾ø½À´Ï´Ù. ÄÄÇ»ÅÍ´Â ½ÃŰ´Â ±×´ë·Î¸¦ ÇÑ °Í»ÓÀÔ´Ï´Ù.
 
print "I feel great!\n";
print "I feel really great!";
 
ó·³ ÀÔ·ÂÀ» ÇØÁÖ¸é ¿ì¸®°¡ ¿øÇÏ´Â ´ë·Î µÎ ÁÙ¿¡ Á¦´ë·Î ÀμⰡ µË´Ï´Ù. "\n"ÀÌ ¹Ù·Î À̸¦ ÇØÁÖ°Ô ÇÏ´Â ºÎºÐÀÔ´Ï´Ù. ¿ì¸®°¡ ¿øÇÏ´Â °ÍÀº ´ÙÀ½ ÁÙ·Î °¡¶ó´Â °Í, Áï ¿£ÅÍŰ¿¡ ÇØ´çÇÏ´Â °ÍÀε¥, ¿£ÅÍ۸¦ ÆíÁý±â¿¡¼­ Á÷Á¢ ÀÔ·ÂÀ» ÇØ°¡Áö°í¼­´Â ¿øÇÏ´Â ¹Ù¸¦ ´Þ¼ºÇÒ ¼ö°¡ ¾ø´Ù´Â ½É°¢ÇÑ ¹®Á¦°¡ ÀÖ´Ù´Â °ÍÀº ±»ÀÌ ¼³¸íÇÒ Çʿ䰡 ¾ø°ÚÁÒ? ¿£ÅÍŰ¿Í °°Àº ¹®Á¦¸¦ °¡Áö´Â °ÍµéÀÌ Áà Àִµ¥, À̵éÀº ¸ðµÎ "\ + alphabet" ÇüÅ·ΠÀÔ·ÂÀ» ÇØ¼­ ÇØ°áÀ» ÇØÁÖ°Ô µË´Ï´Ù. ±×·³ \¸¦ ÀÔ·ÂÇÏ°í ½ÍÀ¸¸é ¾î¶»°Ô ÇÏ´À³Ä°í¿ä? À̶§´Â "\\"¶ó°í ÀÔ·ÂÀ» ÇØÁÖ¸é µË´Ï´Ù. °£´ÜÇÏÁÒ?
 
±×·³
 
print "I feel great!\n";print "I feel really great!";
 
¿Í °°ÀÌ ÇÏ¸é ¾î¶»°Ô µÉ±î¿ä? À§¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÕ´Ï´Ù. perl interpreter´Â ¶ç¾î¾²±â³ª ´ÙÀ½ ÁÙ·Î °¡±â µîµîÀº ÀüÇô °³ÀÇÄ¡ ¾Ê½À´Ï´Ù. ±×·¯´Ï±î,
 
print "I feel great!\n";         print "I feel really great!";
 
¶Ç´Â, 
 
print "I feel great!\n";
 
 
 
 
               print "I feel really great!";
 
µµ ¿ÏÀüÈ÷ °°Àº °ÍÀÔ´Ï´Ù. Àû¾îµµ perl interpreter¿¡°Ô´Â... ±×·¸Áö¸¸ ¹°·Ð ÀÌ·¸°Ô ¾û¸ÁÀ¸·Î Àû¾î¼­´Â Á» °ï¶õÇÒ °ÍÀÔ´Ï´Ù. ÀÛ¼ºÇÑ ¼Ò½º ÄÚµå´Â ÀÛ¼ºÀÚ Àڽŵµ ³ªÁß¿¡ ºÁ¾ß Çϰí, ¶§·Î´Â ´Ù¸¥ »ç¶÷ÀÌ µé¿©´Ùº¼ Àϵµ »ý±æ °ÍÀÔ´Ï´Ù. ±×¸®°í ÃÖÃÊ¿¡ Â¥´Â µ¿¾È¿¡µµ ºó¹øÇÏ°Ô ÀÌ¹Ì Â§ ºÎºÐÀ» ÈȾîºÁ °¡¸é¼­ Â¥¾ß ÇÏ´Ï, ´ç¿¬È÷ »ç¶÷ÀÌ ÀÐ±â ÆíÇϵµ·Ï Àß Á¤µ·À» ÇÏ´Â °Íµµ ÇÊ¿äÇÕ´Ï´Ù. (ÀÌ¿¡ ´ëÇØ¼­´Â ´Ù¸¥ ±Û¿¡¼­ ´õ ÀÚ¼¼È÷ Àû°Ú½À´Ï´Ù.)
 
ÀÚ, ÀÌÁ¦ºÎÅͰ¡ ÁøÂ¥ ÇÁ·Î±×·¡¹ÖÀÔ´Ï´Ù.
 
$mood = "I feel great!";
print "$mood\n";
$mood = "I feel really great!";
print $mood;

 
¶ó°í ÀÔ·ÂÀ» ÇØÁÖ¸é ¾î¶»°Ô µÉÁö ÁüÀÛÀÌ µÇ³ª¿ä? ¹°·Ð À§¿Í ¶È°°Àº °á°ú°¡ ³ª¿É´Ï´Ù. ÄÄÇ»ÅÍ »óÀÇ ¸Þ¸ð¸® °ø°£¿¡´Ù $mood¶ó´Â À̸§À» ºÙÀÎ ¹æÀ» Çϳª ¸¸µé¾î¼­, À̰÷¿¡ "I feel great!"¸¦ ÀúÀåÀ» ÇØµÎ°í¼­´Â, print ÇÔ¼öÀÇ inputÀ¸·Î´Â $mood¸¦ ¿ø·¡ÀÇ ¹®Àå ´ë½Å¿¡ »ç¿ëÇÑ °ÍÀÔ´Ï´Ù. ÀÌó·³ À̸§ÀÌ ºÙ¿©Áø ¸Þ¸ð¸® »óÀÇ °ø°£À» º¯¼ö(variable)¶ó°í ÇÕ´Ï´Ù. perl¿¡¼­´Â $¿Í °°Àº Ư¼ö ±âÈ£°¡ Ç×»ó ¾Õ¿¡ ºÙ¾îÀÖÁÒ. (ÀÌ¿¡ ´ëÇØ¼­´Â ³ªÁß¿¡ ´õ ÀÚ¼¼È÷ ¼³¸íÀ» ÇÕ´Ï´Ù.)
 
À§ÀÇ ¼Ò½º ÄÚ½º¿¡¼­ $mood°¡ ÀçÂ÷ »ç¿ëÀÌ µÇ¾úÁÒ. ÀÌ °æ¿ì¿¡ ¾î¶² ÀÏÀÌ ÀϾ °ÍÀϱî¿ä? ¿ø·¡ ÀÖ´ø "I feel great!"´Â »ç¶óÁö°í "I feel really great!"·Î ´ëü°¡ µÈ °ÍÀÔ´Ï´Ù. Áï, º¯¼ö´Â »ý¼öº´Ã³·³ Àç»ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù. ¹°·Ð Á¦ÇѾø´Â Àç»ç¿ëÀÔ´Ï´Ù. ¿©±â±îÁö ÀÌÇØ°¡ µÈ °ÍÀÌ ³Ê¹« ±â»Û ³ª¸ÓÁö, "I feel great!"¸¦ 100¹øÂë È­¸é¿¡ »Ñ¸®°í ½ÍÀ¸¸é ¾î¶»°Ô ÇÏ¸é µÉ±î¿ä?
 
$mood = "I feel great!";
print "$mood\n";
print "$mood\n";
print "$mood\n";
print "$mood\n";
print "$mood\n";
print "$mood\n";
..........
 
ó·³ Áà Àû¾îÁÖ¸é µÇ°ÚÁÒ? ±×·±µ¥ ÀÌ·¸°Ô ÇÏ´Â °ÍÀÌ È¿À²ÀûÀÌÁö ¸øÇÏ´Ù´Â °ÍÀº ´©±¸³ª ´À³¢´Â Á¡ÀÏ ÅÍÀ̰í¿ä.
 
$mood = "I feel great!";
for ($i=0; $i < 100; $i++) {
    print "$mood\n";
}
 
ó·³ ÇÏ´Â °ÍÀÌ Á¤´äÀÔ´Ï´Ù. 100¹ø ¹Ýº¹À» ÇØÁÖ´Â ±â´ÉÀ» ¼öÇàÇÏ´Â ºÎºÐÀÎ, "for ($i=0; $i < 100; $i++) { }"ÀÌ ±¸Ã¼ÀûÀ¸·Î ¾î¶»°Ô ÀÛµ¿À» Çϴ °ÍÀÎÁö ÀÌÇØ¸¦ ÇØº¸µµ·Ï ÇսôÙ.
 
¿ì¼± {}°ýÈ£¿¡ ´ëÇØ¼­ ¼³¸íÀ» ÇØ¾ß Çϴ±º¿ä. {}´Â ±× ¾È¿¡ ÀÖ´Â °ÍÀ» ÇϳªÀÇ ¹­À½À¸·Î ¸¸µé¾îÁÖ´Â °ÍÀÔ´Ï´Ù. ±×·¯´Ï±î, {}¾È¿¡ ÀÖ´Â °ÍÀÌ 100¹ø ½ÇÇàÀÌ µÇ´Â °ÍÀÌÁÒ. Áö±ÝÀº ÇÑ ÁÙ¹Û¿¡ ¾øÁö¸¸, ¾ó¸¶µçÁö ¿©·¯ ÁÙÀ» Àû¾îÁ൵ µË´Ï´Ù. °Ô´Ù°¡ ´Ù¸¥ {}·Î ¹­Àº °ÍÀÌ µé¾î°¡ À־ µË´Ï´Ù. ´ÜÁö ¿©´Â °ýÈ£¿Í ´Ý´Â °ýÈ£ÀÇ Â¦À» ¸ÂÃß¾îÁÖ¾î¾ß ÇÏ´Â °ÍÀÌÁÒ. ¿ì¸®°¡ Àß ¾Ë°í ÀÖ´Â ¼öÇп¡¼­ÀÇ ¼ö½Ä°ú °°Àº ½ÄÀÔ´Ï´Ù. Á¦´ë·Î ¦À» ¸ÂÃ߾ ¿­°í ´Ý±â¸¸ ÇÑ´Ù¸é °ýÈ£ÀÇ ¼ö´Â »ó°üÀÌ ¾ø´Â °ÍÀÌÁÒ.
 
$i°¡ º¯¼ö¶ó´Â °ÍÀÌ ÀÌÇØ°¡ µÇÁÒ? ÃÖÃÊÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÎ FORTRAN¿¡¼­´Â I(±× ´ç½Ã¿¡´Â ´ë¼Ò¹®ÀÚ ±¸ºÐÀ» ÇÏÁö ¾Ê°í ´ë¹®Àڷθ¸ ÇÁ·Î±×·¡¹ÖÀ» Çß¾ú½À´Ï´Ù.)ºÎÅÍ N±îÁöÀÇ ¾ËÆÄºªÀ¸·Î ½ÃÀ۵Ǵ º¯¼ö¸íÀ» °¡Áø º¯¼öµé¿¡´Â Á¤¼ö¸¦ ´ã°í, ³ª¸ÓÁö ¾ËÆÄºªÀ¸·Î ½ÃÀ۵Ǵ º¯¼ö¸íÀ» °¡Áø º¯¼öµé¿¡´Â ½Ç¼ö¸¦ ´ã¾Ò¾ú½À´Ï´Ù. ±×·² Çʿ䰡 ÀüÇô ¾ø´Â ¿À´Ã³¯ÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾îµé¿¡¼­µµ ¿©ÀüÈ÷ Á¤¼ö¸¦ ´ã´Â º¯¼ö¸í¿¡ $i¿Í °°Àº ½ÄÀ¸·Î ÈçÈ÷µé ¾²°í ÀÖ´Â °ÍÀº, ÀÌ·¯ÇÑ ¼ö½Ê ³â ¹¬Àº ¿ª»ç ¶§¹®ÀÔ´Ï´Ù. ±×¸®°í ¹°·Ð Á¤¼ö°¡ ¿µ¾î·Î integerÀÎ °Í¿¡¼­ i°¡ À¯·¡ÇÑ °ÍÀ̰í¿ä. Àú´Â 82³âµµ¿¡ FORTRANÀ¸·Î óÀ½ ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹ÖÀ» ¹è¿ü¾ú´Âµ¥, Àú°°Àº »ç¶÷µéÀÌ ¾´ Ã¥°ú § ¼Ò½º ÄÚµåµéÀÇ ¿µÇâÀÌ À̾îÁ®¿À´Â °ÍÀ̰ڱº¿ä.
 
ÀϹÝÀûÀ¸·Î ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀº ÀÌó·³ º¯¼ö°¡ ´ã°í Àִ °ªÀÌ ¾î¶² ŸÀÔÀÇ °ÍÀÎÁö¸¦ ±¸ºÐÀ» ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. perlÀÇ °æ¿ì¿¡´Â ƯÀÌÇÑ ÇØ°áÃ¥À» »ç¿ëÇÕ´Ï´Ù. ±»ÀÌ »ç¶÷ÀÌ ÀÏÀÏÀÌ ±¸ºÐÀ» ÇØÁÖÁö ¾Ê´õ¶óµµ, ±× º¯¼ö¿¡ ³Ö¾îÁÖ´Â °ªÀÇ »ý±ä ¸ð¾çÀ» º¸¸é 100% ¾î¶² ŸÀÔÀÎÁö ¾Ë¾Æ³¾ ¼ö°¡ ÀÖ´Ù´Â Á¡À» ÀÌ¿ëÇÕ´Ï´Ù. Áï, perl¿¡¼­´Â »ç¶÷ÀÌ ÀÏÀÏÀÌ ÁöÁ¤À» ÇØÁÖ´Â ´ë½Å¿¡, ³Ö¾îÁÖ´Â °ªÀ» ¾û¶×ÇϰԸ¸ ÇÏÁö ¾ÊÀ¸¸é µË´Ï´Ù. ¿¹¸¦ µé¾î À§¿¡¼­, loop º¯¼ö(ÀÌó·³ {} ¾ÈÀÇ °ÍÀ» ¿©·¯¹ø ½ÇÇàÇϵµ·Ï ÇÏ´Â °ÍÀ» loopÀ̶ó°í ÇÕ´Ï´Ù. ±×¸®°í loopÀÇ ½ÇÇà Ƚ¼ö¸¦ countÇÏ´Â ¿ëµµ·Î »ç¿ëµÇ´Â º¯¼ö¸¦ loop º¯¼ö¶ó°í ÇÕ´Ï´Ù.)´Â ´ç¿¬È÷ Á¤¼ö¶ó¾ß¸¸ ÇÒ °ÍÀÔ´Ï´Ù. ±×·±µ¥, "$i = 1.1"ó·³ Á¤¼ö°¡ ¾Æ´Ñ ¼ö·Î ÇØÁÖ´Â ¸ÛûÇÑ »ç¶÷Àº ¾øÀ» °ÍÀÔ´Ï´Ù. ÀÌ·± »ç¶÷Àº ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â ±âº» ÀÚ¼¼°¡ ¾È µÇ¾î ÀÖ´Â °ÍÀ̰ڱº¿ä. Áï, "$i = 1"À̶ó°í ÇØÁÖ¸é perl interpreter´Â À̰ÍÀÌ Á¤¼ö¸¦ ´ã°í ÀÖ´Â º¯¼öÀÓÀ» ¿ì¸®°¡ ÀǵµÇÏ´Â ¹Ù´ë·Î ¾Ë¾Æ¸Ô°Ô µË´Ï´Ù.
 
"for ($i=0; $i < 100; $i++) { }"¿¡¼­ ()¾È¿¡ ¼¼¹ÌÄÝ·ÐÀ¸·Î ³ª´©¾îÁø 3ºÎºÐÀÌ ÀÖ´Â °ÍÀÌ º¸ÀÌÁÒ? loop º¯¼öÀÎ $i¸¦ 0ºÎÅÍ ½ÃÀÛÇØ¼­ Çϳª¾¿ Áõ°¡¸¦ Çϸ鼭 100º¸´Ù´Â ÀûÀ» µ¿¾È¿¡ {}¾ÈÀÇ ³»¿ëÀ» ½ÇÇàÇ϶ó´Â ¶æÀÔ´Ï´Ù. $i++Àº "$i = $i + 1"¸¦ ÁÙ¿©¼­ ¾´ °ÍÀÔ´Ï´Ù. ¿ö³« ÀÚÁÖ ¾²°Ô µÇ´Â °ÍÀÌ¶ó¼­ ÀÌó·³ ÁÙ¿©¼­ ¾²´Â Ç¥±â¹ýÀ» ¸¸µé¾îµÐ °ÍÀÔ´Ï´Ù. ±×¸®°í, À§¿¡¼­ ÀÌ¹Ì ¼³¸íÇÑ °Í°ú °°ÀÌ º¯¼ö´Â ¾ó¸¶µçÁö Àç»ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù. µû¶ó¼­, "$i = $i + 1"µµ ÀüÇô ¹®Á¦°¡ ¾ø´Â °ÍÀÔ´Ï´Ù. ¿ø·¡ $i¿¡ 15°¡ µé¾î ÀÖ¾ú´Ù¸é, "$i = $i + 1"¸¦ ½ÇÇàÇϸé $i¿¡ 16ÀÌ µé¾î°¡ ÀÖ°Ô µÇ´Â °ÍÀÌÁÒ.
 
±×·±µ¥ ¿Ö 0ºÎÅÍ ½ÃÀÛÀ» ÇÏ´À³Ä°í¿ä? ´ë´Ù¼öÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀº ÀÌó·³ 0ºÎÅÍ ½ÃÀÛÀ» ÇØ¼­ countÀ» ÇÕ´Ï´Ù. 3°³±îÁö ¼¼´Â ¹æ¹ýÀº Çϳª, µÑ, ¼ÂÀÌ ¾Æ´Ï¶ó, ¿µ, ÀÏ, ÀÌÀÎ °ÍÀÌÁÒ. Áï, ¹«¾ð°¡°¡ 3°³°¡ ÀÖÀ¸¸é, "2"¸¸Å­ ÀÖ´Ù°í ÇÕ´Ï´Ù. Á» Ȳ´çÇÏ°Ô ´À²¸ÁöÁÒ? ±×·±µ¥ 60³â´ë¿¡ ¸¸µé¾îÁø C ¾ð¾î ÀÌÈÄ¿¡ ¸¸µé¾îÁø °ÅÀÇ ¸ðµç ÇÁ·Î±×·¡¹Ö ¾ð¾îµé¿¡¼­´Â ÀÌó·³ countÀÇ ½ÃÀÛÀ» 0ºÎÅÍ ÇÕ´Ï´Ù. »ç½Ç ±× ÀÌÀ¯¸¦ Áö±Ý Á¦´ë·Î Àû±â¿¡´Â ²Ï º¹ÀâÇÑ À̾߱âÀÔ´Ï´Ù. ÀÏ´ÜÀº ¿©·¯ ¸ð·Î Æí¸®ÇÑ Á¡ÀÌ ¸¹¾Æ¼­ ±×·¸´Ù´Â °Í¸¸ À̾߱⸦ ÇØµÓ´Ï´Ù. »ç¶÷ÀÇ ´À³¦¿¡´Â Á¶±Ý ºÒÆíÇÏÁö¸¸, À̰͸¸ ±Øº¹ÀÌ µÈ´Ù¸é ´Ù¸¥ ´õ Æí¸®ÇÑ Á¡µéÀÌ ÀÖ´Â °ÍÀÌÁÒ. http://en.wikipedia.org/wiki/0_(number)¿¡¼­ "7 In computer science"¶ó°í µÇ¾î ÀÖ´Â Ç׸ñ¿¡ Á¦´ë·Î µÈ ¼³¸íÀÌ ÀÖÀ¸´Ï, ÇÑ ¹ø Àо±â ¹Ù¶ø´Ï´Ù. ±×¸®°í ¹«½¼ ¼Ò¸°Áö Áö±ÝÀº ÀÌÇØ°¡ Àß µÇÁö ¾Ê´õ¶óµµ ³Ê¹« °ÆÁ¤Àº ÇÏÁö ¸»±â ¹Ù¶ø´Ï´Ù. ¸ÓÁö¾Ê¾Æ 0ºÎÅÍ ½ÃÀÛÇÏ´Â °Í¿¡ ¾î´À »õ Àͼ÷ÇØÁ® ÀÖ´Â ÀÚ½ÅÀ» ¹ß°ßÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
 
¹°·Ð À§ÀÇ ¿¹¿¡¼­´Â, ¿¹¸¦ µé¾î "for ($i=232343; $i < 232443; $i++) { }"ó·³ ÇØÁ־ ¿ÏÀüÈ÷ °°Àº °á°ú°¡ ³ª¿É´Ï´Ù. ±×·±µ¥ ÀÌ·¸°Ô ÇÏ´Â °Í ¿ª½Ã ÇÁ·Î±×·¡¹Ö ÇÏ´Â ±âº» ÀÚ¼¼°¡ ¾È µÇ¾î ÀÖ´Â °ÍÀ̰ÚÁÒ. Ưº°ÇÑ ÀÌÀ¯°¡ ¾øÀ¸¸é ´ç¿¬È÷ 0ºÎÅÍ ½ÃÀÛÀ» ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ°Í ¶ÇÇÑ ´©°¡ °­Á¦ÇÏ´Â °ÍÀº ¾Æ´ÏÁö¸¸, ±×³É ±×·¸°Ô ÇÏ´Â °ÍÀÌ Á¤»óÀÌ¶ó¼­ ±×·¸°Ô ÇÏ´Â °ÍÀÔ´Ï´Ù.
 
´õ ¼³¸íÇÒ °ÍÀº ÀÌÁ¨ ¾øÁÒ? º¯¼ö¿Í loopÀ» ¹è¿üÀ¸´Ï, ÀÌÁ¨ ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇØ¼­´Â ´Ù ¹è¿î ¼ÀÀÔ´Ï´Ù. ¹°·Ð ³ó´ãÀÔ´Ï´Ù. ^^; ÇÏÁö¸¸, ÇÙ½ÉÀº ´Ù µÈ °ÍÀÔ´Ï´Ù. "¾Æ´Ï, ÀÌ·¸°Ô ½¬¿î °ÍÀ» ¸ø ¹è¿ö¼­ ±×Åä·Ï ³­¸®¿´´Ü ¸»Àΰ¡?"¶ó´Â »ý°¢À» ÇÏ´Â »ç¶÷Àº ÀûÀýÇÑ »ý°¢À» ÇÏ´Â °ÍÀÔ´Ï´Ù. ½ÇÁ¦·Î ÀÌó·³ ½¬¿î °ÍÀÔ´Ï´Ù. ±×¾ß¸»·Î ¾Æ¹« °Íµµ ¾Æ´Ñ °ÍÀÌÁÒ. ÀÌ·± °É ¸ø ¹è¿ö¼­ ´Ùµé ºÒ°¡´ÉÇÑ ÀϷθ¸ ¿©±â´ÂÁö µµ¹«Áö ÀÌÇØ°¡ ¾È µË´Ï´Ù! ^^;
 
ÀÌÁ¦ ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹ÖÀ» ¾ó¸¶µçÁö ÇØ³¾ ¼ö ÀÖ´Ù´Â ÀڽۨÀÌ »ý°å³ª¿ä? ¿ì¸® ºÐ¾ßÀÇ ÀϵéÀ» À§Çؼ­´Â Áö±Ý±îÁö °øºÎÇÑ °ÍÀ» Åä´ë·Î Á¶±Ý »ìÀ» ºÙ¿©³ª°¡¸é µË´Ï´Ù. ´ÙÀ½ ±Û¿¡¼­ »ìÀ» ºÙÀÌ´Â °úÁ¤À» °è¼Ó ÇØº¸µµ·Ï ÇսôÙ.

  06-10-24
perl°ú °°Àº interpreter ¾ð¾îÀÎ °æ¿ì¿¡´Â ¼Ò½º Äڵ带 ÈçÈ÷ script¶ó°í ºÎ¸¨´Ï´Ù.
  06-10-25
À§¿¡ Æù ³ëÀ̸¸ÀÌ ´Ù¸¥ »ç¶÷µéÀº ¿Ö ÀÚ±âó·³ ±â°è¾î·Î Á÷Á¢ Â¥Áú ¸øÇϰí, ±»ÀÌ high level ¾ð¾î¸¦ ¸¸µé¾î¾ß ÇÏ´ÂÁö ÀǾÆÇØ Çß´Ù´ø ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ ¹Ù·Î ÀÌ Æ÷Æ®¶õÀÔ´Ï´Ù. ¿©±â¿¡¼­ high level ¾ð¾î¶ó°í ºÎ¸£´Â ±î´ßÀº ÀÌÇØ°¡ µÇÁÒ? ±â°è¾î°¡ low level ¾ð¾îÀÎ °ÍÀÔ´Ï´Ù.
  06-10-25
½ÇÁ¦·Î´Â ÀÌ µÎ °¡Áö°¡ ¿ÏÀüÈ÷ µ¿ÀÏÇÏÁö´Â ¾Ê½À´Ï´Ù. ±×·¯³ª ÇöÀç ¿ì¸®ÀÇ ³íÀÇ¿¡¼­´Â ¿ÏÀüÈ÷ °°Àº °ÍÀ̶ó »ý°¢À» ÇØµµ µË´Ï´Ù.
¡èUp