·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
Ãʺ¸ °³¹ßÀÚÀÇ °í¹Î¡¸Ã¹ ¾ð¾î ¼±ÅÃÀº ÀÌ·¸°Ô!¡¹

±èÁ¤ÀÎ(µµ¸íÁ¤º¸´ëÇб³ ±³¼ö), ±èÀç¿ì(ºí·ç¿§ ÀÎÅͳ»¼Å³Î ±â¼úÀÌ»ç), ±è»óÈÆ(µ¿¸íÁ¤º¸´ëÇб³ ¿¬±¸¿ø)   2004/12/07
[Áöµð³ÝÄÚ¸®¾Æ]ù ¹øÂ° ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¼±ÅÃÀº ¾ÆÁÖ Áß¿äÇÏ°íµµ ¹Î°¨ÇÑ ¹®Á¦´Ù. ¸ðµç ÇÁ·Î±×·¡¸Ó´Â Æò»ý µ¿¾È óÀ½ ¹è¿î ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¿µÇâ¿¡¼­ ½±°Ô ¹þ¾î³ªÁö ¸øÇϱ⠶§¹®ÀÌ´Ù. ÀÌ´Â Çѱ¹¿¡¼­ ž Çѱ¹¾î¸¦ ù ¹øÂ° ¾ð¾î·Î ¹è¿î »ç¶÷ÀÌ ¿µ¾î³ª ÀϺ»¾î µîÀ» ¹è¿ï ¶§ ÀÚ½ÅÀÌ Ã³À½ Á¢ÇÑ ¾ð¾îÀÎ Çѱ¹¾î¸¦ ±âº»À¸·Î ±×°Í°ú ºñ±³ÇÏ°Ô µÇ´Â °Í°ú °°Àº ÀÌÄ¡ÀÌ´Ù.

ù ¹øÂ° ¹è¿î ÇÁ·Î±×·¡¹Ö ¾ð¾î´Â ÇÁ·Î±×·¡¸Ó »ç°íÀÇ ±âƲÀÌ µÈ´Ù. ¶ÇÇÑ ÇÁ·Î±×·¡¹ÖÀº ºÐ¾ßº° Ư¼ºÀ» °¨¾ÈÇÑ ±¸Ã¼ÀûÀÎ ½Ç¿ë¼ºÀ» ³í¿Ü·Î ÇÏ´õ¶óµµ âÀÇÀû »ç°í¸¦ ÈÆ·ÃÇÏ´Â ÀϹÝÀûÀÎ ±³À° ¼ö´ÜÀ¸·Î¼­ÀÇ °¡Ä¡µµ ÀÖ´Ù. ¸ðµç °æ¿ì¿¡ 'ù ¹øÂ°'¶ó´Â ¾îÈÖ°¡ °®´Â Àǹ̴ ±× µÚ¿¡ µû¸£´Â °°Àº ¼ö´ÜÀÌÁö¸¸ ´Ù¸¥ µµ±¸ ¶Ç´Â °´Ã¼¸¦ »ç¿ëÇÏ´Â ºñ½ÁÇÑ Àϵé°ú´Â ´Ù¸¥ Àǹ̸¦ °¡Áö°Ô µÇ°í, ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ À־´Â ±× ¼±ÅÃÀÇ ºñÁßÀÌ ¸Å¿ì Å©´Ù°í ÇÒ ¼ö ÀÖ´Ù. ±×·¸´Ù¸é óÀ½ ¹è¿ì´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ¾î¶°ÇÑ ¾ð¾î¸¦ ¼±ÅÃÇÏ´Â °ÍÀÌ ÁÁÀ»±î? ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ÆÐ·¯´ÙÀÓÀ» ¸Å°³·Î ÇÏ¿© ±× ÇØ´äÀ» ã¾Æº¸ÀÚ.

¸ðµç À̰¡ ÇÁ·Î±×·¡¹ÖÀ» ¹è¿ö¾ß ÇÏ´Â ÀÌÀ¯?
ÇÁ·Î±×·¡¹Ö ÇнÀÀº ¹®Á¦ÀÇ ÇØ¹ý ±× ÀÚüº¸´Ù´Â ¿Ã¹Ù¸¥ ÇØ¹ýÀ» ¼³°èÇÏ´Â ÀýÂ÷¸¦ ¿À·ù ¾øÀÌ ±â¼úÇØ³¾ ¼ö ÀÖ´Â »ç°í¸¦ °­Á¶Çϸç, ¼­¼úµÈ ¹®Á¦·ÎºÎÅÍ ÇØ¹ýÀÇ ¸ðÇüÀ» ¸¸µé°í ¸ðÇüÀÇ Å¸´ç¼ºÀ» °ËÁõÇÏ´Â °úÁ¤¿¡¼­ âÀǼº ¹× ºñÆÇÀû »ç°í¿Í Ãß·Ð ´É·ÂÀ» ÈÆ·ÃÇÏ´Â È¿°ú°¡ ÀÖ´Ù(ÀÌ´Â ±¹³»¿ÜÀÇ ´Ù¾çÇÑ ±³À°°úÁ¤ ¹× °ü·Ã ¿¬±¸¸¦ ÅëÇØ Ÿ´ç¼ºÀÌ ÀÔÁõµÇ¾î ¿Ô´Ù).

±×¸®°í ÇÁ·Î±×·¡¹Ö ±â¼úÀº ºÐ¾ßº° Àü¹®¼º°ú »ý»ê¼ºÀ» ÇÑ Â÷¿ø ³ôÀº ¼öÁØÀ¸·Î ²ø¾î¿Ã¸®±â À§ÇØ ±â°è Áß½ÉÀÇ »ç°í¿¡¼­ ¹þ¾î³ª Àü¹® ÀÀ¿ë ºÐ¾ßº° »ç°í·Â°ú Ç¥Çö·ÂÀ» Çâ»ó½ÃŰ´Â ÂÊÀ¸·Î ¹ßÀüÇØ¿Ô´Ù. ÇÁ·Î±×·¡¹Ö ±â¼úÀÌ ÀÌ¿Í °°Àº ¹æÇâÀ¸·Î Áøº¸Çϰí ÀÖ´Ù´Â °ÍÀº ÇÁ·Î±×·¡¹Ö ÀÛ¾÷ÀÌ ÀüÅëÀûÀÎ ¼öÇàÀû ÇàÀ§¿¡ ±ÙÁ¢Çذ¡°í ÀÖ´Ù´Â °ÍÀ» ÀÔÁõÇÏ´Â °ÍÀ̱⵵ ÇÏ´Ù.

ÇÁ·Î±×·¡¹Ö ¾ð¾î´Â Àü»êÇÐÀ̳ª ÄÄÇ»ÅͰøÇÐ °°Àº ƯÁ¤ ºÐ¾ß¸¦ Àü°øÇϰųª ÁýÁßÀûÀÎ ±³À°À» À̼öÇÑ Àü¹®Àθ¸ÀÌ È°¿ëÇÒ ¼ö ÀÖ´Â µµ±¸ÀÇ ±â¼ú¿¡¼­ ÀÌ¹Ì ¹þ¾î³µ°í, ¸ðµç ºÐ¾ßÀÇ Àü¹® ÀηÂÀÌ ÀÚ½ÅÀÇ ºÐ¾ß¿¡¼­ ¹ß»ýÇÏ´Â ´Ù¾çÇÑ ¹®Á¦ Ç®À̸¦ À§ÇØ ±× ºÐ¾ß Àü¹®°¡µéÀÇ Áö½ÄÀ» °øÀ¯Çϰí ÇØ¹ýÀ» ³ª´©±â À§ÇÑ »ç°íÀÇ ¼ö´ÜÀ¸·Î ÀÚ¸®¸Å±èÇϰí ÀÖ´Ù. ÀÌÁ¦ ÇÁ·Î±×·¡¹Ö ¾ð¾î´Â Àü¹® ÇÁ·Î±×·¡¸ÓµéÀÇ ÀüÀ¯¹°¿¡¼­ ¹þ¾î³ª°í ÀÖ´Â °ÍÀÌ´Ù.

CAD¸¦ »ç¿ëÇÏ´Â °ÇÃà ¶Ç´Â Á¶¼± ¼³°è Àü¹®°¡°Ç, ÄÄÇ»ÅͰøÇÐÀ» Àü°øÇÏ¿© Àü¹® ÇÁ·Î±×·¡¸Ó·ÎÀÇ ±æÀ» ¿øÇÏ´Â ÇлýÀ̰Ç, °æ¿µÇÐÀ̳ª À¯ÅëÇÐÀ» °øºÎÇØ¼­ ±â¾÷ °æ¿µÀ» ²Þ²Ù´Â °æ¿µÇеµ°Ç, ¿ù¸»À̸é Á÷¿øµéÀÇ ±Þ¿©¸¦ °è»êÇϱâ À§ÇØ ¿¢¼¿À» »ç¿ëÇÏ´Â °æ¸®ºÎ¼­ÀÇ Á÷¿øÀÌ°Ç ¸ðµÎ ¾Ë°Ô ¸ð¸£°Ô ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇϰí ÀÖ´Ù.

ÀÌ·¸°Ô »ç¶÷µéÀÌ ¿øÇÏ´Â ÇØ´äÀ» ã±â À§ÇØ ¹®Á¦¸¦ Ç®¾î°¡´Â ¹æ½ÄÀº ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇÏ¿© ¹®Á¦¸¦ ÇØ°áÇÏ´Â ±â¹ý°ú ´à¾Æ°¡°í ÀÖ´Ù. º¹ÀâÇÑ ÀÌ·ÐÀ» ¼³¸íÇϰųª ³í¹®ÀÇ ¿¹¸¦ µéÁö ¾Ê´õ¶óµµ ÀÌ´Â ÇöÀç È­Á¦°¡ µÇ°í ÀÖ´Â ¹®Á¦À̸ç, °á·ÐÀûÀ¸·Î ¿äÁò ¼¼»ó¿¡¼­ µÚÃÄÁöÁö ¾ÊÀ¸·Á¸é ´©±¸³ª ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ¹è¿ö¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.

ÇÁ·Î±×·¡¹ÖÀº ¿©·¯ ¹®Á¦ÀÇ ÇØ¹ýÀ» ã¾Æ³»°í ÇØ¹ýÀ» Á¶ÇÕÇØ¼­ ´õ Å« ¹®Á¦ÀÇ ÇØ´äÀ» ã¾Æ³»´Â ´É·ÂÀ» ¿ä±¸ÇÑ´Ù. ¿¢¼¿À» »ç¿ëÇÏ´Â ´É·ÂÀ» ±â¸£°í ½Í´Ù°í »ç¼³ Çпø¿¡¼­ ¹è¿ì´Â ¼ÒÇÁÆ®¿þ¾î »ç¿ë¹ýÀ» ¹è¿ì´Â °ÍÀº °ï¶õÇÏ´Ù. ƯÁ¤ ȸ»çÀÇ ¼ÒÇÁÆ®¿þ¾î »ç¿ë¹ýÀ» ±â°èÀûÀ¸·Î ¾Ï±âÇϰí Àͼ÷ÇÏ°Ô ¸¸µå´Â ¹Ýº¹ÇнÀÀ¸·Î´Â ´õ Å« ¹®Á¦°¡ ÁÖ¾îÁ³À» ¶§ ¿Ã¹Ù¸¥ ¹æ¹ýÀ¸·Î ºü¸£°Ô Ç®¾î³»´Â ´É·ÂÀ» Ű¿ï ¼ö ¾ø±â ¶§¹®ÀÌ´Ù.

´ëºÎºÐÀÇ ¼ÒÇÁÆ®¿þ¾î´Â º¹ÀâÇÑ ¹®Á¦¸¦ ³í¸®ÀûÀ¸·Î Á¢±ÙÇÏ¿© ¿À·ù ¾øÀÌ »¡¸® ÇØ°áÇÏ´Â µ¥ ±× ¸ñÀûÀÌ ÀÖ´Ù. âÀÇÀû ¹®Á¦ ÇØ°á µµ±¸·Î¼­ÀÇ ¼ÒÇÁÆ®¿þ¾î ±â¼ú Ȱ¿ëÀ» ÀÍÈ÷±â À§Çؼ­´Â ³ôÀº Ãß»óÈ­ÀÇ ¼öÁØ¿¡¼­ ¹®Á¦¸¦ ÇØ°áÇÏ´Â ¹æ¹ýÀ» ¿¬±¸ÇØ¾ß Çϰí, ´Ù¾çÇÑ ¹®Á¦ ÇØ°á ±â¹ýÀ» Á¾ÇÕ È°¿ëÇÏ¿© °³ÀÎÀÇ »ý»ê¼º Çâ»óÀ» üµæÇÒ ¼ö ÀÖ´Â ÈÆ·ÃÀÌ ÇÊ¿äÇÏ´Ù. ±×·¸´Ù°í ÇØ¼­ '¸·¿¬È÷' ÇÁ·Î±×·¡¹ÖÀ» ¹è¿ì°Ú´Ù´Â »ý°¢Àº ÁÁÀº °ÍÀÌ ¾Æ´Ï´Ù.

ÇÁ·Î±×·¡¹Ö ÈÆ·ÃÀÌ ¹®Á¦ ÇØ°á ´É·Â¿¡ µµ¿òÀ» ÁÖ´Â °ÍÀº »ç½ÇÀÌÁö¸¸, ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ '¾Æ¹«°Å³ª' ¼±ÅÃÇØ¼­ 'Àû´çÇÑ' ¹æ¹ýÀ¸·Î ÀÍÈù´Ù´Â °ÍÀº ¹®Á¦ ÇØ°á ´É·ÂÀÇ Çâ»ó¿¡ º° µµ¿òÀ» ÁÖÁö ¸øÇÑ´Ù. Ç¥Çö ¼öÁØÀÌ ³·Àº ¾ð¾î¸¦ ¼±ÅÃÇϰųª, ¹®¹ýÀÌ ³Ê¹« º¹ÀâÇÑ ¾ð¾î¸¦ ¼±ÅÃÇÏ´Â °ÍÀº ³·Àº ¾ð¾îÀÇ Ç¥ÇöÀ» ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÑ Ç¥Çö ¼öÁØÀ¸·Î ²ø¾îµéÀÌ´Â ÀÛ¾÷¿¡ ´õ ¸¹Àº ³ë·ÂÀ» ±â¿ï¿©¾ß Çϱ⠶§¹®ÀÌ´Ù. ¶ÇÇÑ ¹®¹ý°ú Àǹ̰¡ º¹ÀâÇÑ ¾ð¾î¸¦ ¼±ÅÃÇßÀ» °æ¿ì ¾ð¾î ÀÚü°¡ °¡Áø ¹®¹ý°ú ¾ð¾î¸¦ ÀÌÇØÇÏ´Â µ¥ Áú·Á¹ö·Á(¹®Á¦ ÇØ°á ±â¹ýÀ» ÀÍÈ÷°íÀÚ ÇÏ´Â ¸ñÇ¥¿¡ µµ´ÞÇϱ⵵ Àü¿¡ ÀÍÇô¾ß ÇÏ´Â ¹®¼­ÀÇ ¾ç¿¡ Áú¸°´Ù) ÇÁ·Î±×·¡¹Ö ¾ð¾î ÀÚü¿¡ ´ëÇÑ Èï¹Ì¸¦ ÀÒ¾î¹ö¸®°Ô µÇ´Â °æ¿ìµµ Çã´ÙÇÏ´Ù.

¸¶ÀÌÅ©·Î¼ÒÇÁÆ®(ÀÌÇÏ MS)ÀÇ ºñÁÖ¾ó º£ÀÌÁ÷À» óÀ½À¸·Î ¹è¿î »ç¶÷À̶ó¸é ´Ù¸¥ ¸ðµç ¾ð¾î¸¦ ÇнÀÇϰíÀÚ ÇÒ ¶§ ºñÁÖ¾ó º£ÀÌÁ÷¿¡ ´ëÇÑ ÀÌÇØ¸¦ ±âº»À¸·Î Á¢±ÙÇÏ°Ô µÈ´Ù. ºñÁÖ¾ó º£ÀÌÁ÷Àº MS ¿¢¼¿À̳ª DTS µîÀÇ »ç¹« »ý»ê¼ºÀ» À§ÇÑ µµ±¸³ª µ¥ÀÌÅÍ °ü¸®¸¦ À§ÇÑ µµ±¸¿¡ ±¤¹üÀ§ÇÏ°Ô »ç¿ëµÇ¾î ½Ç¹« Ȱ¿ëµµ°¡ ³ôÀº ¾ð¾î¶ó´Â ÀåÁ¡ÀÌ ÀÖ±ä ÇÏ´Ù. ÇÏÁö¸¸ ºñÁÖ¾ó º£ÀÌÁ÷Àº ¹®¹ý°ú Àǹ̰¡ º¹ÀâÇÏ°Ô ¼³°èµÇ¾ú°í(¿µ¾î Ç¥Çö¿¡ Àͼ÷ÇÏÁö ¾ÊÀº Çѱ¹ÀÎÀ̶ó¸é ´õ¿í Á¢±ÙÇϱâ Èûµé´Ù), ¾ÖÃÊ¿¡ ¾ð¾î ÀÚü°¡ ¹«¿øÄ¢ÇÏ°Ô ¼³°èµÇ¾î ÀÖ¾î ¼ø¼öÇÑ ¼öÇÐÀû »ç°í¿¡ ±â¹ÝÇÑ ¹®Á¦ ÇØ°á ´É·ÂÀ» ÀÍÈ÷´Â µ¥ ÁÁÁö ¾ÊÀº ¿µÇâÀ» ÁÙ ¼ö ÀÖ´Ù.

¾î¶² ¾ð¾î°¡ Àû´çÇÏ´Ù°í ÇÒ ¼ö Àִ°¡?
Ç¥Çö ¼öÁØÀÌ ³·Àº ¾ð¾î¸¦ ¹è¿ì°Ô µÇ¸é ¹®Á¦¸¦ Ǫ´Â µ¥ ÁýÁßÇÏÁö ¸øÇÒ °¡´É¼ºÀÌ Ä¿Áö°Ô µÈ´Ù. C/C++ ·ùÀÇ ¾ð¾î¸¦ ¿¹·Î µé¾îº¸ÀÚ. C/C++´Â ¹®Á¦ÀÇ ÇØ¹ýÀ» °³¹ßÇÏ´Â ±â¹ýÀ» ÀÍÈ÷±â¿¡ ¾Õ¼­ Àü°ø ¼öÁØÀÇ Àü¹® Áö½ÄÀ» ¿ä±¸ÇÑ´Ù. Á¤È®È÷´Â ÄÄÇ»ÅÍ ½Ã½ºÅÛÀÇ ±â¾ï °ø°£ÀÇ °ü¸® ¹× ±â°è ¼öÁØÀÇ È¿À²Àû µ¥ÀÌÅÍ Ã³¸® ¹æ½Ä µîÀÇ µ¿ÀÛ¿ø¸®¸¦ Á¤È®ÇÏ°Ô ÀÌÇØÇÏÁö ¾ÊÀ¸¸é ¹®Á¦¸¦ Ç®±âÀ§ÇÑ Ç¥Çö ¼ö´ÜÀ» °³¹ßÇϱâ Èûµé´Ù. º¹ÀâÇÑ ¹®Á¦¸¦ Ç®±â À§Çؼ­´Â ÀڷᱸÁ¶³ª ¾Ë°í¸®Áò¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇʼöÀûÀ̰í, ¹®Á¦¸¦ Ç®±â À§ÇÑ ±â¹Ý Ç¥Çö ¼ö´ÜÀ» »ý¼ºÇϱâ À§Çؼ­´Â ÄÄÇ»ÅÍ ½Ã½ºÅÛ¿¡ ´ëÇÑ Àü¹®ÀûÀÎ Áö½ÄÀ» ¿ä±¸ÇÏ°Ô µÈ´Ù. ÀÚ¹Ù³ª C# ¶ÇÇÑ ¸¶Âù°¡Áö´Ù(C#ÀÇ #Àº C++ÀÇ ++À» °ãÃÄ ³õÀº °ÍÀ̶ó°í ÇÑ´Ù).

ÀÚ¹Ù³ª C#°ú °°Àº ¾ð¾î´Â C/C++¿¡ ºñÇØ ±â°è Áß½ÉÀûÀÎ »ç°í¸¦ ´ú ¿ä±¸Çϱä ÇÑ´Ù. ÇÏÁö¸¸ ÀÚ¹Ù ¶Ç´Â C#Àº °´Ã¼ÁöÇ⼺À̶ó´Â ƯÁ¤ ÆÐ·¯´ÙÀÓÀ» ¹®¹ýÀûÀ¸·Î °­¿äÇÑ´Ù. ¶ÇÇÑ ¾ÆÁÖ ´Ü¼øÇÑ ÀÀ¿ë¿¡ À־µµ(¿¹¸¦ µé¸é ±×¸²À» ±×¸°´Ù°Å³ª µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â µîÀÇ) ´Ü¼øÇÑ ÀÀ¿ëÀ» À§ÇÑ Àü¹® ¿µ¿ª ¾ð¾î¸¦ º°µµ·Î ÇнÀÇØ¾ß ÇÏ´Â ºÎ´ãÀÌ µû¸¥´Ù(Æ÷Æ®¶õµµ C/C++, ÀÚ¹Ù, C# µîÀÇ ´ÜÁ¡À» ±×´ë·Î °øÀ¯ÇÑ´Ù).

¹°·Ð Àü¹® ÇÁ·Î±×·¡¸Ó·Î Ȱµ¿ÇÒ Àǻ簡 ÀÖ´Â »ç¶÷À̶ó¸é Á¶±Ý ´Ù¸£°Ô »ý°¢ÇÒ ¼öµµ ÀÖ´Ù. Àü¹® ÇÁ·Î±×·¡¸Ó°¡ µÉ »ç¶÷À̶ó¸é »ê¾÷°è¿¡¼­ ³Î¸® »ç¿ëµÇ°í ÀÖ´Â C/C++, ÀÚ¹Ù, C# µîÀÇ ¾ð¾î¸¦ ÀÍÇô³õ°í, ƯÁ¤ ¾ð¾î ±â¹Ý¿¡¼­ »ç¿ëµÇ´Â ¸ðµç Àü¹® ¿µ¿ª ¾ð¾î(Domain-Specific Language)¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ´É·ÂÀ» ±â¸£´Â °ÍÀÌ ¾ÕÀ¸·ÎÀÇ ¹ä¹úÀÌ(?)¿¡ Áö´ëÇÑ ¿µÇâÀ» ÁÙ °ÍÀ̶ó°í »ý°¢ÇÏ´Â µ¶ÀÚµµ ÀÖÀ» °ÍÀÌ´Ù.

±×·¸´Ù¸é ÀÌÂë¿¡¼­ ¹Ý¹®ÇÏ°í ½ÍÀº °ÍÀº ÀÚ¹Ù ¶Ç´Â C#À̶ó´Â ¾ð¾î°¡ ½ÃÀå¿¡¼­ ¾²À̱⠽ÃÀÛÇÑ °ÍÀÌ ¾ó¸¶³ª µÇ¾ú´À³Ä ÇÏ´Â °ÍÀÌ´Ù. C#Àº MS¿¡¼­ 2001³â ¹ßÇ¥ÇÑ »õ·Î¿î ¾ð¾îÀÌ´Ù(¹ßÇ¥µÈ Áö 3³âÀ̳ª Áö³­ ¾ð¾î¸¦ »õ·Î¿î ¾ð¾î¶ó°í ºÒ·¯µµ µÇ´ÂÁö´Â ¸ð¸£°Ú´Ù). MS¶ó´Â ±â¾÷ÀÇ ¿µÇâ·Â ¶§¹®ÀÎÁö C#Àº »õ·Î ½ÃÀÛÇÏ´Â ÇÁ·ÎÁ§Æ®¿¡¼­ °¡Àå ½É°¢ÇÏ°Ô °í·ÁµÇ´Â ¾ð¾î·Î±îÁö ¼ºÀåÇß´Ù. ÀÚ¹Ù¸¦ »ç¿ëÇÒ ÁÙ ¾Æ´Â ÇÁ·Î±×·¡¸Ó¶ó¸é Anonymous Class ±¸Á¶¸¦ »ç¿ëÇÏ´Â À̺¥Æ® ¸ðµ¨¿¡ Àͼ÷ÇÒ °ÍÀÌ´Ù. ¹Ý¸é C#Àº µ¨¸®°ÔÀÌÆ®(delegate)¸¦ »ç¿ëÇÏ¿© À̺¥Æ®¸¦ ±¸ÇöÇÑ´Ù. ù ¹øÂ° ¾ð¾î·Î ÀÚ¹Ù¸¦ ¼±ÅÃÇϰí Á×µµ·Ï °øºÎÇÑ »ç¶÷À̶ó¸é C#ÀÇ ÀÌ·¯ÇÑ ±¸Á¶°¡ ½±°Ô ¹Þ¾Æµé¿©Áú ¸® ¸¸¹«ÇÏ´Ù.

Àü¹® ÇÁ·Î±×·¡¸Ó·Î Ȱµ¿ÇÒ Àǻ簡 ÀÖ´Â »ç¶÷À̶ó¸é ±Þº¯ÇÏ´Â ÇÁ·Î±×·¡¹Ö ȯ°æ¿¡ ź·ÂÀûÀ¸·Î ÀûÀÀÇÒ ¼ö ÀÖ´Â ÈÆ·Ãµµ ÇÊ¿äÇÏÁö¸¸ ù ¹øÂ° ÇÁ·Î±×·¡¹Ö ¾ð¾î´Â ÀÌ·¯ÇÑ ÇÁ·Î±×·¡¹Ö ȯ°æ¿¡ ÀûÀÀÇÏ´Â ±â¹ÝÀ» ¸¶·ÃÇØ ÁÙ ¼ö ÀÖ´Â ¾ð¾î¸¦ ¼±ÅÃÇÏ´Â °ÍÀÌ ¸¶¶¥ÇÏ´Ù. 'C#À» Àß »ç¿ëÇÏ´Â' ÇÁ·Î±×·¡¸Óº¸´Ù´Â 'ÇÁ·Î±×·¥À» Àß Â¥´Â' ÇÁ·Î±×·¡¸Ó°¡ µÇ´Â °ÍÀÌ ¿ì¼±ÀÌ´Ù.

°ú¿¬ C/C++´Â ¸¶¶¥ÇÏÁö ¾ÊÀº°¡?
C/C++, ÀÚ¹Ù, C#ó·³ ±â°è Á᫐ ÆÐ·¯´ÙÀÓ(Imperative Paradigm)À» »ç¿ëÇÏ´Â ¾ð¾î¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏÁö ¾Ê´Ù°í À̾߱âÇÒ ¼ö´Â ¾ø´Ù. ¿ÀÈ÷·Á '¹Ýµå½Ã °ÅÃİ¡¾ß µÇ´Â' ÂÊÀÌ ´õ ÀûÇÕÇÑ Ç¥ÇöÀÏ °ÍÀÌ´Ù. ºÐ¸íÈ÷ C/C++´Â ÇöÀç »ç¿ëµÇ°í ÀÖ´Â ÇÁ·Î±×·¡¹Ö ±â¼úÀ» ÃæºÐÈ÷ ¸Àº¸±â¿¡ ¾ÆÁÖ ÁÁÀº ¾ð¾îÀÌ´Ù. ¶ÇÇÑ, ±â°è Á᫐ ÆÐ·¯´ÙÀÓÀÌ ¹®Á¦¸¦ Ç®ÀÌÇÏ´Â µ¥ ¹Ýµå½Ã »ç¿ëµÇ¾î¾ß ÇÏ´Â °æ¿ìµµ Çã´ÙÇÏ´Ù. SICP(Structure and Interpretation of Computer Programs, MIT Press)¿¡¼­ ºô·Á¿Â ´ÙÀ½ ¿¹¸¦ »ìÆìº¸ÀÚ.

"¿ì¸®´Â º¸Åë ¼¼»óÀ» µ¶¸³ ¹°Ã¼µéÀÌ »ì°í ÀÖ´Â °÷À¸·Î º»´Ù. °¢ ¹°Ã¼´Â Àڱ⸸ÀÇ »óŰ¡ ÀÖ°í, ±× »óÅ´ ½Ã°£¿¡ µû¶ó º¯È­ÇÑ´Ù. ¾î¶² ¹°Ã¼°¡ '»óŸ¦ °¡Áø´Ù'´Â ¸»Àº ±× ÇൿÀÌ ±× ¿ª»ç¸¦ Áö´Ñ´Ù´Â ¶æÀÌ´Ù. ÀºÇà °Å·¡¸¦ ¿¹·Î µé¸é, 'Áö±Ý 100´Þ·¯¸¦ ÀÎÃâ ÇÒ ¼ö Àִ°¡?'¶ó´Â Áú¹®ÀÇ ´äÀÌ, ¿¹±Ý°ú ÀÎÃâÀÇ Áö³ª°£ ¿ª»ç¿¡ ÀÇÁ¸ÇÑ´Ù´Â Á¡¿¡¼­, ÀºÇà °èÁ´ »óŸ¦ °¡Áø´Ù°í ÇÒ ¼ö ÀÖ´Ù."

½Ã°£¿¡ µû¶ó »óŰ¡ º¯ÇÏ´Â °è»ê»óÀÇ ¹°Ã¼¶ó´Â °ÍÀÌ ¾î¶°ÇÑ °ÍÀÎÁö¸¦ ¼³¸íÇϱâ À§ÇØ ÀºÇà °èÁ¿¡¼­ µ·À» ÀÎÃâÇÏ´Â »óȲÀ» ¿¹·Î µé¾îº¸ÀÚ. ÀÎÃâ µ¿ÀÛÀº ÀÎÃ⠱ݾ×À» amount¶ó´Â ÀÎÀÚ·Î ¹Þ´Â withdraw¶ó´Â ÇÁ·Î½ÃÀú·Î Ç¥ÇöÇÑ´Ù. °èÁ¿¡ ¿¹±ÝµÈ µ·ÀÌ ÀÎÃâÇϱ⿡ ÃæºÐÇÑ ±Ý¾×À̶ó¸é withdraw ÇÁ·Î½ÃÀú´Â ÀÜ°í¸¦ º¸¿©ÁÖ°í, ±×·¸Áö ¾Ê´Ù¸é ¡®ÀÜ°í ºÎÁ·¡¯À̶ó´Â ¹®ÀÚ¸¦ º¸¿©ÁÖ¾î¾ß ÇÏ´Â »óȲÀÌ´Ù.

C#À» »ç¿ëÇÏ¿© ÀÌ¿Í °°Àº »óȲÀ» ÇÁ·Î±×·¡¹ÖÇÑ´Ù¸é °´Ã¼ÁöÇâ ÆÐ·¯´ÙÀÓ(Object-Oriented Paradigm)¿¡ ÀÔ°¢ÇÏ¿© <¸®½ºÆ® 1>°ú °°ÀÌ ÇÁ·Î±×·¡¹ÖÇÒ °ÍÀÌ´Ù.

 <¸®½ºÆ® 1> C#À¸·Î ÀÛ¼ºÇÑ ÄÚµå

ÇÁ·Î±×·¥À» ½ÇÇàÇÏ·Á¸é, Account °´Ã¼¸¦ »ý¼ºÇÏ°í »ý¼ºµÈ °´Ã¼¿¡¼­ °ªÀ» »©³ª°¡¾ß ÇÑ´Ù.

Account account = new Account(100);
account.Withdraw(25);
(75¸¦ È­¸é¿¡ Ãâ·ÂÇÑ´Ù)
account.Withdraw(90);
("ÀÜ°í ºÎÁ·"À» È­¸é¿¡ Ãâ·ÂÇÑ´Ù)
account.Widthdraw(15);
(60À» È­¸é¿¡ Ãâ·ÂÇÑ´Ù)

SICP¿¡¼­´Â ¿ì¸®¿¡°Ô Àͼ÷ÇÑ ÀÌ¿Í °°Àº ÇÁ·Î±×·¡¹Ö ¹æ¹ýÀ» ´ÙÀ½°ú °°ÀÌ ¼³¸íÇÑ´Ù.

"°¢ ¹°Ã¼´Â »óÈ£ ÀÛ¿ëÀ¸·Î °´Ã¼°£¿¡ ÀÇÁ¸ÇÏ´Â »óÅ º¯È­¸¦ ¸¸µé¸é¼­ ¼­·Î¿¡°Ô ¿µÇâÀ» ÁØ´Ù. ÀÌ·¸°Ô ½Ã½ºÅÛÀ» ºÐ¸®µÈ °´Ã¼ÀÇ ÇÕ¼ºÀ̶ó°í º¸´Â ½Ã°¢Àº, ½Ã½ºÅÛÀÇ »óÅ º¯¼ö¸¦ ¹Ðµµ ÀÖ°Ô °áÇÕµÈ ¿©·¯ °³ÀÇ ¼­ºê ½Ã½ºÅÛÀ¸·Î ¹­À» ¼ö ÀÖ°í ¼­ºê ½Ã½ºÅÛ³¢¸®´Â ´À½¼ÇÏ°Ô ¹­ÀÎ ±¸Á¶¸¦ À¯ÁöÇÏ´Â °æ¿ì¿¡ ¾ÆÁÖ ¾µ¸ð ÀÖ´Ù."

ÀÌ·± »ç°í¹æ½ÄÀº ½Ã½ºÅÛ °è»ê ¸ðµ¨ÀÇ Á¶Á÷À» Â¥¸ÂÃâ ¶§ ¾ÆÁÖ ¾µ¸ð Àִ ƲÀÌ µÈ´Ù. ¸ðµâº°·Î Àß ±¸¼ºµÈ ¸ðµ¨À» ¸¸µé·Á¸é ½Ã½ºÅÛ ³»ÀÇ ½ÇÁ¦ ¹°Ã¼¸¦ º»¶á °è»ê»óÀÇ ¹°Ã¼·Î ¸ðµ¨À» ºÐÇÒÇØ¾ß ÇÑ´Ù. °¢ °è»ê °´Ã¼´Â ½Ç¹°ÀÇ »óŸ¦ ¹¦»çÇÏ´Â Àڱ⠻óÅ º¯¼ö(local state variable)¸¦ °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù. ±×¸®°í ½Ç¹°(Object)ÀÇ »óÅ´ ½Ã°£¿¡ µû¶ó º¯È­Çϱ⠶§¹®¿¡ ÀÌ¿¡ ´ëÀÀÇÏ´Â °è»ê»óÀÇ ¹°Ã¼ »óÅ º¯¼ö°¡ Á¸ÀçÇØ¾ß ÇÑ´Ù. ÄÄÇ»ÅÍÀÇ °è»ê ½Ã°£À¸·Î ½Ã½ºÅÛÀÇ ½Ã°£À» Èä³»³»°íÀÚ ÇÑ´Ù¸é, ÇÁ·Î±×·¥ ½ÇÇà Áß¿¡ ÇൿÀ» ¹Ù²Ü ¼ö ÀÖ´Â °´Ã¼¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖ¾î¾ß ÇÑ´Ù. C/C++, ÀÚ¹Ù, C#¿¡¼­´Â ÀÌ¿Í °°ÀÌ ÇÁ·Î±×·¥ ½ÇÇà Áß¿¡ ÇൿÀ» ¹Ù²Ü ¼ö ÀÖ´Â °´Ã¼¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ¸·Î ¹èÁ¤ ¿¬»êÀÚ(Assignment Operator)¸¦ Áö¿øÇÑ´Ù. ¹°·Ð '= 'ÀÌ´Ù.

´Ù½Ã ù ¹øÂ° ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¼±Åà ¹®Á¦·Î µ¹¾Æ°¡ º¸ÀÚ. ¾ÕÀÇ ¿¹Á¦´Â ³Ê¹«µµ °£°áÇÏÁö¸¸ ù ¹øÂ° ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î C/C++, ÀÚ¹Ù, C# µîÀÇ ¾ð¾î°¡ ¸¶¶¥ÇÏÁö ¾ÊÀº ÀÌÀ¯´Â ¿ì¼± ¹®¹ý°ú Àǹ̰¡ »ó´çÈ÷ º¹ÀâÇÏ´Ù´Â °ÍÀÌ´Ù. C++´Â ±âÃÊ ¼öÁØÀÇ ¾ð¾î¸¸À» ÀÍÈ÷´Â µ¥ ¼öõ ÆäÀÌÁöÀÇ Àü¹®ÀûÀÎ ¼³¸í¼­°¡ ÇÊ¿äÇÏ´Ù. C++º¸´Ù ÈξÀ Àǹ̰¡ °£°áÇÑ ÀÚ¹Ù³ª C#¸¸ ÇÏ´õ¶óµµ ´ëºÎºÐÀÇ °ü·Ã ±³Àç¿¡¼­ ¹®Á¦ ÇØ°á ¹æ¹ýÀ» À̾߱âÇÏ´Â °ÍÀÌ ¾Æ´Ñ ¾ð¾î ±× ÀÚüÀÇ ¹®¹ý°ú Àǹ̸¦ ¼³¸íÇÏ´Â µ¥¸¸ ¼ö¹é ÆäÀÌÁö¸¦ ÇÒ¾ÖÇÏ´Â µ¥ ±× ¹®Á¦°¡ ÀÖ´Ù.

µÎ ¹øÂ° ¹®Á¦´Â °´Ã¼ÁöÇ⼺°ú °°Àº ƯÁ¤ ÆÐ·¯´ÙÀÓÀÇ ÀÌÇØ¸¦ ¹®¹ýÀûÀ¸·Î °­¿äÇÑ´Ù. <¸®½ºÆ® 1>¿¡¼­ Account Ŭ·¡½º¸¦ ¼±¾ðÇߴµ¥ ÀÚ¹Ù ¶Ç´Â C#¿¡¼­´Â ÀÌ¿Í °°ÀÌ Å¬·¡½º ¾øÀÌ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ¾ø°í, ¾ð¾îÀûÀ¸·Î °´Ã¼ÁöÇâ ÆÐ·¯´ÙÀÓÀ» °­¿äÇÏ°Ô µÈ´Ù. SICP¿¡¼­ ±³À°¿ë ¾ð¾î·Î ¼±ÅÃÇÑ Scheme¿¡¼­ ¹èÁ¤ ¿¬»êÀÚ´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

(set! )

C#À¸·Î ÀÛ¼ºÇÑ <¸®½ºÆ® 1>À» SchemeÀ¸·Î ÀÛ¼ºÇϸé <¸®½ºÆ® 2>¿Í °°ÀÌ µÈ´Ù.

 <¸®½ºÆ® 2> SchemeÀ¸·Î ÀÛ¼ºÇÑ ÄÚµå

<¸®½ºÆ® 1>°ú ¸¶Âù°¡Áö·Î balance º¯¼ö°¡ °øÀ¯ ȯ°æ¿¡¼­ µ¿ÀÛÇÏÁö ¾Êµµ·Ï ÇÏ°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇØ¼­ '°¡µÎ¾î À̸§ Áþ±â' ±â¹ýÀ¸·Î withdraw ³»ºÎ¿¡ °¡µÎ¾î¹ö¸± ¼ö ÀÖ´Ù.

(define widthdraw
    (let ((balance 100))
    (lambda (amount)
        (if >= balance amount)
            (begin     (set! balance (- balance amount))
                balance)
        "ÀÜ°í ºÎÁ·")

¿©±â¼­´Â Scheme ¹®¹ýÀ» Àß ¸ð¸£´Â µ¶ÀÚµéÀÌ º¸±â¿¡ Àͼ÷ÇÏÁö ¾ÊÀº ¸í·ÉµéÀÌ ÀÖÀ¸¹Ç·Î ¾î·Á¿ï ¼öµµ ÀÖÁö¸¸ <¸®½ºÆ® 1>°ú <¸®½ºÆ® 2>¸¦ ºñ±³ÇØ º¸¾ÒÀ» ¶§, ¾î¶² ¾ð¾î¸¦ ¼±ÅÃÇÏ´Â °ÍÀÌ ¡®¹®¹ýÀÇ È¾Æ÷¡¯·ÎºÎÅÍ ÀÚÀ¯·Î¿ï °ÍÀΰ¡¸¦ ´À³¥ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

C ¾ð¾î ¹®¹ý°ú °í±Þ ÇÁ·Î±×·¡¸Ó°¡ µÇ´Â ±æ  
ÀÎÅͳݿ¡ ¶°µµ´Â À̾߱â 1 - ÄË Åè½¼°ú µ¥´Ï½º ¸®Ä¡ÀÇ °¡»ó ÀÎÅͺä
¿ì¸° ¸Öƽ½º¸¦ º¸°í(°¡´ÉÇÑÇÑ ¾ÆÁÖ º¹ÀâÇÏ°í ¾ÏÈ£°°ÀÌ ¸ðÈ£ÇØ¼­) ÀÏ¹Ý »ç¿ëÀÚµéÀº ¾Æ¿¹ »ç¿ëÇÒ ¾öµÎ¸¦ ³»Áöµµ ¸øÇÒ »õ·Î¿î ½Ã½ºÅÛÀ» ¼³°èÇß½À´Ï´Ù. ±×¸®°í ¸Öƽ½ºÀÇ ÆÐ·¯µð·Î À̸§À» À¯´Ð½º·Î Á¤ÇßÁÒ. ¹¹ ÀϺδ Á» ºñ²¿´Â µíÇÑ ¾Ï½Ã¸¦ ÁÖ±â À§ÇÑ ÀÌÀ¯µµ ÀÖ¾úÁö¸¸¿ä. ±× ´ÙÀ½ µ¥´Ï½º¿Í ºê¶óÀ̾ðÀº ÆÄ½ºÄ®À» ¿ÏÀüÈ÷ µÚ¼¯¾î ³õÀº µíÇÑ ¾ð¾î¸¦ ¸¸µé°í À̸§À» `A`¶ó°í Çß½À´Ï´Ù.

±× µÚ »ç¶÷µéÀÌ ±× ¾ð¾î·Î ÁøÂ¥ Áß¿äÇÑ ÇÁ·Î±×·¥À» °³¹ßÇÏ·Á°í ½ÃµµÇϰí ÀÖ´Ù´Â °ÍÀ» ¾Ë°í ³ª¼­ ¿ì¸®´Â À绡¸® ¾ð¾î¸¦ ¾ÏÈ£È­ÇØ¼­ ´õ¿í »ç¿ëÇÏ±â ¾î·Æ°Ô ¸¸µé¾ú°í ÀÌ ¾ð¾î´Â `B`¸¦ °ÅÃÄ BCPL, ±×¸®°í °á±¹ C°¡ µÇ¾ú½À´Ï´Ù. ¿ì¸° ´ÙÀ½°ú °°Àº ¹®ÀåÀ» ±ú²ýÇÏ°Ô ÄÄÆÄÀÏÇÒ ¼ö ÀÖÀ» ¶§°¡ µÅ¼­¾ß ºñ·Î¼Ò °³¹ßÀ» Áß´ÜÇß½À´Ï´Ù.

for(;P("\n"),R-;P("|"))for(e=C; e-; P("_"+(*u++/8)%2))P("|"+(*u/4)%2);

Çö´ëÀÇ ÇÁ·Î±×·¡¸ÓµéÀÌ ÀÌ·¸°Ô ¾ÏÈ£ °°Àº ¹®ÀåÀ» Çã¿ëÇÏ´Â °³¶± °°Àº ¾ð¾î¸¦ »ç¿ëÇÒ °ÍÀ̶ó°í´Â ÀüÇô »ý°¢Áö ¸øÇß½À´Ï´Ù. ±×°Ç ¿ì¸®ÀÇ »ó½Ä ¹ÛÀ̾úÁÒ. ¿ì¸° ½ÇÁ¦·Î ÀÌ°É ¼Ò·Ã¿¡ ÆÈ¾Æ¼­ ¼Ò·ÃÀÇ ÄÄÇ»ÅÍ °úÇбâ¼úÀ» 20³â ÀÌ»ó Åðº¸ÇÏ°Ô ¸¸µé »ý°¢À̾ú°Åµç¿ä.

ÀÎÅͳݿ¡ ¶°µµ´Â À̾߱â 2 - ÃÊ±Þ ÇÁ·Î±×·¡¸Ó¿Í °í±Þ ÇÁ·Î±×·¡¸ÓÀÇ Â÷ÀÌ
´ÙÀ½Àº ¸ðµÎ ¸ð´ÏÅÍ È­¸é¿¡ "Hello, World"¸¦ Âï±â À§ÇÑ ÇÁ·Î±×·¥ÀÔ´Ï´Ù.

´ëÇÐ ½ÅÀÔ»ý
program Hello(input, output)
begin
writeln('Hello World')
end.

½ÅÀÓ ±³¼ö
#include
void main(void) {
char *message[] = {"Hello ", "World"};
int i;

for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}

°è¾àÁ÷ Àü¹®°¡
#include

class string {
private:
int size;
char *ptr;

public:
string() : size(0), ptr(new char('\0')) {}

string(const string &s) : size(s.size) {
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}

~string() {
delete [] ptr;
}

friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);
};

// »ý·«...
str = "Hello World";
cout << str << endl;
return(0);
}

¼÷·ÃµÈ ÇØÄ¿
% cc -o a.out ~/src/misc/hw/hw.c

±¸·ç(ÁöÁ¸) ÇØÄ¿
% cat
Hello, world.
^D

´Ù¾çÇÑ ÇÁ·Î±×·¡¹ÖÀÇ Æ²À» Ȱ¿ëÇÒ ¼ö Àִ°¡?
ÈçÈ÷ ¸»ÇÏ´Â °´Ã¼ÁöÇâ ¾ð¾î°¡ ¾Æ´Ñ HaskellÀ̳ª SchemeÀ» »ç¿ëÇØ¼­µµ C#À̳ª ÀÚ¹Ù¿Í °°Àº °´Ã¼ÁöÇâ ¾ð¾î°¡ ÇϰíÀÚ ÇÏ´Â ¸Þ½ÃÁö Àü´Þ(message-passing) ÇÁ·Î±×·¡¹Ö ±â¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ÇÁ·Î½ÃÀú´Â ÀÎÃâ °è»ê±â¸¦ Ç¥ÇöÇÏ´Â ÇÁ·Î½ÃÀúÀÌ´Ù.

(define (make-withdraw balance)
    (lambda (amount)
        (if (>= balance amount)
            (begin     (set! balance (- balance amount)
                balance)
            "ÀÜ°í ºÎÁ·")

´ÙÀ½°ú °°ÀÌ make-withdraw¸¦ 2¹ø ¼±¾ðÇϸé W1°ú W2´Â µÎ °³ÀÇ ¹°Ã¼¸¦ ¸¸µå´Â ¸ñÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. W1°ú W2´Â °¢°¢ ÀڽŸ¸ÀÇ »óꝼö balance¸¦ °¡Áö°í ÀÖ´Â ¿ÏÀüÇÑ µ¶¸³¹°Ã¼ÀÌ´Ù.

(define (W1 (make-withdraw 100))
(define (W2 (make-withdraw 200))

´ÙÀ½°ú °°ÀÌ Çϸé ÀÎÃâ»Ó¸¸ ¾Æ´Ï¶ó ¿¹±Ý(deposit)À» °ü¸®ÇÏ´Â ¹°Ã¼µµ ¸¸µé ¼ö ÀÖ°í, ±×·¸°Ô ÇÏ¸é °£´ÜÇÑ ÀºÇà °èÁ¸¦ Ç¥ÇöÇÏ°Ô µÈ ¼ÀÀÌ´Ù. ´ÙÀ½Àº Ãʱâ ÀÜ°í¸¦ ÁÖ°í ¡®ÀºÇà °èÁ¡¯¸¦ ¸¸µé¾î ÁÖ´Â ÇÁ·Î½ÃÀú´Ù.

(define (make-account balance)
  (define (withdraw amount)
    (if (>= balance amount)
        (begin (set! balance (- balance amount))
               balance)
        "Insufficient funds"))
  (define (deposit amount)
    (set! balance (+ balance amount))
    balance)
  (define (dispatch m)
    (cond ((eq? m 'withdraw) withdraw)
          ((eq? m 'deposit) deposit)
          (else (error "Unknown request -- MAKE-ACCOUNT"
                       m))))
  dispatch)

ÀÌ¿Í °°ÀÌ ¸¸µç make-account´Â °èÁ¸¦ Ç¥ÇöÇÏ´Â ¿ÏÀüÇÑ µ¶¸³ ¹°Ã¼, Áï °´Ã¼·Î µ¿ÀÛÇϰí, Dispatch ÇÁ·Î½ÃÀú ±× ÀÚü°¡ ÀºÇà °èÁ ¹°Ã¼¸¦ Ç¥ÇöÇÏ´Â °ªÀÌ µÈ´Ù. ÀÌ´Â °´Ã¼ÁöÇâ ÆÐ·¯´ÙÀÓÀ» ¿ÏÀüÇÏ°Ô ±¸ÇöÇÑ´Ù. ¶ÇÇÑ ¹èÁ¤¹®À» »ç¿ëÇÏ¿© ¸Þ¸ð¸®ÀÇ ÁöÁ¤ÇÑ °÷¿¡ °ªÀ» ÀúÀåÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡¼­ ±â°è Á᫐ ÆÐ·¯´ÙÀÓÀ» »ç¿ëÇÒ ¼ö Àִ ȯ°æÀ̶ó´Â °Í ¶ÇÇÑ ¾Ë ¼ö ÀÖ´Ù.

C/C++, C#, ÀÚ¹Ù µîÀÇ ¾ð¾î ÆÐ·¯´ÙÀÓÀÎ ÀÌ ¹æ½ÄÀº ÄÄÇ»ÆÃ ¿ª»ç(Computing History)¸¦ ¼øÂ÷ÀûÀ¸·Î Ç®¾î¾ß ÇÏ´Â ¹®Á¦¿¡ °¡Àå ÀûÇÕÇÑ ¹æ½ÄÀÌ´Ù. ÇÏÁö¸¸ µæÀÌ ÀÖÀ¸¸é ½ÇÀÌ ÀÖ´Â ¹ý, ¹èÁ¤ ¸í·ÉÀÇ »ç¿ë¿¡¼­ ¹ß»ýÇÏ´Â ¼Õ½ÇÀº ´ç¿¬È÷ ¹ß»ýÇÑ´Ù. ¹èÁ¤ ¸í·ÉÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é, °°Àº ÇÁ·Î½ÃÀú¸¦ ÀÎÀÚ·Î ÇÁ·Î½ÃÀú¸¦ ½ÇÇàÇÏ¸é ¾ðÁ¦³ª °°Àº °ªÀÌ ³ª¿À°Ô µÈ´Ù. Square¸¦ °è»êÇÏ´Â ´ÙÀ½°ú °°Àº ÇÔ¼ö°¡ ÀÖ´Ù°í ÇÏÀÚ.

square(x) = x * x

ÇÔ¼ö¸¦ ¿¬»êÇÏ´Â ÇÁ·Î½ÃÀú¸¦ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.

(define (square x) (* x x))

ÀÛ¼ºµÈ ÇÁ·Î½ÃÀú¿¡ 2 °ªÀ» ÁÖ¸é ¾ðÁ¦³ª 4¶ó´Â °ªÀ» ¹ÝȯÇÑ´Ù. ÀÌ·± °æ¿ì ÇÁ·Î½ÃÀú¸¦ ¼öÇÐÀû ÇÔ¼ö(Function)·Î º¼ ¼ö ÀÖ°í, À̸¦ °ª Áß½É(Value-Oriented) ÇÁ·Î±×·¡¹ÖÀ̶ó°í ÇÑ´Ù. '´ëÄ¡ °è»ê ¸ðµ¨(Substitution Model)¡¯Àº ÇÁ·Î½ÃÀúÀÇ Àû¿ëÀ̶õ ÀÎÀÚ¸¦ °ªÀ¸·Î ¹Ù²Ù¾î¼­ ÇÁ·Î½ÃÀúÀÇ °ªÀ» °è»êÇÏ´Â ¹æ¹ýÀ¸·Î, °ª(ÇÔ¼ö) Á᫐ ÆÐ·¯´ÙÀÓ(Functional Paradigm) Àü°³ ¹æ½ÄÀÌ´Ù. Á¦°öµéÀÇ ÇÕÀ» °è»êÇÏ´Â sumofsquare ÇÔ¼ö´Â ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºµÈ´Ù.

sumofsquare(x) = square(x) + square(x)

ÇÏÁö¸¸ ¹èÁ¤¹®À» »ç¿ëÇÒ ¶§ ´ëÄ¡ ¸ðµ¨Àº ´õ ÀÌ»ó »ç¿ëÇÒ ¼ö ¾ø°Ô µÈ´Ù. ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­ ³Î¸® »ç¿ëµÇ´Â °³Ã¼¿Í ¹èÁ¤ ¸í·ÉÀº »ç½Ç ±× ÀûÀýÇÑ ÀÌ·ÐÀû ±â¹ÝÀ̳ª ±ò²ûÇÑ ¼öÇÐÀûÀÎ ¸ðµ¨ÀÌ Á¸ÀçÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.

¹èÁ¤ ¸í·ÉÀº ¹®Á¦¸¦ º¹ÀâÇÏ°Ô ¸¸µç´Ù. ¹èÁ¤ ¸í·ÉÀÌ ¾î¶² ½ÄÀ¸·Î ¹®Á¦¸¦ º¹ÀâÇÏ°Ô ¸¸µé ¼ö ÀÖ´ÂÁö ¾Ë¾Æº¸±â À§ÇØ ÀÏÁ¤ ±Ý¾× balance¿¡¼­ ÀÔ·ÂÇÑ ±Ý¾×À» »©´Â make-decrementer ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇØ º¸ÀÚ. ¹èÁ¤ ¸í·É¹®À» »ç¿ëÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡, ±Ý¾×À» ´©ÀûÇÏ´Â È¿°ú´Â ¾ø´Ù.

(define (make-decrementer balance)
  (lambda (amount)
    (- balance amount)))

¹èÁ¤¹®À» »ç¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î ´ëÄ¡ ¸ðµ¨·Î make-decrementer°¡ ¾î¶»°Ô ½ÄÀÇ °è»ê °úÁ¤À» ºÐ¼®ÇÏ¿© ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù.

((make-decrementer 25) 20)

½ÄÀ» Á¶ÇÕÇÏ´Â ¿¬»êÀÚ¸¦ °£·«ÇÏ°Ô ¸¸µé±â À§ÇØ make-decrementer¸¦ ÆîÄ¡°í balance¸¦ 25·Î ´ëÄ¡ÇÑ´Ù. ±×·¯¸é ´ÙÀ½°ú °°Àº ½ÄÀ¸·Î ÁÙÀÏ ¼ö ÀÖ´Ù.

((lambda (amount) (- 25 amount)) 20)

ÀÌÁ¦ lambda ½Ä ³»ÀÇ amount¸¦ 20À¸·Î ´ëÄ¡ÇØ¼­ ¿¬»êÀÚ¸¦ Àû¿ëÇÏ¸é ´ÙÀ½°ú °°´Ù.

(- 25 20)

¸¶Áö¸· °è»ê °á°ú´Â 5´Ù. ±×·¯³ª ¹èÁ¤¹®À» »ç¿ëÇÑ ´ÙÀ½ ÇÁ·Î½ÃÀú´Â ÀÌ¿Í °°Àº °á°ú¸¦ ±â´ëÇÒ ¼ö ¾ø°Ô µÈ´Ù.

(define (make-simplified-withdraw balance)
  (lambda (amount)
    (set! balance (- balance amount))
    balance))

°°Àº ¹æ½ÄÀ¸·Î make- simplified-withdraw¸¦ ºÐ¼®ÇØ º¸ÀÚ.

((make-simplified-withdraw 25) 20)

¸ÕÀú ¿¬»êÀÚ¸¦ °£·«ÇÏ°Ô ¸¸µé±â À§ÇØ make-simplified-withdraw ³»ÀÇ balance¸¦ 25·Î ´ëÄ¡ÇÏ¸é ´ÙÀ½°ú °°Àº ½ÄÀÌ µÈ´Ù.

((lambda (amount) (set! balance (- 25 amount)) 25) 20)

ÀÌÁ¦ lambda ½ÄÀÇ amount¸¦ 20À¸·Î ´ëÄ¡ÇÏ¿© ¿¬»êÀÚ¸¦ Àû¿ëÇÑ´Ù.

(set! balance (- 25 20)) 25

¾ö°ÝÇÏ°Ô ´ëÄ¡ ¸ðµ¨¿¡ µû¶ó ÀÌ ÇÁ·Î½ÃÀú Àû¿ë °úÁ¤ÀÌ ¶æÇÏ´Â ¹Ù¸¦ ¼³¸íÇØ¾ß ÇÑ´Ù¸é, ¿ì¼± balance¸¦ 5·Î µÐ ´ÙÀ½, 25°¡ Àüü ½ÄÀ» °è»êÇÑ °ªÀÌ µÈ´Ù°í ÇÒ ¼ö¹Û¿¡ ¾ø´Ù. Áï, ÀÌ·± ½ÄÀ¸·Î °è»êÇÏ¸é Æ²¸° ´äÀÌ ³ª¿Â´Ù. ¸Â´Â ´äÀ» ¾òÀ¸·Á¸é ¾î¶»°Ôµç ù ¹øÂ°(set! ½ÇÇàÀÇ È¿°ú¸¦ ¹Ý¿µÇϱâ ÀüÀÇ) balance¿Í µÎ ¹øÂ°(set!À» ½ÇÇàÇÑ È¿°ú°¡ ¹Ý¿µµÈ) balance¸¦ ¹Ýµå½Ã ±¸ºÐÇÒ ¼ö ÀÖ¾î¾ß¸¸ ÇÑ´Ù. ±×·¯³ª ´ëÄ¡ ¸ðµ¨·Î´Â ÀÌ·± Çö»óÀ» ¼³¸íÇÒ ¼ö ¾ø´Ù.

ÀÌ·± ¹®Á¦°¡ »ý±â´Â ¿øÀÎÀº °á±¹ ´ëÄ¡ ¸ðµ¨ÀÌ ¾ð¾î ³»ÀÇ ½É¹úÀ̶õ °ª¿¡ ºÙÀÎ À̸§ÀÏ »ÓÀ̶ó´Â »ç½Ç¿¡ ¹ÙÅÁÀ» µÎ°í Àֱ⠶§¹®ÀÌ´Ù. ±×·¯³ª set!À» ¾²¸é¼­ º¯¼öÀÇ °ªÀ» ¹Ù²Ü ¼ö ÀÖ°Ô µÇ¸é¼­ºÎÅÍ º¯¼ö´Â ±×Àú À̸§ÀÏ ¼ö°¡ ¾ø´Ù. ÀÌÁ¦ º¯¼ö´Â ¾î¶»°Ôµç °ªÀ» ÀúÀåÇß´Ù°¡ Çʿ信 µû¶ó ¹Ù²Ü ¼öµµ ÀÖ´Â ¡®ÀúÀå¼Ò¡¯¸¦ °¡¸®Å°°Ô µÈ´Ù.

¾î¶² ¾ð¾î¿¡¼­ ¾ðÁ¦³ª ½ÄÀÇ °á°ú¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê°í ¡®°°Àº °ÍÀ¸·Î °°Àº °ÍÀ» ´ëÄ¡ÇÒ ¼ö ÀÖ´Ù¡¯´Â °³³äÀÌ º¸ÀåµÈ´Ù¸é, ±× ¾ð¾î°¡ ¡®ÂüÁ¶¿¡ Åõ¸í(referentially transparent)¡¯ÇÏ´Ù°í ¸»ÇÑ´Ù. ¿ì¸®°¡ ½á¿Â ÄÄÇ»ÅÍ ¾ð¾î¿¡¼­ ¹èÁ¤¹®À» ¾²°Ô µÇ´Â °æ¿ì ÂüÁ¶ Åõ¸í¼ºÀ» º¸ÀåÇÒ ¼ö ¾ø´Ù. ÀÌ·Î ÀÎÇØ ¾ðÁ¦ ´ëÄ¡ ¸ðµ¨À» ½á¼­ ½ÄÀ» ÁÙ¿©µµ µÇ´ÂÁö ÆÇ´ÜÇϱ⠽±Áö ¾Ê´Ù. °á±¹, ¹èÁ¤ ¸í·ÉÀ» »ç¿ëÇÏ´Â ÇÁ·Î±×·¥Àº ¾öû³ª°Ô ³íÁõÇϱⰡ ¾î·Á¿öÁø´Ù.

ÀÏ´Ü ÂüÁ¶ Åõ¸í¼ºÀ» Æ÷±âÇÏ°í ³ª¸é µÎ °´Ã¼°¡ ¡®°°´Ù¡¯´Â °³³äÀ» Á¤ÇüÀû ¹æ¹ýÀ¸·Î Àâ¾Æ³»´Â °Ô ¾î·Á¿öÁø´Ù. »ç½Ç, ½Ç¼¼°è¿¡¼­´Â ¡®°°´Ù¡¯´Â ÀǹÌ, ±× ÀÚü°¡ ±ò²ûÇÏÁö ¾Ê´Ù. ÀϹÝÀûÀ¸·Î È®½ÇÈ÷ µ¿ÀÏÇÑ µÎ °³Ã¼°¡ Á¤¸» °°ÀºÁö Áõ¸íÇÒ ¼ö ÀÖ´Â À¯ÀÏÇÑ ¹æ¹ýÀº ÇÑ °³Ã¼¸¦ °íÃÆÀ» ¶§ ´Ù¸¥ °³Ã¼µµ °°Àº ¹æ½ÄÀ¸·Î º¯ÇÏ´ÂÁö¸¦ »ìÆìº¸´Â °ÍÀÌ´Ù. ±×·¯³ª ¡®°°Àº¡¯ °³Ã¼¸¦ µÎ ¹ø °üÂûÇØ¼­ ±× °³Ã¼°¡ °¡Áö´Â ¾î¶² ¼Ó¼ºÀÌ Ã³À½°ú ´Ù¸£´Ù´Â »ç½ÇÀ» È®ÀÎÇÏ´Â °Í ¿Ü¿¡ Á¤¸» ÇϳªÀÇ °³Ã¼°¡ ¡®º¯Çß´Ù¡¯°í ¸»ÇÒ ¼ö ÀÖ´Â ´Ù¸¥ ¹æ¹ýÀÌ ÀÖÀ»±î? ±×·¡¼­ ¡®°°À½¡¯ÀÇ °³³äÀ» ¸ÕÀú Á¤¸³ÇÏÁö ¾Ê°í¼­´Â ¡®º¯È­¡¯¸¦ ÆÇ´ÜÇÒ ¹æ¹ýÀÌ ¾ø´Â °ÍÀ̰í, º¯È­ÀÇ È¿°ú¸¦ »ìÇÇÁö ¾Ê°í¼­´Â °°À½À» ÀÔÁõÇÒ ¼ö ¾ø´Â °ÍÀÌ´Ù.

C#À̳ª ÀÚ¹Ù °°Àº ¾ð¾î¿¡¼­ °ª ŸÀÔÀÇ ¡®°°À½¡¯°ú ÂüÁ¶ ŸÀÔÀÇ ¡®°°À½¡¯ÀÌ È®¿¬ÇÏ°Ô ±¸ºÐµÇ´Â ÀÌÀ¯µµ ¹Ù·Î ¿©±â¿¡ ÀÖ´Ù. ÇÏÁö¸¸ C/C++, ÀÚ¹Ù, C# µîÀÇ ¾ð¾î¸¦ »ç¿ëÇÑ´Ù¸é ¿ì¼±ÀÇ ±¸ÇöÀÌ ´«¾ÕÀ» °¡¸®°Ô µÇ°í ±× ±¸Çö¿¡¸¸ ±Þ±ÞÇϸé ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¸ñÀûÀÎ ¹®Á¦¸¦ ¿Ã¹Ù¸¥ ¹æ¹ýÀ¸·Î ÇØ°áÇÏ´Â µ¥¿¡ ´ëÇÑ »ý°¢ÀÌ ¹«»öÇØÁö°Ô µÈ´Ù.

SICP¿¡¼­´Â ÀÌ·± ¹®Á¦ÀÇ ÇØ°áÀ» À§ÇÏ¿© ½ºÆ®¸®¹Ö ÆÐ·¯´ÙÀÓ(Streaming Paradigm)À̶ó´Â ±â¹ýÀ» Á¦¾ÈÇϰí, ¡°ÀÌ·¸°Ô ÁÁÀº ´ë¾ÈÀÌ Àִµ¥µµ ¿©ÀüÈ÷ ¹«½ÄÇÑ ±â¹ýÀ» ¾µ·¡?¡±¶ó°í ¹¯´Â´Ù. ¿©·¯ ÆÐ·¯´ÙÀÓÀ» ´Ù ¼ö¿ëÇÒ ¼ö ÀÖ´Â ¾ð¾î¸¦ ù ¾ð¾î·Î ¼±ÅÃÇÔÀ¸·Î½á ¾òÀ» ¼ö ÀÖ´Â ÀÌÁ¡Àº ¹Ù·Î ÀÌ·± °ÍÀ̶ó ÇÒ ¼ö ÀÖ´Ù. ÇÁ·Î±×·¡¹ÖÀ» ¾÷À¸·Î »ï´Â »ç¶÷°ú ±×·¸Áö ¾ÊÀº »ç¶÷À» ¸··ÐÇϰí, ¿©·¯ ¹æÇâÀ¸·Î ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦½ÃÇϰí, ¹®Á¦¸¦ ÇØ°áÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ¿ø·ÐÀ» Á¦½ÃÇÔÀ¸·Î½á ´Ù¸¥ ¹®Á¦¿¡ ºÎµúÈ÷°Ô µÉ ¶§ ¿Ã¹Ù¸¥ ÇØ°á ¹æ¾ÈÀ» ã¾Æ°¥ ¼ö ÀÖ´Â ±æÀ» ¿­¾îÁشٴ °ÍÀÌ´Ù.

¸Æ¶ôÀ» Á¦°ÅÇÑ ¾ð¾îÀÇ ¿ì¿­ ³íÀÇ´Â ÀÇ¹Ì ¾ø´Ù
ÀÌ ±ÛÀ» ÀÐÀº µ¶ÀÚ°¡ ¡°±×·¸´Ù¸é ÀÚ¹Ù°¡ ¾È ÁÁÀº ¾ð¾î¶ó´Â ¸»ÀԴϱî?¡° ¶Ç´Â ¡±Áö±Ý ¿­½ÉÈ÷ C#À» ¹è¿ì±â ½ÃÀÛÇߴµ¥ ¸»Â¯ ÇêÀÏÀ̾ú´Ù´Â ¸»ÀԴϱî?¡°¶ó°í Áú¹®ÇÒ Áöµµ ¸ð¸£°Ú´Ù. ÇÊÀÚ¿¡°Ô ´©±º°¡ ±×·± Áú¹®À» Á÷Á¢ ÇÑ´Ù¸é Àû´çÇÑ ¸»·Î ¾ó¹ö¹«¸®°Å³ª ±× ÀÚ¸®¸¦ ÇÇÇÏ·Á ÇÒ °ÍÀÌ´Ù. ±×·± Áú¹® ÀÚü°¡ ³Í¼¾½ºÀ̱⠶§¹®ÀÌ´Ù.

¾îµð¸¦ °¡µçÁö ÀÚ½ÅÀÌ Çϰí ÀÖ´Â °ÍÀÌ ¿ÇÀº °ÍÀÌ°í ´õ Èûµç °ÍÀÌ¸ç ½É¿ÀÇÑ ¿µ¿ª¿¡ ÀÖ´Â °ÍÀ̶ó°í »ý°¢ÇÏ´Â »ç¶÷µéÀÌ ÀÖ´Â ¹ýÀÌ´Ù. µ¶ÀϾ ¾²´Â °Ô¸£¸¸ Á·ÀÌ ¸Ó¸®°¡ ÁÁÀº ÀÌÀ¯°¡ µ¶ÀϾîÀÇ »ç¿ëÀÌ »ç¿ëÀÚÀÇ Á¤½Å ´É·ÂÀ» Çâ»ó½ÃŰ´Â µ¥ ÀÏÁ¶Çϱ⠶§¹®À̶ó´Â ¿¬±¸°¡ ³ª¿Â Àûµµ ÀÖ¾ú´Ù. ÇÏÁö¸¸ ¾ð¾îÇÐÀÚµéÀÇ ¿¬±¸ °á°ú´Â ÇÑ ¾ð¾î°¡ Ç¥ÇöÇÒ ¼ö ÀÖ´Â °ÍÀº ´Ù¸¥ ¸ðµç ¾ð¾î·Îµµ Ç¥Çö °¡´ÉÇÏ´Ù´Â °ÍÀ̾ú´Ù. µû¶ó¼­ ÀÚ¹Ù¿Í C# µî ¾ð¾îÀÇ ¿ì¿­ ³íÀÇ´Â ¹«ÀǹÌÇÑ °ÍÀÌ´Ù.

ÀڹٷΠǥÇö °¡´ÉÇÑ °ÍÀº C#À¸·Îµµ Ç¥Çö °¡´ÉÇϱ⠶§¹®ÀÌ´Ù. ¹®Á¦´Â ÀÚ¹Ù ¶Ç´Â C#À» °¡Áö°í ÁÖ¾îÁø ¹®Á¦¸¦ ¾î¶»°Ô Ç¥ÇöÇÏ´À³Ä Çϴµ¥ ´Þ¸° °ÍÀ̹ǷΠ°¢ ¾ð¾îÀÇ ¿ìÀ§¸¦ ±¸ºÐÇÏ´Â °ÍÀº ¾ÆÁÖ ¾î¸®¼®Àº ÀÏÀÌ µÈ´Ù.

¿©·¯ ÀÎÅÍ³Ý °Ô½ÃÆÇ¿¡¼­ ¾ÆÁ÷µµ C ¾ð¾î¸¦ °¡¸£Ä¡°í ÀÖ´Â ±¹³» ´ëÇÐÀÇ Çö½Ç¿¡ °³ÅºÇϸ鼭 ÀÌÁ¦´Â C µûÀ§´Â ¹ö¸®°í ÀÚ¹Ù¸¦ °¡¸£ÃÄ¾ß ÇÑ´Ù°í ¸ñû ³ô¿© ¿ÜÄ¡´Â ±ÛÀ» ¿©·¯ ¹ø ºÃ´Ù. C ¾ð¾î¸¦ °¡Áö°í Çϵå¿þ¾î¸¦ Á÷Á¢ Á¦¾îÇÒ ÀÏÀÌ º°·Î ¾ø´Â Áö±ÝÀÇ Çö½Ç¿¡¼­ C ¾ð¾î¸¦ ¹è¿ì´Â °ÍÀÌ Å« Àǹ̰¡ ¾ø´Ù´Â ÁÖÀåÀÌ´Ù. C/C++°¡ ±â°è¿¡ Á÷Á¢ ¸í·ÉÀ» ³»¸®±â¿¡ ¾ÆÁÖ ÀûÇÕÇÑ ±¸Á¶ÀÇ ¾ð¾î¶ó´Â °ÍÀº È®½ÇÇÏ´Ù. ±×¸®°í ¶Ç ÇÑ °¡Áö È®½ÇÇÑ °ÍÀº ´ëÇп¡¼­ ¹è¿ì´Â Á¤µµÀÇ C/C++·Î´Â Çϵå¿þ¾î¸¦ È®½ÇÇÏ°Ô Á¦¾îÇÏ±â ¾î·Æ´Ù´Â °ÍÀÌ´Ù(API¸¦ Á¶ÀÛÇϰųª OS ·¹º§À» Á¶ÀÛÇÏ¿© °á°ú¸¦ ¾ò¾î³»´Â °æ¿ìµµ ÀÖ±ä ÇÏ´Ù. ÇÊÀÚ´Â ÇÑ ÇлýÀÌ OS ·¹º§À» Á¶ÀÛÇÑ ÇÁ·Î±×·¥À¸·Î ºí·ç ½ºÅ©¸°ÀÌ ¾Æ´Ñ ·¹µå ½ºÅ©¸°À» È­¸é¿¡ ÆîÄ¡°í ÀÖ´Â °ÍÀ» º» ÀûÀÌ ÀÖ´Ù).

¿©±â±îÁö ½Å°æ ½á¼­ ±ÛÀ» ÀÐÀº µ¶ÀÚµéÀ̶ó¸é ÇÊÀÚ°¡ ¹«½¼ ¸»À» Çϰí ÀÖ´ÂÁö ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀ̶ó ¹Ï´Â´Ù. ¿äÁò ½Ã´ë¿¡ ¼±ÅÃÇØ¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î´Â ¼ö¾øÀÌ ¸¹´Ù. ÀÌ·¸°Ô ¸¹Àº ¾ð¾îµé Áß¿¡¼­ ¾î¶² ¾ð¾î¸¦ ÀÚ½ÅÀÇ Ã¹ ¾ð¾î·Î ¼±ÅÃÇÏ¿©¾ß ÇÒ±î? ¹°·Ð ¾Æ¹« ¾ð¾î³ª ¼±ÅÃÇØ¼­ °øºÎÇØµµ ¿­½ÉÈ÷¸¸ °øºÎÇÏ°í ¾ð¾îÀÇ ¸Æ¶ôÀ» ÀÌÇØÇÏ¿© ¹®Á¦ ÇØ°á¿¡ ÁýÁßÇÒ ¼ö ÀÖ´Ù¸é »ó°ü¾ø´Ù. ÇÏÁö¸¸ ù ¾ð¾î°¡ ¾ÕÀ¸·ÎÀÇ ÇÁ·Î±×·¡¸Ó·Î¼­ÀÇ Àλý¿¡ Å©°Ô ¿µÇâ·ÂÀ» ¹ÌÄ¡´Â Áß¿äÇÑ ¿ä¼Ò°¡ µÉ °ÍÀÓÀ» »ý°¢ÇÑ´Ù¸é ù ¾ð¾îÀÇ ¼±ÅÃÀº ½ÅÁßÇØ¾ß ÇÒ Çʿ䰡 ÀÖ´Ù. ÀÌÁ¦ °á·ÐÀ» ³»·Áº¸ÀÚ. ù ¹øÂ° ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¼±ÅÃÀº ´ÙÀ½ µÎ °¡Áö ±âÁØÀ» ¸ðµÎ ¸¸Á·ÇØ¾ß ÇÑ´Ù.

¡ß ÇöÀçÀÇ ÇÁ·Î±×·¡¹Ö ±â¼úÀ» ÃæºÐÈ÷ ¸Àº¼ ¼ö Àִ°¡?
¡ß ´Ù¾çÇÑ ¹æ½ÄÀ¸·Î ÇÁ·Î±×·¡¹ÖÇÒ ¼ö ÀÖ´Â »ý°¢À» °®Ãâ ¼ö ÀÖµµ·Ï Çϴ°¡?

ÇÑ ¸¶µð·Î ¸»ÇÏÀÚ¸é °í±Þ ¹®Á¦¸¦ ½±°Ô ÇØ°áÇÒ ¼ö ÀÖ°í, ƯÁ¤ ÆÐ·¯´ÙÀÓ¿¡ Á¾¼ÓÀûÀÎ »ç°í¸¦ °­¿äÇÏÁö ¾ÊÀ¸¸é¼­µµ ¸ðµç ÆÐ·¯´ÙÀÓÀ» ´Ù ¼ö¿ëÇÒ ¼ö ÀÖ´Â ¾ð¾î¶ó¸é ¾Æ¹«°Å³ª °ñ¶ó ½áµµ ÁÁ´Ù´Â ¸»ÀÌ´Ù. ¹°·Ð ±×·¸°Ô ¼±ÅÃÇÏ¿© ¹è¿î ¾ð¾î°¡ »ê¾÷ ÇöÀå¿¡ ÅõÀԵǾúÀ» ¶§ ±×´ÙÁö ¸¹ÀÌ È°¿ëµÇÁö ¾Ê´Â ¾ð¾îÀÏ ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ µÎ °¡Áö ±âÁØÀ» ¸ðµÎ ¸¸Á·ÇÏ´Â ¾ð¾î¸¦ »ç¿ëÇÏ¿© ¿©·¯ ÆÐ·¯´ÙÀÓÀ» Àü°³ÇÏ¸ç ¹®Á¦¸¦ ÇØ°áÇÏ´Â ¹æ½ÄÀ» ÃæºÐÈ÷ ½ÀµæÇß´Ù¸é ±× »ç¶÷Àº ¾Æ¸¶ ¿©·¯ »ç¶÷ÀÌ °¨ÅºÇÏ´Â ÁÁÀº ÇÁ·Î±×·¥À» ÀÛ¼ºÇϰí ÀÖÀ» °ÍÀÌ´Ù.

¾ÆÁ÷µµ C/C++ ¶Ç´Â ÀÚ¹Ù, C#À» ù ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î °øºÎÇÏ´Â °ÍÀÌ ¿Ç´Ù°í »ý°¢ÇÏ´Â »ç¶÷ÀÌ ÀÖ´Ù¸é MS°¡ 2006³â¿¡ ¹ß¸ÅÇÒ ¿¹Á¤ÀÎ À©µµ¿ì ·ÕÈ¥ÀÇ ±ÇÀå »ç¾çÀ» »ìÆìº¸¶ó. À©µµ¿ì ·ÕÈ¥ÀÌ ³ª¿Ã ¶§ÂëÀ̸é CPU°¡ 2°³ ´Þ¸®°í ÇöÀç·Î¼­´Â »ó»óÇÒ ¼ö ¾ø´Â Å« ¸Þ¸ð¸®°¡ ÀåÂøµÈ ÄÄÇ»Å͸¦ Ȩ¼îÇο¡¼­ ÆÇ¸ÅÇÒ °ÍÀÌ´Ù. CPU°¡ 2°³ ´Þ¸° ÄÄÇ»ÅͰ¡ º¸ÆíÈ­µÇ¾úÀ» ¶§ º¯È­ÇÒ »ó¿ë ¾ð¾îµéÀÇ ÆÐ·¯´ÙÀÓ¿¡ ´ëÇØ »ó»óÇØ º¸´Â °Íµµ Áñ°Å¿î ½Ã°£ÀÌ µÉ °ÍÀÌ´Ù. @

* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ ÀÚ¸ÅÁöÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
µ¶ÀÚÀǰß(Talkback)
°á±¹ Scheme À» °øºÎÇ϶ó´Â ¸»Àΰ¡¿ä?
±èÂùÈ«[ 2005/06/02 ]  
Àúµµ ³¡¸ÎÀ½À» º¸°í Á» ´çȲÇß½À´Ï´Ù¸¸,
°á±¹ ÇÊÀÚºÐÀº SchemeÀ» °øºÎÇ϶ó´Â ¸»¾¸À̱º¿ä.

À½, ÇÔ¼öÇü ¾ð¾î¿¡ ´ëÇØ¼­ Áö±Ý ¸· »ý°¢À» Çϰí Àִµ¥,
°á±¹ ÇÔ¼öÇü ¾ð¾î¿¡¼­ ÁÖÀåÇÏ´Â °ÍÀº
'º¯ÇÏ´Â »óÅÂ'°¡ ¹®Á¦¶ó´Â ¸»ÀÌ´õ±º¿ä.

°á±¹ Scheme´Â ¸ðµç ¾ð¾îÀÇ ÆÐ·¯´ÙÀÓÀ»,
±×·¯´Ï±ñ ¸í·ÉÇü, °´Ã¼ÁöÇâ, ÇÔ¼öÇü ¸ðµç ÆÐ·¯´ÙÀÓÀ»
Ç¥ÇöÇÒ ¼ö ÀÖÀ¸´Ï, Scheme ÀÌ
ù ¾ð¾îÀÇ ¼±ÅÃÀ¸·Î ÀûÇÕÇÏ´Ù... ±×·¸°Ô ÀÌÇØ°¡ µÇ´Âµ¥¿ä.

À½, LispÀ̳ªScheme... ÀüÀ§ Ç¥±â½ÄÀ» »ç¿ëÇÑ ¾ð¾îµé.
»ó´çÈ÷ µ¶Æ¯ÇÑ ¾ð¾îÀÓ¿¡´Â Ʋ¸²ÀÌ ¾ø½À´Ï´Ù.
³ª¸§´ë·Î ¹è¿öº¸°íµµ ½Í±¸¿ä.
ÇÏÁö¸¸, ¿ª½Ã... ¹è¿ï °Ç ³Ê¹« ¸¹³×¿ä.

Àú´Â ù ¾ð¾î·Î Smaltalk¸¦ ¹è¿ì´Â °Ô ÁÁ´Ù°í »ý°¢ÇÕ´Ï´Ù.
Smalltalk´Â '°´Ã¼ÁöÇâ'ÀÌ ¾Æ´Ï¸é ÇØ°áÀÌ ¾È µÇ´Â ¾ð¾îÁÒ.

¿ª½Ã, ƯÁ¤ ÆÐ·¯´ÙÀÓÀ» °­¿äÇϱâ 떄¹®¿¡
Smalltalk°¡ ¾È ÁÁÀº °ÍÀΰ¡¿ä?
°³ÀÎÀû ÀǰßÀ¸·Î ÃßõÇÑ´Ù¸é..
¸®½ÀÁÁ¾Æ¿ä~[ 2005/05/27 ]  
ÃßõÇÑ´Ù¸é ¼ø¼­´ë·Î

C++(VC) -> Java -> Perl -> LISP

¼øÀ¸·Î ¹è¿ì´Â°Ô ÁÁ½À´Ï´Ù.
°á±¹ LISP¿¡ ¸ÀÀ» µéÀÌ¸é ´Ù¸¥°Ç ¸ø¾²°Ô µÇÁö¸¸..
ÆÐ·¯´ÙÀÓ...
ÃÖ¹®Çõ[ 2005/04/07 ]  
Áö±Ý±îÁö Âß ±×·¡¿ÔµíÀÌ...

¿ì¸° º¯ÇؾßÇÕ´Ï´Ù.

±×·¯Áö ¾Ê°í¼±... ÅðÈ­Çϱ⠸¶·ÃÀÌÁÒ

ÇÏÁö¸¸ ÆÐ·¯´ÙÀÓÀ̶õ°Ô ½±Áö¸¸Àº ¾Ê³×¿ä
ÃÂ~!!
[ 2005/03/23 ]  
³»°¡ Á¦´ë·Î ¹è¿î ¾ð¾î´Â ¾øÁö¸¸ ±×·¸´Ù°í ³»¼¼¿ï°Íµµ ¾øÁö¸¸

³Ê¹« ¸»¸·Çϳ×....;; ´Ù ¿ÇÀº ¸»À̶ó°í Ä¡ÀÚ ¸¶Áö¸·ÀÌ ¹¹³Ä??

¼¼»óÀº º¯Çϰí ÀÖ°í ±×°É µû¶ó °¡·Á¸é ºñÁÖ¾ó ´å³ÝÀ» »ç¿ëÇ϶õ

À̾߱âÀÎ°Í °°±º...;; ȭȯ¼º ¾ø°í ¸·¾²¿©Áø ¾ð¾î¸¦...ÂÁ

C¾ð¾î³ª ÇÒ¶õ´Ù...;;; °á·ÐÀº ¿­¾ÂÈ÷ Ç϶ó À̰ų×..¸Ó~ ÃÂ
³¡¸ËÀ½ÀÌ ¹º°¡ ÀÌ»óÇÏ´Ù...
À½....[ 2004/12/21 ]  
¾ÆÁ÷µµ C/C++ ¶Ç´Â ÀÚ¹Ù, C#À» ù ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î °øºÎÇÏ´Â °ÍÀÌ ¿Ç´Ù°í »ý°¢ÇÏ´Â »ç¶÷ÀÌ ÀÖ´Ù¸éÀ̶ó°í ¸»ÇÑ´Ù¸é µµµ¥Ã¼ ¹¹ ¾î¶²°ÍºÎÅÍ ¹è¿ì¶õ°ÇÁö.. ÃßõÇÏ´Â ¾ð¾î¶óµµ Âï¾îÁà¾ß ÇÒ°Å °°Àºµ¥..
¿¡ÈÞ~ ¿¡¶óÀÌ ¸ð¸£°Ú´Ù.. ±×³É ÆÄÀ̽ãºÎÅÍ Â÷±ÙÂ÷±Ù ÇØºÁ¾ßÁö..
½Ã´ë°¡ ¾Æ¹«¸® º¯Çصµ ±âº»ÀûÀΠƲÀº º¯ÇÒ¸® ¾øÀ¸´Ï..¾Æ¹«°Å³ª
¼±ÅÃÇØµµ ±× ¶æÀº °°Àº°Å ¾Æ´Ñ°¡...
±×·¯´Ï±î ¶Ç ´çÇѰÅÁö..
David Smith[ 2004/12/18 ]  
¾Ïư ²À ¾Ö¸Å¸ðÈ£ ÇÏ°Ô ³¡³»´Â°Ç Á¶¼± ´ë°¡¸® µé ÀüÅë À̶ó´Ï±î! ¾ÆÁÖ ²Ã°°Áö ¾Ê¾Æ¼­ ¹ÌÄ¡°Î½´.. ÇѸ¶µð·Î ¾ß! À̰ŠºÎÅÍÇØ! ±×·¯¸é µÉ²¬ ²À ÁÖµÕÀÌ ¹ð¹ð µ¹¸®°í »ç¶÷ Á¤½Å »ñ°¥¸®°Ô ¾î·Á¿î ¸» ¿­¶ó Áö²¬À̰í Áö Àß³­Ã´ ÇÏ´Ù°¡´Â °á·ÐÀº ¾ø´Ù´Ï±ñ.. ¾Ïư Á¶¼± ´ë°¡¸®µéÀº ´Ù ÀÌ ¸ð¾ç ÀÌ´Ï.. ¹¹°¡ µÇ³Ä±¸.. ¿¡¶óÀÌ Äã .. Áã¾î ¹Ú°í ½ÃÆÛ¶ó..
¹¹ ÇѰ¡Áö¶óµµ ÃßÃµÇØ Áּžß...
[ 2004/12/16 ]  
°á·ÐÀûÀ¸·Î ¸î°¡Áö Ãßõ¾ð¾î¸¦ Á¦½ÃÇØ ÁÖ¼Å¾ß Ãʺ¸ÀÚµéÀÌ ¼±ÅÃÇϴµ¥ µµ¿òÀÌ µÇÁÒ. ¾î¶±Ç϶ó´Â ¸»¾¸ÀÎÁö ¾Ë ¼ö°¡ ¾ø±º¿ä.
µµ´ëü...
[ 2004/12/15 ]  
¹«½¼ ¸»Àº ÇÏ°í ½ÍÀº°ÇÁö... ¿ø.. ¤Ñ¤Ñ;
°á·ÐÀº...°Á »ó»ó?
[ 2004/12/13 ]  
±×·±°Ç°¡¿©?
 
 
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨í] Çʼö ¾ÆÀÌ...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ì] ÇÁ·Î±×·¡¹Ö...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ç] °¡½¿ÀÇ ²Þ...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨è] ¿ëÀ» ¸¸³ª...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ê] ±âº»±â ¾ø...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ë] »õ·Î¿î ½Ã...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨é] ³ª´®°ú ±³...
'ÁÖÃãÁÖÃã ¼Ò´Ï' º¸±ÞÇü Ä·ÄÚ´õ ½ÃÀå »ï¼º ¸Í°ø¡¦À¯Æ©ºê ¸ÂÃãÇü 'VM-MX20C' [00:07:48]
ÁøÇà ·ùÁØ¿µ ±âÀÚ, Á¦ÀÛ À¯È¸Çö PD
[ZDNET ¿µ¹®¹æ¼Û]±¸±Û À¥ºê¶ó¿ìÀú '±¸±Û Å©·Ò' º£Å¸¹öÀü °ø°³ [00:01:29]
Áöµð³ÝÄÚ¸®¾Æ ¿µ»óÁ¦ÀÛÆÀ
¡°À¥ Ç¥ÁØÀº ¹«½¼!¡±¡¦IE8¿¡ ´ë...
°øÀÎÀÎÁõüÁ¦, ¿ì¸®¿¡°Ô ÀÓ¹ÚÇÑ ¹Ì...
³×À̹ö´Â ¿Ö '10´ë ÇØÄ¿'¿¡ ´ç...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ç] °¡½¿ÀÇ ²Þ...
"¾×ƼºêX¿Í °øÁ¸ ¸ð»ö"¡¦±¸±Û, ...
'À§ÇÇ Àǹ«È­' ÆóÁö ºÐÀ§±â·Î¡¦
ÀÎÆ÷¹ðÅ© "IPTV ¸Þ½Ã¡ ¼­ºñ½º...
³ª¿ìÄÞ, DDoS Â÷´Ü ±â¼ú ƯÇã
¡®Àå¾ÖÀÎ À¥ Á¢±Ù¼º ¿ì¼ö±â°ü¡¯ ¼±...
°õTV, PMP ´Ù¿î·Îµå ¼­ºñ½º ...
Ä¿³Ø¼±Æ®ÄÚ¸®¾Æ, ºÐ´ç »õ »ç¹«½Ç·Î...
 
 
The Korean edition of 'ZDNet' is published under license from CNET Networks, Inc., San Francisco, CA, USA. Editorial items appearing in 'ZDNet Korea' that were originally published in the US Edition of 'ZDNet', 'CNET', and 'CNET News.com' are the copyright properties of CNET Networks, Inc. or its suppliers.
Copyright ¨Ï 2008 CNET Networks, Inc. All Rights Reserved. 'ZDNet', 'CNET' and 'CNET News.com' are trademarks of CNET Networks, Inc.