ÆÄÀ̽ã | UserPreferences |
ÆÄÀ̽ãÀº 1989³â ¾Ï½ºÅÚ´ã¿¡¼ ±Íµµ ¹Ý ·Î¼¶(Guido van Rossum)¿¡ ÀÇÇØ °³¹ßµÇ±â ½ÃÀÛÇÑ ¾ð¾î·Î, ÀÎÅÍÇÁ¸®ÅͽÄ, °´Ã¼ÁöÇâÀû, Ç÷§Æû µ¶¸³ÀûÀÌ¸ç µ¿ÀûÀÎ ´ëÈÇü ½ºÅ©¸³Æ® ¾ð¾îÀÌ´Ù.
(ÄÄÇ»ÅÍ) ¾ð¾îÇÐÀûÀÎ °èº¸¸¦ »ìÆ캸ÀÚ¸é, Modula¿Í Lisp, Smalltalk µî¿¡¼ Á¶±Ý¾¿ ÁÁÀº ƯÁúÀ» ¸ð¾Æ¼ ±×¾ß¸»·Î º£½ºÆ® ¿Àºê º£½ºÆ®¸¦ Ã߸° °ÍÀÌ -- ÀÌ ºÎºÐÀº ÇÊÀÚÀÇ ÁÖ°üÀû °ßÇØÀÓÀ» ¹àÈù´Ù -- ÆÄÀ̽ãÀÌ´Ù. ÆÄÀ̽ãÀÇ Ä£¸ð´Â ABC¶ó´Â ±³À°¿ë ¾ð¾î¿´°í, ÀÌ Å»ýÀÇ ºñ¹ÐÀº ±ÍµµÀÇ "¸¸ÀÎÀ» À§ÇÑ ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹Ö"CP4E(Computer Programming for Everybody) ¿îµ¿À¸·Î ±× Á¤½ÅÀ» À̾°í ÀÖ´Ù. ÇÏÁö¸¸ ±×·¸´Ù°í Çؼ ¾²ÀÓÀÌ ±³À°À̶ó´Â ºÐ¾ß¿¡¸¸ ÇÑÁ¤µÈ °ÍÀº Àý´ë ¾Æ´Ï¸ç, °¢Á¾ À¥ °Ë»ö »çÀÌÆ® ¿î¿ë(Google, InfoSeek?, Four11, ...) ¹× »ý¹°Á¤º¸ÇÐ(bioinformatics), À¥ ¼¹ö(Zope) µî ³ÐÀº ºÐ¾ß¿¡¼ Á¦ ¸òÀ» ´Ü´ÜÈ÷ Çس»°í ÀÖ°í, 1999³â Jolt Award ÇÁ·Î±×·¡¹Ö ¾ð¾î ºÐ¾ß¸¦ ¼ö»óÇßÀ¸¸ç, °³¹ßÀÚ ·Î¼¶Àº ´ÚÅÍ µµºêÁî Àú³Î¿¡¼, °³¹ß¼º Çâ»ó¿¡ ´ëÇÑ °ø·Î·Î "Excellence in Programming Awards"¸¦ ¼ö»óÇÑ ¹Ù ÀÖ´Ù. ÀÌ ¿Ü¿¡ ÆÄÀ̽ã ÀÚü¿¡ ´ëÇÑ ±¸Ã¼ÀûÀÎ ¼³¸íÀº ¸¶¼Ò 2000³â 6¿ùÈ£ÀÇ ½ÇÀü °ÀǽÇÀ» Âü°íÇϱ⠹ٶõ´Ù. Á»´õ ½ÇÁúÀûÀÎ °ÍÀ» ¿øÇÏ´Â ºÐµéÀ» À§ÇÑ °£´ÜÇÑ ¿¹·Î, °íÀüÀû ¿¹Á¦ÀÎ ´Ü¾î °³¼ö ¼¼±â ÇÁ·Î±×·¥À» ÆÄÀ̽ãÀ¸·Î ÀÛ¼ºÇÑ °ÍÀÌ <¸®½ºÆ® 1>ÀÌ´Ù. ÁÖ¼®ÀÌ ÇÊ¿ä¾øÀ» Á¤µµ·Î °£´ÜÇÏ°í Á÷°üÀûÀÌÁö ¾ÊÀº°¡.
import sys fp=open(sys.argv[1],'r') words=fp.read().split() wordlist={} for word in words: wordlist[word]=wordlist.get(word,0)+1 for word in wordlist.keys(): print "The word",word,"occurs",wordlist[word],"time(s) in",sys.argv[1]
µµ´ëü ¹«¾ù ¶§¹®¿¡ ÀÌÅä·Ï ÆÄÀ̽ãÀÌ À̸§À» ³¯¸®°í °³¹ßÀÚ Ä¿¹Â´ÏƼÀÇ ½Ã¼±À» ÇÑ '¹ì'¿¡ ¹Þ°í ÀÖ´Â °ÍÀϱî? ¿©·¯ °¡Áö ¿äÀÎÀÌ ÀÖ°ÚÁö¸¸ °¡Àå ´ëÇ¥ÀûÀÎ °ÍÀ» µç´Ù¸é ¿ª½Ã "ºü¸¥ °³¹ß ¼Óµµ"°¡ ¾Æ´Ò±î ÇÑ´Ù.
¾îÂîµÈ ÀÏÀÎÁö ±¹³»¿¡¼´Â ½ºÅ©¸³Æ® ¾ð¾î´Â Àú¿ÇÑ °ÍÀÌ°í, ÀÚ¹Ù³ª C++·ù°¡ ¾îµð¼³ª ÃÖ°íÀÇ ¸¸º´ÅëÄ¡¾àÀ̶ó°í »ý°¢ÇÏ´Â »ç¶÷ÀÌ ¸¹Àº °Í °°´Ù. ÇÑ µÎ °¡Áö¿¡ ¿ì·ç·ç ¸ô¸®´Â Áý´Ü ¹®ÈÀÇ °¼¼ ¶§¹®ÀÎÁöµµ ¸ð¸£°Ú´Ù.
½ºÅ©¸³Æ® ¾ð¾î¿Í C++ÀÇ °³¹ß ¼Óµµ¿¡ ´ëÇÑ ºñ±³·Î TclÀ» °³¹ßÇÑ ¾Æ¿ì½ºÅÍÇÏ¿ìÆ®(Ousterhout)ÀÇ IEEE ³í¹®ÀÌ À¯¸íÇѵ¥, DB ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß¿¡ C++Àº ÀÌ°³¿ù, DB ¶óÀ̺귯¸® °³¹ß¿¡ ¿ª½Ã C++Àº »ï°³¿ùÀÌ ¼Ò¿äµÇ¾ú´Âµ¥, ½ºÅ©¸³Æ® ¾ð¾î·Î´Â °¢°¢ ÇÏ·ç¿Í ÀÏÁÖÀϸ¸ °É·È´Ù. ÄÚµå ±æÀ̸¦ ºÁµµ 3000¶óÀΰú 300¶óÀÎÀÇ ´ë·« 10¹è ºñÀ²Àº ±Ø´ÜÀûÀÎ ¿¹°¡ ¾Æ´Ï´Ù.
ÆÄÀ̽㿡 ´ëÇÑ Á÷Á¢ÀûÀÎ ºñ±³´Â ·çÃ÷ ÇÁ·ºÇïÆ®(Lutz Prechelt)ÀÇ º¸°í¼°¡ Åë°èÀûÀ¸·Î ºñ±³Àû ¾ö¹ÐÈ÷ ¼öÇàµÈ °ÍÀε¥, ÀÚ¹Ù, C++, C·Î ´ëº¯µÇ´Â ºñ½ºÅ©¸³Æ® ¾ð¾î¿Í Perl, Python, Rex, TclÀÇ ½ºÅ©¸³Æ® ¾ð¾î¿¡ ´ëÇØ, ÇØ´ç ¾ð¾î Àü¹®°¡ ¼ö½Ê¸íÀ¸·Î ½ÇÇèÁý´ÜÀ» ¸¸µé°í µ¿ÀÏÇÑ °úÁ¦(°Ë»ö ¹× ½ºÆ®¸µ ó¸®)¸¦ ÁÖ¾î ¿©·¯ °¡Áö ÃøÁ¤ °á°ú¸¦ ºñ±³Çß´Ù. ÆÄÀ̽ã°ú ºñ½ºÅ©¸³Æ® ¾ð¾î¿¡ ´ëÇؼ¸¸ À̾߱â ÇÑ´Ù¸é, ÆÄÀ̽ãÀº C, C++, Java¿¡ ºñÇØ Æò±ÕÀûÀ¸·Î »ïºÐÀÇ ÀÏ ÀÌÇÏÀÇ °³¹ß ½Ã°£°ú, ÄÚµåÀÇ ¶óÀÎ ¼öµµ C, C++, Java¿¡ ºñÇØ ´ë·« »ïºÐÀÇ ÀÏÀÌ°í, JavaÀÇ Àý¹Ý Á¤µµÀÇ ¸Þ¸ð¸® ¼Ò¸ð¿¡, Àüü ¼öÇà ¼Óµµ´Â C³ª C++º¸´Ù´Â ´À¸®Áö¸¸ Javaº¸´Ù ¾à°£ ºü¸¥ Á¤µµ¸¦ º¸¿©Áá´Ù. (ÁÖ¸ñÇÒ ¸¸ÇÑ »ç½ÇÀº ½ºÅ©¸³Æ® ¾ð¾î Áß¿¡¼µµ ÆÄÀ̽ãÀÌ ³ôÀº ¼º´ÉÀ» º¸¿©Áá´Ù´Â Á¡ÀÌ´Ù)
¿©±â¼ ÁÖÁöÇÒ Á¡Àº ¹Ù·Î ÆÄÀ̽ãÀÇ ³ôÀº »ý»ê¼ºÀÌ´Ù. °°Àº ½Ã°£ µ¿¾È¿¡ ´õ ¸¹Àº Äڵ带 ¸¸µé ¼ö ÀÖÀ¸¸é¼ µ¿½Ã¿¡ Àüü ÄÚµå ±æÀ̴ ª´Ù´Â Á¡Àº ÆÄÀ̽ãÀÇ ´ëÇ¥ÀûÀÎ ¸Å·Â Áß ÇϳªÀÌ´Ù. ÆÄÀ̽ã À¯Àú ±×·ì¿¡¼, C³ª C++·Î 2ÁÖÀÏ °É¸° ÀÛ¾÷À» ÇÏ·ç¿¡ Çß´Ù, Ç㹫ÇÏ´Ù´Â µîÀÇ À̾߱â´Â ³Ê¹« ÈçÇؼ ´õ ÀÌ»ó ´º½º°Å¸®Á¶Â÷ µÇÁö ¸øÇÑ´Ù.
ÇÏÁö¸¸ ÆÄÀ̽㠿ª½Ã ÇϳªÀÇ µµ±¸ÀÏ »ÓÀÌ°í, ¸¸º´ÅëÄ¡¾àÀº µÇÁö ¸øÇÑ´Ù. ÆÄÀ̽ãÀº ÀÚ½ÅÀÌ Àß ¾²ÀÏ ¼ö ÀÖ´Â °÷ÀÌ ÀÖ°í(ÀÌ°÷ AboutÀ» ÅëÇØ ¾ÕÀ¸·Î ÇϳªÇϳª »ìÆ캸°Ô µÉ °ÍÀÌ´Ù), C++³ª ÀÚ¹Ù ¿ª½Ã ±×°ÍµéÀÌ È¿À²ÀûÀÏ ¼ö ÀÖ´Â ºÎºÐÀÌ ÀÖ´Ù. Çö¸íÇÑ ÆÇ´ÜÀº ¾î´À »óȲ¿¡ ¾î¶² µµ±¸¸¦ ¼±ÅÃÇÏ¿© »ç¿ëÇÏ´À³Ä´Â °ÍÀÌ´Ù. ¼öÀú·Î ¹Ù´ÚÀ» Ǫ°Ú´Â°¡, »ðÀ¸·Î ¹äÀ» ¸Ô°Ú´Â°¡.
ÆÄÀ̽ãÀÌ ½º½º·Î¸¦ ±âŸ ½ºÅ©¸³Æ® ¾ð¾î(ƯÈ÷ Perl)¿Í Â÷º°ÈÇÏ´Â °Í Áß Çϳª°¡ ºü¸¥ ÇнÀ ¼ÓµµÀÌ´Ù. ÀÌ°ÍÀº "¼º´ç°ú ½ÃÀå"À¸·Î À¯¸íÇÑ ÀÌ ½Ã´ëÀÇ ÇØÄ¿ ¿¡¸¯ ·¹À̸յåÀÇ Àϸí "ÆÄÀ̽ãÀÌ ÀÌ·¸°Ô ÁÁÀº ÁÙ ¸ô¶ú¾î¿ä"(¿øÁ¦ "Why Python?" http://www2.linuxjournal.com/cgi-bin/frames.pl/lj-issues/issue73/3882.html )¶ó´Â ¼ö±â¿¡¼ È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÆÄÀ̽㠾ð¾î¸¦ °øºÎÇÑÁö ÇϷ縸¿¡ ÀÚ½ÅÀÌ ¿øÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µç ³î¶ó¿î °æÇè°ú "Àú´Â Á¦°¡ ŸÀÌÇÎÇÏ´Â ¼Óµµ¸¸Å »¡¸®, Á¦´ë·Î µ¹¾Æ°¡´Â Äڵ带 ¸¸µé¾î³»°í ÀÖ¾ú¾î¿ä"(I was generating working code nearly as fast as I could type.)·Î ´ëº¯µÇ´Â ¹«¾ÆÀÇ °æÁö´Â ·¹ÀÌ¸Õµå °°Àº ÇØÄ¿¿¡°Ô¸¸ ÀϾ´Â ÀÏÀº ¾Æ´Ï´Ù.
¼¼ ¹ø° ´ëÇ¥ÀûÀÎ ¸Å·ÂÀº "Á¢ÂøÁ¦ ¾ð¾î"·Î »ç¿ëµÉ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. °¢Á¾ ¾ð¾îÀÇ ±âÁ¸ ÄÚµåµéÀ» ¼Õ½±°Ô ÆÄÀ̽ãÀ¸·Î ¿«À» ¼ö ÀÖ´Ù. ƯÈ÷, C¿Í C++Àº °³¹ß ÃʱâºÎÅÍ À̸¦ ¿°µÎ¿¡ µÎ¾ú±â ¶§¹®¿¡ ¾ÆÁÖ °·ÂÇÑ È®À强À» Áö¿øÇÏ°í, Java´Â Jython(ȤÀº JPython)¿¡¼ Áö¿øÇÑ´Ù. ÀÌ·± Ư¡ ´öºÐ¿¡ ÀÏ´Ü ÆÄÀ̽ãÀ¸·Î Äڵ带 ÀÛ¼ºÇÏ°í ¼öÇà ½Ã°£ÀÌ ¹®Á¦°¡ µÇ´Â ºÎºÐÀ» C³ª ±âŸÀÇ ¾ð¾î·Î È®ÀåÀ» ÇÏ´Â °úÁ¤Àº ¸Å¿ì È¿À²ÀûÀÌ¸ç °£ÆíÇÏ´Ù.
--À¯¿ù? [¿ù°£ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î 1¿ùÈ£¿¡¼]
ÆÄÀ̽ã°ú À§Å°À§Å°?ÀÇ °ü°è
À§Å°À§Å°?°¡ ¸ðµÎ ÆÄÀ̽ãÀ¸·Î ±¸ÇöµÇ¾ú´ÙµçÁö ÇÏ´Â °ü°è¸¦ ¸»ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ¹°·Ð, ÆÄÀ̽ãÀ¸·Î ±¸ÇöµÈ À§Å°À§Å°?µµ Á¸ÀçÇÑ´Ù. (Á¤È®È÷´Â À§Å°Å¬·ÐÀ̶ó°í ºÎ¸¥´Ù) ¾çÀÚÀÇ °ü°è´Â ±¸Ã¼Àû ±â¼ú Â÷¿øÀ̶ó±âº¸´Ù´Â Á» ´õ "»çȸÀû"ÀÎ ¸é¿¡¼ ±× Àǹ̸¦ ãÀ» ¼ö ÀÖ´Ù.
ÆÄÀ̽ã°ú À§Å°À§Å°?°¡ Ãß±¸ÇÏ´Â °¡Ä¡ÀÇ °øÅëÁ¡Àº °á±¹ "´ëÁß¿¡°Ô ÈûÀ»"(Power to the people)¿¡¼ ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. À§Å°À§Å°?³ª ÆÄÀ̽ãÀ̳ª ¸ðµÎ ÀÌ¹Ì ±âÁ¸ÀÇ ½Ã½ºÅÛÀÌ °ÅÀÇ Àü±ÇÀ» µ¶Á¡ÀûÀ¸·Î ¼ÒÀ¯ÇÑ »óÅ¿¡¼ ÀÌ°ÍÀ» »ç¿ëÀڵ鿡°Ô ³ª´²ÁÙ ¼ö ÀÖµµ·Ï ÇÏ´Â ³ë·ÂÀ¸·Î º¼ ¼ö ÀÖ´Ù.
ÇöÀç °ÅÀÇ ¸ðµç ±â¼ú°ú µµ±¸µéÀÌ ±× »ç¿ëÀڵ鿡°Ô ÀϹæÀûÀ¸·Î ¾î¶² ¹æ½ÄÀÇ »ç¿ëÀ» °¿äÇÏ´Â Çö½Ç¿¡¼, ½º½º·Î°¡ ÁÖü°¡ µÇ¾î ÀÚÀ²ÀûÀÌ°í ´Éµ¿ÀûÀÎ °³Ã¼°¡ µÇ·Á´Â ¿îµ¿¿¡ ÆÄÀ̽ãÀÇ Àǹ̴ °¢º°ÇÏ´Ù. (»çȸ ±â´ÉÀÌ°Ç, ±â¼úÀÌ°Ç °³¹ßÀÚ¿Í »ç¿ëÀÚ°¡ ºÐ¸®µÇ°í °³¹ßÀÚ¿¡°Ô Ư¼ö ±Ç·ÂÀÌ ÁÖ¾îÁö´Â »çȸ´Â ¹Ù¶÷Á÷ÇÏÁö ¸øÇÏ´Ù.) ÆÄÀ̽ãÀÌ ÁÖâÇÏ´Â CP4E(Computer Programming for Everybody) ¿îµ¿Àº °³¹ßÀÚ¿Í ±â¼ú, ½Ã½ºÅÛ¿¡ »©¾Ñ°å´ø ±Ç¸®ÀÇ È¸º¹ÀÌ°í, ÀÌ ±â¼ú Áß½ÉÀû »çȸ¿¡¼ Àΰ£¼º°ú ÁÖü¼ºÀ» ȸº¹ÇÏ·Á´Â ³ë·ÂÀ¸·Î ÀÌÇØÇÒ ¼ö ÀÖ´Ù. À§Å°À§Å°?µµ ¿©·¯¸é¿¡¼ ÀÌ¿Í ºñ½ÁÇÏ´Ù.
ÀÌ·¯ÇÑ °Íµé ÀÚü°¡ ½ÇÁúÀûÀ¸·Î ¾î¶² "»çȸÀû" ¿îµ¿À» ´ëÇ¥ÇÒ ¼ö ÀÖÁö´Â ¾Ê°ÚÁö¸¸, À̰͵éÀÌ ÀÏÁ¾ÀÇ ¹ß´ÜÀÌ µÇ¾î¼ »ç¶÷µéÀÌ "±ú¾î³ªµµ·Ï"ÇÏ´Â µ¥¿¡ ÀÏÁ¶ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ´Â ÀÎÅͳÝÀÌ Å»Áß½ÉÈ(decentralization)ÀÇ °¡´É¼ºÀ» º¸¿©ÁÖ°í ÀÚ±ØÀ» Á¦°øÇß´Ù´Â °Í¿¡¼ ±× ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.
pythoness¶ó´Â ´Ü¾î´Â ´ë·« 14¼¼±âºÎÅÍ ±× ¿ë·Ê¸¦ ã¾Æ º¼ ¼ö Àִµ¥, python¿¡ ¿©¼ºÇü ¾î¹Ì -ess°¡ ºÙ¾î¼ ¾î¶² ½Å·ÉÀÇ Èû¿¡ ÀÇ°ÅÇØ ¹Ì·¡¸¦ ¿¹°ÇÇÏ´Â ¿©ÀÚ³ª, ±×·± ÅëÂû·ÂÀ» °¡Áø ¿©ÀÚ¸¦ ÀÏĽÀ´Ï´Ù. µå¹°±ä ÇÏÁö¸¸ ¾ÆÁ÷ Çö´ë ¿µ¾î¿¡µµ »ì¾Æ ÀÖ½À´Ï´Ù.
pythoner´Â ÀÌ¹Ì »ç¾î°¡ µÇ¾î¹ö·È´Âµ¥ 15¼¼±â ÀÌÈÄÀÇ ¹®Çå¿¡´Â °ÅÀÇ ³²¾ÆÀÖÁö ¾Ê½À´Ï´Ù. ¿ª½Ã ¹Ì·¡¸¦ ¿¹°ßÇÏ´Â »ç¶÷, ½ÅÅë·ÂÀ» °¡Áø »ç¶÷À̶ó´Â Àǹ̸¦ °®°í ÀÖ½À´Ï´Ù. (º¸Åë ³²Àڵ鿡°Ô ¾²ÀÓ)
µÎ ´Ü¾î ¸ðµÎ Á¤·É(¿©±â¼´Â python)À» Àڱ⠸¾´ë·Î ºÎ¸°´Ù°í ÇÏ´Â "familiar spirit"ÀÇ Àǹ̰¡ ÀÖ½À´Ï´Ù.
ÆÄÀ̽ãÀ» ÀÚÀ¯ÀÚÀç·Î ´Ù·ç´Â ¿©·¯ºÐµéÀÌ¾ß ¸»·Î Á¤¸» ½ÅÅë·ÂÀ» °¡Áø ºÐµéÀÌ ¾Æ´Ò±î ÇÏ´Â »ý°¢À» Çغ¾´Ï´Ù. ÇÏÁö¸¸, ¿ì¸®°¡ Ãß±¸ÇؾßÇÒ °ÍÀº ±×·± ½ÅÅë·ÂÀ» º¸ÆíÀûÀÎ °¡Ä¡·Î ¼¼¼ÓÈ ÇÏ´Â °ÍÀÌ°ÚÁÒ. °ú°ÅÀÇ ½Â·ÁµéÀÌ º¸¿©ÁÖ´ø ¸¶¼ú°°Àº ÇÁ·Î±×·¡¹ÖÀÇ ±â¼úÀ» ´©±¸³ª°¡ ´Ù ÇÒ ¼ö ÀÖµµ·Ï "á¡"À» "áÔ"È ÇÏ´Â °Í, ÀÌ°ÍÀÌ ¿À´ÃÀ» »ç´Â pythoner¿Í pythonessÀÇ ¶Ç´Ù¸¥ »ç¸íÀÏÁöµµ ¸ð¸£°Ú½À´Ï´Ù. [[À¯¿ù] from http://www.python.or.kr/ ÀÚÀ¯°Ô½ÃÆÇ]
Pythoner and Pythoness
¿À´Ã Àá±ñ ½Ã°£ÀÌ µÇ¾î¼ pythonÀ̶ó´Â ´Ü¾îÀÇ ¾î¿ø°ú ¿ª»ç¿¡ ´ëÇØ ¿¬±¸¸¦ Á¶±Ý Çغôµ¥ Àç¹ÌÀÖ´Â ÆÄ»ý¾î¸¦ ¹ß°ßÇß½À´Ï´Ù. pythoner¿Í pythoness°¡ ±×°ÍÀÔ´Ï´Ù.
ÄÄÇ»Åͺзù ÇÁ·Î±×·¡¹ÖºÐ·ù