´ÙÀ½ ÀÌÀü Â÷·Ê

1. ¼­·Ð

C++ Àº °¡Àå ³Î¸® ¾²ÀÌ´Â ¾ð¾îÀÌ°í, ¾ÕÀ¸·Ð ÀÚ¹ÙÀÇ µîÀå°ú´Â »ó°ü¾øÀÌ ¿À·£ ±â°£µ¿¾È ¾²ÀÏ °ÍÀÌ´Ù. C++ Àº ¸Å¿ì ºü¸£°Ô ½ÇÁ¦·Î ÀÚ¹Ùº¸´Ù 20³»Áö 30¹è ´õ »¡¸® ½ÇÇàµÈ´Ù. ÀÚ¹Ù´Â "virtual engine"À§¿¡¼­ ÀÛµ¿µÇ´Â ¹ø¿ª (interpreted)¾îÀ̱⶧¹®¿¡ ¸Å¿ì ´À¸®°Ô ½ÇÇàµÈ´Ù. ÀÚ¹Ù¿¡¼­ ¸Þ¸ð¸® °ü¸®´Â ÀÚµ¿ÀÌ¶ó¼­ ÇÁ·Î±×·¡¸ÓµéÀº ¸Þ¸ð¸® ¾ó·ÎÄÉÀÌ¼Ç (allocation) À» Á÷Á¢ ´Ù·çÁö ¾Ê´Â´Ù. ÀÌ ¹®¼­´Â C++ »ç¿ëÀ» ´õ¿í ÆíÇÏ°Ô Çϱâ À§ÇØ C++ ¿¡¼­ÀÇ ¸Þ¸ð¸® °ü¸®¸¦ ÀÚµ¿È­ÇÏ´Â °ÍÀ» ½ÃµµÇÑ´Ù. ÀÚ¹ÙÀÇ ÁÁÀº Á¡ ¸Þ¸ð¸® ¾ó·ÎÄÉÀ̼ÇÀÌ ÀÚµ¿ÀûÀ¸·Î 󸮵ȴٴ °ÍÀÌ´Ù. ÀÌ howto´Â "C++"ÀÌ ¸Þ¸ð¸® °ü¸®¸é¿¡¼­ ÀÚ¹Ù ¾ð¾î¿Í(¸¦) "°æÀï/¸ð¹æ"ÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÒ °ÍÀÌ´Ù.

C++ ÇÁ·Î±×·¡¸ÓµéÀº ¼öµ¿ ¸Þ¸ð¸® ¾ó·ÎÄÉÀ̼Ƕ§¹®¿¡ ¸¹Àº ½Ã°£À» ¼ÒºñÇÑ´Ù. ÀÌ ¹®¼­¿¡ ÀÖ´Â Á¤º¸´Â ¿©·¯ºÐ¿¡°Ô µð¹ö±ëÇÏ´Â ½Ã°£À» ÁÙÀÏ ¼ö ÀÖ´Â ´õ ³ªÀº ¾ÆÀ̵ð¾î¿Í ÆÁµéÀ» Á¦°øÇÒ °ÍÀÌ´Ù.

1.1 ÇöÀç C++ ÄÄÆÄÀÏ·¯µéÀÌ Á÷¸éÇÑ ¹®Á¦µé

C++ Àº CÀÇ super-set ÀÎ °ü°è·Î "C" ¾ð¾îÀÇ ¸ðµç ¾ÈÁÁÀº Á¡µéÀ» °®°í ÀÖ´Ù. ¿¹¸¦ µé¾î, "C" ÇÁ·Î±×·¡¹Ö¿¡¼­´Â ¸Þ¸ð¸® À¯Ãâ°ú ¸Þ¸ð¸® ¿À¹öÇ÷ο찡 ÈçÇÏ´Ù. ¿Ö³Ä¸é ´ÙÀ½°ú °°Àº ¿ë·Ê¶§¹®¿¡


        Datatype  char * and char[]
        String functions like strcpy, strcat, strncpy, strncat, etc..
        Memory functions like malloc, realloc, strdup, etc..

char * ¿Í strcpyÀÇ »ç¿ëÀº "overflow" "fence past errors", ±×¸®°í "memory leaks" ·Î ÀÎÇÑ Áöµ¶ÇÑ ¸Þ¸ð¸® ¹®Á¦µéÀ» ¾ß±â½ÃŲ´Ù. ¸Þ¸ð¸® ¹®Á¦µéÀº µð¹ö±×ÇÏ±â ¸Å¿ì ¾î·Æ°í, °íÄ¡°í trouble-shootÇϴµ¥ ¸¹Àº ½Ã°£À» ¼Ò¸ð½ÃŲ´Ù. ¸Þ¸ð¸® ¹®Á¦µéÀº ÇÁ·Î±×·¡¸ÓµéÀÇ »ý»ê¼ºÀ» °¨¼Ò½ÃŲ´Ù. ÀÌ ¹®¼­´Â "C++"ÀÇ ¸Þ¸ð¸® ¹®Á¦¸¦ ÇؼÒÇÒ ¼ö ÀÖ´Â ¿©·¯°¡Áö ¾ð±ÞµÈ ¹æ¹ýµéÀ» ÅëÇØ ÇÁ·Î±×·¡¸ÓµéÀÇ »ý»ê¼ºÀ» Áõ  ½ÃÅ°´Â°ÍÀ» µ½´Â´Ù. ¸Þ¸ð¸®¿Í °ü·ÃµÈ ¹ö±×µéÀº Å©·¢ÇÏ±â ¸Å¿ì ¾î·Æ°í ½ÉÁö¾î ¼÷·ÃµÈ ÇÁ·Î±×·¡¸Óµéµµ ¸Þ¸ð¸®¿Í °ü·ÃµÈ ¹®Á¦Á¡µéÀ» µð¹ö±×Çϴµ¥ ¸îÀÏ, ¸îÁÖ È¤Àº ¸î´Þ±îÁö °É¸®±âµµ ÇÑ´Ù. ¿©·¯°³ÀÇ ¸Þ¸ð¸® ¹ö±×µéÀº ¸î°³¿ùµ¿¾È ÄÚµå¾È¿¡ "¼û¾î"ÀÖÀ» °ÍÀÌ°í ±×°ÍµéÀº ±â´ëÄ¡ ¾Ê¾Ò´ø ÇÁ·Î±×·¥ Ãæµ¹À» ¾ß±â½Ãų ¼ö ÀÖ´Ù. char * ÀÇ »ç¿ëÀº ¹Ì±¹°ú ÀϺ»¿¡¼­ µð¹ö±ë ÇÏ´Â ½Ã°£°ú ÇÁ·Î±×·¥ÀÇ ½ÇÇàÁ¤Áö·Î ¸Å³â 20¾ïºÒÀÇ ¼ÕÇظ¦ ¾ß±â½ÃÅ°°í ÀÖ´Ù. ¿©·¯ºÐÀÌ C++ ¿¡¼­ char * ¸¦ »ç¿ëÇϸé, ƯÈ÷ ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ ¹é¸¸ÁÙ ÀÌ»óÀÇ Äڵ尡 ÀÖ´Ù¸é ±×°ÍÀº Á¤¸»·Î ¼ÕÇغ¸´Â ÀÏÀÌ´Ù,

±×·¡¼­ ´ÙÀ½ÀÇ ±â¼úµéÀÌ "C" ¾ð¾îÀÇ ¾àÁ¡À» ±Øº¹Çϱâ À§ÇØ ´ÙÀ½ÀÇ ±â¼úµéÀ» Á¦¾ÈÇÏ´Â °ÍÀÌ´Ù.

C++ ÄÄÆÄÀÏ·¯µéÀº ÇÁ·Î±×·¡¸ÓµéÀÌ "char *" , "char[]" µ¥ÀÌÅÍ Å¸ÀÔ°ú strcpy, strcat, strncpy, strncat°ú °°Àº ÇÔ¼öµéÀ» »ç¿ëÇÏ´Â °ÍÀ» ¸·¾Æ¾ßÇÑ´Ù°í Á¦¾ÈÇÑ´Ù. char *, char[] ¿Í °°Àº µ¥ÀÌÅÍŸÀÔµé°ú strcpy, strcat °°Àº ÇÔ¼öµéÀº C++ÀÇ »ç¿ë¿¡ À־ ¹Ýµå½Ã ¿ÏÀüÈ÷ ±ÝÁöµÇ¾î¾ß¸¸ ÇÏ´Â ÇØ·Î¿î °ÍµéÀÌ´Ù!!

¸ðµç C++ ÇÁ·Î±×·¡¸ÓµéÀº char * and char[] ¸¦ »ç¿ëÇÏ´Â ´ë½Å¿¡ ÀÌ ¹®¼­¿¡ ³ª¿À´Â 'mychar class'¿Í STDLIB¿¡ Æ÷ÇÔµÈ 'string class' ¸¦ ¹Ýµå½Ã »ç¿ëÇØ¾ß ÇÑ´Ù. 'mychar class' ´Â »ý¼ºÀÚ¿Í ¼Ò¸êÀÚ¸¦ ÀÌ¿ëÇؼ­ ¸Þ¸ð¸® °ü¸®¸¦ ÀÚµ¿È­ÇÏ°í ltrim, substringµîµîÀÇ ¿©·¯ ÇÔ¼öµéÀ» Á¦°øÇÑ´Ù.

C++ ÄÄÆÄÀÏ·¯¿¡ ÀÖ´Â 'string class' µµ ¶ÇÇÑ º¸ÀÚ. string class ´Â standard GNU C++ library ÀÇ ÀϺκÐÀÌ°í ¸¹Àº stringÁ¶ÀÛÇÔ¼ö   Á¦°øÇÑ´Ù. string class' ¿Í 'mychar class' ¸¦ ¾²¸é char * datatypeÀ» ¾µ ÇÊ¿ä°¡ ¾ø¾îÁø´Ù. ¶ÇÇÑ, C++ ÇÁ·Î±×·¡¸ÓµéÀº 'malloc' À̳ª 'free'¸¦ ¾²´Â ´ë½Å 'new'¿Í 'delete' À» ¾²µµ·Ï ±ÇÀåµÇ¾î¾ß ÇÑ´Ù. 'mychar class' ´Â char * ³ª char [] °¡ ÇÏ´Â ¸ðµç °ÍµéÀ» ÇÑ´Ù. 'mychar class' ´Â ¿Ïº®ÇÏ°Ô char datatypeÀ» ´ë½ÅÇØ ¾²ÀÏ ¼ö ÀÖ´Ù. ´õ±¸³ª ÇÁ·Î±×·¡¸ÓµéÀº ¸Þ¸ð¸® ¹®Á¦¿Í ¸Þ¸ð¸® ¾ó·ÎÄÉÀ̼ǿ¡ ´ëÇؼ­ ÀüÇô °ÆÁ¤ÇÒ ÇÊ¿ä°¡ ¾øÀ¸´Ï ¾ó¸¶³ª ÀÌ·Î¿î °ÍÀΰ¡.

GNU C++ ÄÄÆÄÀÏ·¯´Â char *, char[] datatypes ÀÇ Áö¿øÀ» ¹Ýµå½Ã ÁßÁöÇؾßÇϸç, char datatypeÀ» ÀÌ¿ëÇÑ ±¸ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÏ±â   Çؼ­ ÄÄÆÄÀÏ·¯´Â "-fchar-datatype" ¶ó ºÒ¸®´Â ¿É¼ÇÀ» g++ ¸í·É¾î¿¡ ´õ Ãß°¡·Î Á¦°øÇØÁà¾ß ÇÑ´Ù. ¾ÕÀ¸·Î 2³â¾È¿¡ ¸ðµç C++ ÇÁ·Î±×·¥µéÀº 'mychar class' and 'string class' ¸¦ ¾²°Ô µÉ°ÍÀÌ°í char * and char[] ´Â »ç¶óÁö°Ô µÉ °ÍÀÌ´Ù. ÄÄÆÄÀÏ·¯´Â ¾ÈÁÁÀº ÇÁ·Î±×·¡   ½À°üÀ» ¹æÁöÇϵµ·Ï ³ë·ÂÇؾßÇÑ´Ù.

1.2 "C" ¸¦ ¾µ°ÍÀΰ¡ "C++" À» ¾µ°ÍÀΰ¡ ¾Æ´Ï¸é ÀÚ¹Ù¸¦ ¾µ°ÍÀΰ¡?

¸ðµç ÀÀ¿ëÇÁ·Î±×·¥À̳ª ÀÏ¹Ý ¸ñÀûÀÇ ÇÁ·Î±×·¡¹ÖÀ» À§Çؼ­´Â °´Ã¼ÁöÇâÀûÀÎ ¾ð¾îÀÎ "C++"À» ÀÌ¿ëÇؼ­ ÇÁ·Î±×·¡¹ÖÀ» Çϴ°ÍÀÌ ÃßõµÈ´Ù. "C++"ÀÇ °´Ã¼ÁöÇâ ±â´ÉÀ» ÃæºÐÈ÷ À¯¿ëÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ -0À̳ª -03°ú °°Àº ÄÄÆÄÀÏ·¯ optimizer¿É¼ÇµéÀº C++ÀÇ ¼Óµµ¸¦ Áõ°¡½Ãų ¼ö ÀÖ´Ù.

¿äÁò¿£ "C" ¾ð¾î°¡ ¿î¿µÃ¼Á¦, µð¹ÙÀ̽º µå¶óÀ̹öµîÀ» °³¹ßÇϱâÀ§ÇÑ "½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö"¿¡ ÁÖ·Î ¾²ÀδÙ.

ÀÚ¹Ù´Â À¥ ºê¶ó¿ìÀú³»¿¡¼­ ½ÇÇàµÇ´Â GUIÀ» °³¹ßÇϴµ¥ ´õ¿í ÀûÇÕÇÑ Ç÷§Æû¿¡ µ¶¸³µÈ ¾ð¾îÀÌÁö¸¸ ¸Å¿ì ´À¸®°Ô ½ÇÇàµÈ´Ù. C++ and HTML, DHTML °ú ´õºÒ¾î Fast-CGI¸¦ »ç¿ëÇÏ´Â°Ô ´õ ³ªÀº ¼º´ÉÀ» ¹ßÈÖÇϱâÀ§Çؼ­´Â C++ and HTML, DHTML °ú ´õºÒ¾î Fast-CGI¸¦ »ç¿ëÇÏ´Â°Ô ¹Ù¶÷Á÷ÇÏ´Ù.


´ÙÀ½ ÀÌÀü Â÷·Ê