Ȩ  I   ȸ»ç¼Ò°³  I  »çÀÌÆ®¸Ê  I  µµ¿ò¸»
Àαâ°Ë»ö¾î
  IDÀúÀå
 
ȸ¿ø°¡ÀÔ I ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£Ã£±â
¤ýOS / Çϵå¿þ¾î / ¼­¹ö±º
¤ýOA / ¿ÀÇǽº / ÀüÀÚÃâÆÇ
¤ý¾ÆÀÌÆù / ¾Èµå·ÎÀ̵å
¤ýµðÁöÅÐ Æ÷Åä±×·¡ÇÇ
¤ý±×·¡ÇÈ / ȨÆäÀÌÁö
¤ýÀÎÅÍ³Ý ÇÁ·Î±×·¡¹Ö
¤ýÀϹÝÇÁ·Î±×·¡¹Ö
¤ý°ÔÀÓÇÁ·Î±×·¡¹Ö
¤ýSNS / E-Business
¤ýµ¥ÀÌÅͺ£À̽º
¤ý±â Ÿ
¤ý±æ¶óÀâÀÌ
¤ý½Ç·ÂÀÌ Å½³ª´Â
¤ýȸ»ç ½Ç¹«¿¡ ÈûÀ» ÁÖ´Â
¤ý¿¹Á¦°¡ °¡µæÇÑ
¤ý±×¸² ÇÑ ÀåÀ¸·Î º¸´Â
¤ýµðÁöÅÐ Æ÷Åä±×¶óÇÇ
¤ý±×·¡ÇÈ/ȨÆäÀÌÁö
ÆäÀ̽ººÏ ºí·Î±× ³×À̹öÆ÷½ºÆ®
°ü·ÃºÐ·ù : ÀÏ¹Ý ÇÁ·Î±×·¡¹Ö / C/C++/STL
Efficient C++ : ÇÁ·Î±×·¥ ¼º´ÉÀ» ²ø¾î¿Ã¸®´Â ÇÙ½É Å×Å©´Ð - ÀýÆÇ
Å©°Ôº¸±â l Â÷·Êº¸±â
¤ýÀú ÀÚ Dov Bulka , David Mayhew
¤ý¿ª ÀÚ ¹èÀçÇö
¤ý±¸ ºÐ ¹ø¿ª¼­
¤ý¹ßÇàÀÏ 2004³â 05¿ù 14ÀÏ
¤ýÁ¤ °¡ 16,000¿ø
¤ýÆäÀÌÁö 325 ÆäÀÌÁö
¤ýISBN 89-8054-531-2
¤ý³­À̵µ Áß±Þ.»ó±Þ
¤ýÃâÆÇ»ç ÀÎÆ÷ºÏ
¼Õ³¡À¸·Î ±¸ÇöÇÒ ¼ö ÀÖ´Â ÃÖ°íÀÇ ¼º´É ±â¼ú¿¡ °üÇÑ °ªÁø °³·Ð¼­ !!

»ó´ç¼öÀÇ ÇÁ·Î±×·¡¸Ó¿Í ¼ÒÇÁÆ®¿þ¾î µðÀÚÀ̳ʴ ȿÀ²ÀûÀÎ C++À» ¸ð¼øÀ̶ó°í »ý°¢ÇÑ´Ù. À̵éÀº C++ÀÌ º»·¡ºÎÅÍ ´À¸®°í ¼º´ÉÀÌ Áß¿äÇÑ ÀÀ¿ëÇÁ·Î±×·¥¿¡´Â ÀûÀýÇÏÁö ¸øÇÏ´Ù°í »ý°¢ÇÑ´Ù. °í·Î C++Àº ³×Æ®¿öÅ·, ¿î¿µ üÁ¦ Ä¿³Î, ÀåÄ¡ µå¶óÀ̹ö µî°ú °°ÀÌ ³¯Ä«·Î¿î ¿µ¿ª¿¡¼­´Â °ÅÀÇ ¼º°øÀ» °ÅµÎÁö ¸øÇÏ¿´´Ù.

Efficient C++Àº ÀÌ·¯ÇÑ ¹Ì½ÅÀ» ŸÆÄÇÑ´Ù. ÀÌ Ã¥Àº »ó¿ë C++ ÀÀ¿ëÇÁ·Î±×·¥À¸·ÎºÎÅÍ ¸¶Áö¸· ÃÖ´ëÇÑÀÇ ¼º´ÉÀ» ÀÛ¼ºÇÑ Á÷Á¢ÀûÀÎ °æÇèÀ» °¡Áø µÎ ¸íÀÇ ÀúÀÚ°¡ ½èÀ¸¸ç C++ÀÌ °¡Áø °í¼º´É ÇÁ·Î±×·¥ Á¦ÀÛÀÇ ÀáÀç·ÂÀ» ¼³¸íÇϰí ÀÖ´Ù. ½Ç¹«ÀûÀ̰í ÀÏ»óÀûÀÎ °´Ã¼ ÁöÇâ µðÀÚÀÎ ¹ýÄ¢°ú »ó´ç·®ÀÇ ¼º´ÉÀ» °³¼±½Ãų ¼ö ÀÖ´Â C++ ÄÚµù ±â¼ú¿¡ °üÇÑ ³»¿ëÀ» Æ÷ÇÔÇϰí ÀÖÀ¸¸ç ¼û°ÜÁø ¿¬»ê ºÎÇϸ¦ »ý¼º½ÃŰ´Â µðÀÚÀΰú ÄÚµåÀÇ °øÅëÀûÀÎ ÇÔÁ¤À» ÁöÀûÇϰí ÀÖ´Ù.

ÀÌ Ã¥Àº C++ÀÇ °­·ÂÇÔ°ú À¯¿¬¼ºÀ» °í¼º´É, È®À强°ú È¥ÇÕÇÏ¿© µÎ °¡Áö ¸é¿¡¼­ ÃÖ»óÀÇ ÇÁ·Î±×·¥À» ÀÛ¼ºÇϴµ¥ ÃÊÁ¡À» µÎ°í ÀÖ´Ù. Àӽà °´Ã¼, ¸Þ¸ð¸® °ü¸®, ÅÛÇø´, »ó¼Ó, °¡»ó ÇÔ¼ö, ÀζóÀÎ, ÂüÁ¶ Ƚ¼ö, STL, ÀÌ¿Ü ¸¹Àº ÁÖÁ¦µéÀ» ´Ù·ç°í ÀÖ´Ù.

ÀÌ Ã¥À» °¡ÁüÀ¸·Î½á ¿©·¯ºÐÀº ¼Õ³¡À¸·Î ±¸ÇöÇÒ ¼ö ÀÖ´Â ÃÖ°íÀÇ ¼º´É ±â¼ú¿¡ °üÇÑ °ªÁø °³·Ð¼­¸¦ °¡Áö°Ô µÇ´Â °ÍÀÌ´Ù.

[ÀúÀÚ ¼Ò°³]>
Dov Bulka´Â ´ë¿ë·® ¼ÒÇÁÆ®¿þ¾î Á¦Ç°À» ½ÃÀå¿¡ Ãâ½ÃÇÏ´Â ¼ÒÇÁÆ®¿þ¾î ¿µ¿ª¿¡¼­ 15³âÀÇ °æ·ÂÀ» °¡Áö°í ÀÖ´Ù. ±×´Â IBM Domino-Go À¥ ¼­¹öÀÇ ¼º´É ¼³°èÀÚ¿´À¸¸ç, ÀÌ À¥ ¼­¹ö´Â 1996³â ¾ÆÆ²¶õŸ ¿Ã¸²ÇÈÀÇ À¥ »çÀÌÆ®¸¦ Æ÷ÇÔÇÏ¿© Áö±Ý±îÁö ÀÎÅͳݿ¡ È£½ºÆ®µÈ ÃÖ´ë À¥ »çÀÌÆ® Áß ¸î °¡ÁöÀÇ ¼­ºñ½º¸¦ ´ã´çÇÏ¿´´Ù. ±×´Â µàÅ© ´ëÇп¡¼­ ÄÄÇ»ÅÍ °úÇÐ ¹Ú»ç ÇÐÀ§¸¦ ¹Þ¾Ò´Ù.

David Mayhew´Â StarBridge Technologies, IncÀÇ ¼ö¼® ¼³°èÀÚÀÌ´Ù. ±×´Â ÀÌ È¸»ç¿¡¼­ »óÈ£ ¿¬°á Åë½Å, ÇǾî ÇÁ·Î¼¼½Ì, PCI ¹ö½º °³¹ß¿¡ °üÇÑ ¿¬±¸¸¦ Çϰí ÀÖ´Ù. ±×Àü¿¡´Â IBMÀÇ ³×Æ®¿öÅ· ¼ÒÇÁÆ®¿þ¾î ºÎ¼­¿¡¼­ ±Ù¹«ÇÏ¿´´Ù. ±×´Â ¹öÁö´Ï¾Æ °ø´ë¿¡¼­ ÄÄÇ»ÅÍ °úÇÐ ¹Ú»ç ÇÐÀ§¸¦ ¹Þ¾Ò´Ù.
 
óÀ½ C++¶ó´Â ¾ð¾î¸¦ Á¢ÇÑ °ÍÀº ÇкΠ3Çг⠿üÁ¦ °úÁ¦¹°ÀÎ NACHOS ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ¼­¿´´Ù. Áö±ÝÀº Java·Î ¹Ù²ï ÀÚ½À¼­ ¼öÁØÀÇ °£´ÜÇÑ ¿î¿µÃ¼Á¦Àε¥, ÀÌÈÄ·Î ¿ªÀÚ´Â ÇÑ ¹øµµ C++ ÇÁ·Î±×·¡¹ÖÀ» ¼Õ¿¡¼­ ¶¼¾îº» ÀûÀÌ ¾øÀ» ¸¸Å­ C++¿Í ¾ÆÁÖ ÁÁÀº Àο¬À» ¸Î°í ÀÖ´Ù. 99³â 9¿ù, óÀ½ Ãë¾÷ÇÏ¿© MFC·Î ½ÃÀÛÇÑ ÇÁ·ÎÆä¼Å³Î ÇÁ·Î±×·¡¹Ö(¿ªÀÚÀÇ ½Ç·ÂÀÌ ¶Ù¾î³ª´Ù´Â Àǹ̰¡ ¾Æ´Ï¶ó, µ·À» ¹Þ°í Äڵ带 ÀÛ¼ºÇϱ⠽ÃÀÛÇÏ¿´´Ù´Â Àǹ̿¡¼­ ÇÁ·ÎÆä¼Å³Î ÇÁ·Î±×·¡¹ÖÀ̶ó´Â ´Ü¾î¸¦ ½èÀ½À» ¹àÈù´Ù)Àº ÀÌÈÄ ¼º´ÉÀÌ Áß¿äÇÑ(¿ø¼­¿¡´Â performance-criticalÀ̶ó´Â Ç¥ÇöÀ» »ç¿ëÇÏ¿´´Ù) °Ë»ö ¿£ÁøÀ̶ó´Â ¹Ìµé¿þ¾î¿¡ À̸£±â±îÁö ´Ü ÇÑ ¹øµµ Java³ª ¼ø¼ö C¿Í °°Àº ¿Üµµ(?)ÀÇ ±æÀ» °£ ÀûÀÌ ¾ø°í ¿À·ÎÁö ÃÊÁöÀϰü C++¸¸À» »ç¿ëÇØ¿ÔÀ¸´Ï, ÀÌ Ã¥ÀÇ ³»¿ëÀÌ °¡½¿¿¡ ¿Í ´ê±â·Î µûÁöÀÚ¸é ¿©´À °³¹ßÀÚ ¸øÁö ¾ÊÀ» °ÍÀÌ´Ù. ±×·± Àǹ̿¡¼­ ÀÌ Ã¥Àº ´Ü¼øÇÑ ¹ø¿ªÀÇ ¿¬Àå¼±À¸·Î ÀÛ¼ºÇÏ´Â ¿ªÀÚ ¼­¹®ÀÌ ¾Æ´Ñ ´ëÇѹα¹ ´©±¸º¸´Ù ÀÌ Ã¥À» Á¤µ¶ÇÏ¿´À» ¿ªÀÚÀÇ ÀÔÀåÀ¸·Î¼­, ¼ÒÀ§ '°­Ãß'ÀÇ ¸Þ½ÃÁö¸¦ Àü´ÞÇϱâ À§ÇÑ ¿ªÀÚ ¼­¹®ÀÌ µÇ°Ú´Ù.

Á¤¸» ¿©·¯ºÐÀÌ ¼º´É ¶§¹®¿¡ C++¸¦ ¹ö¸®°í C¸¦ ¼±ÅÃÇÑ´Ù¸é °¡°Ý ´ëºñ È¿¿ëÀ̶õ ¿ä¼Ò¸¦ »ý°¢ÇØ º¸±â ¹Ù¶õ´Ù. ¹°·Ð, C·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¸é ¼Õ½±°Ô C++ ÀÌ»óÀÇ ¼º´ÉÀ» ³¾ ¼ö ÀÖ°í, OO ÆÐ·¯´ÙÀÓÀÇ ¿ªÈ¿°ú ¶§¹®¿¡ Àǵµ¿¡ ¾î±ß³ª´Â »óȲÀÌ ¿¬ÃâµÉ ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸, È¿À²ÀûÀÎ C++ ÇÁ·Î±×·¡¹ÖÀÇ ¹æ¹ýÀ» ¾Ë°í ÀÖ´Ù¸é C++°¡ °¡Áø OO Ư¼ºÀ» 100% ¹ßÈÖÇϸ鼭 C¸¸Å­ÀÇ ¼º´ÉÀ» ³¾ ¼ö ÀÖ´Â ÇÁ·Î±×·¥À» ¾ó¸¶µçÁö ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. È¿À²ÀûÀÎ C++ ÇÁ·Î±×·¡¹ÖÀÇ ¹æ¹ýÀ̶ó°í ÇÏ¿© °ÅâÇÑ °ÍÀÌ ¾Æ´Ï´Ù. Àå´ëÇÑ ¿ª»çÀÇ ¿µ¹®¹ýµµ ¸î ¹é ÆäÀÌÁö Ã¥ ÇÑ ±ÇÀ¸·Î ¿ä¾àµÉ ¼ö ÀÖµíÀÌ, È¿À²ÀûÀÎ C++ ÇÁ·Î±×·¡¹ÖÀÇ ¹ýÄ¢µµ À¯ÇÑÇÑ »ç·Ê¸¦ ÆÄ¾ÇÇÑ ÈÄ Áö´ÉÀûÀ¸·Î Ȱ¿ëÇÏ´Â °Í¿¡ Áö³ªÁö ¾Ê´Â´Ù. ÀÌ Ã¥Àº 300ÆäÀÌÁö °¡·®ÀÇ ´Ù¼Ò ª°Ô ´À²¸Áö´Â ºÐ·®ÀÌÁö¸¸, Ã¥ÀÇ ³»¿ëÀ» ¼³¸íÇϸ鼭 °çµé¿©³õÀº ±âŸ Âü°í ¼­Àû À̾߱⸦ º¸¸é, ÀÌ Ã¥Àº È¿À²ÀûÀÎ C++ ÇÁ·Î±×·¡¹ÖÀ» À§ÇÑ "¼Õ³¡À¸·Î ±¸ÇöÇÒ ¼ö ÀÖ´Â ÃÖ°íÀÇ ¼º´É ±â¼ú¿¡ °üÇÑ °ªÁø °³·Ð¼­"ÀÓÀÌ Æ²¸²¾ø´Ù.

¼ÖÁ÷È÷ Ÿ ȸ»çÀÇ ¹Ìµé¿þ¾îÀÇ °³¹ß ÇöȲÀ» Á÷Á¢ º¸Áö ¸øÇÏ¿© ÀڽŠÀÖ°Ô À̾߱âÇϱä ÈûµéÁö¸¸, ¸ð Æ÷Å» ȸ»çÀÇ °Ë»ö ¿£ÁøÀ» ºñ·ÔÇÏ¿© ´ëºÎºÐÀÇ ¹Ìµé¿þ¾î Á¦Ç°µéÀº ¼ø¼ö C·Î ÀÛ¼ºµÇ¾î ÀÖ´Ù°í ÇÑ´Ù. ÀÌ·¯ÇÑ ¼ÒÇÁÆ®¿þ¾îÀÇ °³¹ß °æÇèÀ» °¡Áø »ç¶÷µé°ú À̾߱⸦ ³ª´©¾îº¸¸é C++º¸´Ù C¸¦ ¼±ÅÃÇÑ ÀÌÀ¯´Â ¼º´ÉÀÌ Ã¹ ¹øÂ°°¡ ¾Æ´Ï¾ú´Ù. ´É¼÷ÇÑ C++ ÇÁ·Î±×·¡¸ÓÀÇ ¼ö°¡ ÃæºÐÇÏÁö ¸øÇϱ⠶§¹®¿¡ C++¸¦ °³¹ß ¾ð¾î·Î äÅÃÇÏ¸é ±î´Ù·Î¿î À̸§ ¹ýÄ¢ ¹× ¹®¼­È­ÀÇ ¾î·Á¿ò µî °³¹ß ÇÁ·Î¼¼½º°¡ ¿øÈ°ÇÏÁö ¸øÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ Ã¹ ¹øÂ° ÀÌÀ¯¿´´Ù. µÎ ¹øÂ°´Â ¼Ò½º Äڵ尡 ´Ù¾çÇÑ Ç÷§Æû¿¡ ´ëÀÀÇÒ ¼ö ÀÖ¾î¾ß ÇÏ´Â À̽ļº ¹®Á¦¿´´Ù. C++´Â GNU °è¿­À» Á¦¿ÜÇÏ°í ¿©ÀüÈ÷ ¿î¿µÃ¼Á¦ÀÇ °íÀ¯ ÄÄÆÄÀÏ·¯¸¶´Ù ¾à°£ÀÇ ¹®¹ýÀÌ ´Ù¸¦ »Ó ¾Æ´Ï¶ó, Ç¥ÁØ C++ ¶óÀ̺귯¸®µµ Àß È£È¯µÇÁö ¾Ê´Â´Ù. ¼¼ ¹øÂ° ÀÌÀ¯°¡ ¼º´ÉÀ̾ú´Âµ¥, C++°¡ ±Ùº»ÀûÀ¸·Î ´À¸®´Ù´Â °ÍÀÌ ¾Æ´Ï¶ó, C++ÀÇ À¯¿¬ÇÔ°ú È®À强À» ÃÖ´ëÇÑ ÀÌ¿ëÇϸ鼭 ÁÁÀº ¼º´ÉÀ» ³»´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱⰡ Èûµé±â ¶§¹®À̾ú´Ù. ÇÏÁö¸¸, C·Î °³¹ßÀ» ÁøÇàÇÏ´Ù º¸¸é ƯÁ¤ ºñÁî´Ï½º ·ÎÁ÷À» ±¸ÇöÇϱâ À§ÇØ ÀÌ¹Ì Åë¿ëµÇ´Â STL°ú °°ÀÌ Æí¸®ÇÑ ±âº» ¶óÀ̺귯¸®ÀÇ ·ÎÁ÷À» ¶È°°ÀÌ ±¸ÇöÇÏ´Â Çê¼ö°í¸¦ ³²¹ßÇÒ ¼öµµ ÀÖ´Ù.

¶ÇÇÑ, ÅÛÇø´À̳ª »ó¼Ó/¿¬»êÀÚ ¿À¹ö·Îµå¿Í °°Àº C++ÀÇ °íÀ¯ ±â´É°ú containment/aggregation°ú °°Àº C++ µðÀÚÀÎ ÆÐÅÏÀ» »ç¿ëÇÏ¸é ´Ü ¸î ÁÙ¿¡ ³¡³ª´Â ´ÙÀ̳ª¹ÍÇÑ ±¸ÇöÀ» À§ÇØ ¼ö¹é ÁÙÀÇ ½ºÆÄ°ÔƼ Äڵ带 ¸¸µé¾î³»´Â ¿À·ù¸¦ ¹üÇÒ ¼öµµ ÀÖ´Ù. ÀüÀÚ´Â °³¹ß ¾ð¾î°¡ C·Î ³»Á¤µÈ Á¶Á÷¿¡ ÇÕ·ùÇÏ¿© Àڽſ¡°Ô Àͼ÷ÇÑ STLÀÇ ·ÎÁ÷À» C ±¸Á¶Ã¼·Î Á÷Á¢ ±¸ÇöÇØ¼­ »ç¿ëÇÑ ÈÄ¹è °³¹ßÀÚÀÇ °æÇè´ãÀ̰í, ÈÄÀÚ´Â ¼Óµµ¸¦ À§ÇØ °íÀüÀûÀÎ C ½ºÅ¸ÀÏÀÇ ÄÚµå¿Í ±¸Á¶Ã¼ ÀÌ»óÀÇ ±â´ÉÀ» °¡ÁöÁö ¾ÊÀº Ŭ·¡½º¸¸À¸·Î ´ëÇü ÇÁ·ÎÁ§Æ®¸¦ °³¹ßÇØ º» ¿ªÀÚÀÇ °æÇèÀÌ´Ù. Áö³ªÄ£ ÀϹÝÈ­ÀÇ ¿À·ù¸¦ ¹üÇϰí ÀÖ´ÂÁöµµ ¸ð¸£Áö¸¸, C++ÀÇ È¿À²À» Á¦´ë·Î¸¸ ÀÌÇØÇÒ ¼ö ÀÖ´Ù¸é È¿À²ÀûÀÎ C++ ÇÁ·Î±×·¡¹ÖÀ» ¼öÇàÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ã¾Æ C++ÀÇ °­·ÂÇÔ°ú À¯¿¬¼ºÀ» ´õÇØ ³ª°¡´Â ¹æ½ÄÀ¸·Î °³¹ßÀÚµéÀº º¯Çسª°¥ ¼ö¹Û¿¡ ¾ø´Ù. ÀÌ·± Àǹ̿¡¼­ ÀÌ Ã¥Àº Áß±Þ C/C++ ÇÁ·Î±×·¡¸ÓµéÀÇ Çʵ¶¼­ÀÌ´Ù.

¿ªÀÚ°¡ °³¹ßÇÏ´Â °Ë»ö ¿£ÁøÀº 100% C++·Î ÀÛ¼ºµÇ¾ú´Ù. ¿ÃÇØ·Î 4³âÀ» ¸Â´Â ÀÌ Á¦Ç°À» °³¹ßÇÏ¸ç ´À³¤ Á¡Àº, È¿À²ÀûÀÎ ÇÁ·Î±×·¡¹ÖÀº ¼ÒÇÁÆ®¿þ¾î°¡ Æ÷ÇÔÇÏ´Â ºñÁî´Ï½º ·ÎÁ÷°ú °³¹ß ¾ð¾îÀÇ Æ¯¼ºÀ» Àß ÆÄ¾ÇÇÏ¿© ÈǸ¢ÇÑ µðÀÚÀΰú ¾ÆÅ°ÅØÃ³¸¦ ±¸ÇöÇÏ´Â °ÍÀÌ ÀüºÎ°¡ ¾Æ´Ï¶ó´Â °ÍÀÌ´Ù. »ç½Ç ¾î·ÅDzÀÌ ´À³¢°í´Â ÀÖ¾úÁö¸¸, ÀÌ Ã¥À» ÅëÇÏ¿© À§¿Í °°Àº ¹®Á¦ ÀǽÄÀ» ±¸Ã¼ÀûÀ¸·Î Á¤¸®ÇÒ ¼ö ÀÖ¾ú°í ¼ÒÇÁÆ®¿þ¾î °³¹ßÀ» ¹Ù¶óº¸´Â ½Ã°¢À» ÇÑÃþ ´õ ³ôÀÌ°Ô µÇ¾ú´Ù. Çϵå¿þ¾î¿Í ¿î¿µÃ¼Á¦ µî ¼ÒÇÁÆ®¿þ¾î ÇϺΠ±¸Á¶ÀÇ ¿ø¸®¸¦ Àß ¾ËÁö ¸øÇÏ¸é ±Ã±ØÀûÀÎ ¼º´ÉÀ» Á¶ÀýÇϱâ´Â Èûµé´Ù. ¿¹¸¦ µé¾î, ¾²·¹µå °³¼ö°¡ ¸¹´Ù°í ÇØ¼­ È¿À²ÀÌ ³ô¾ÆÁö´Â °ÍÀÌ ¾Æ´Ï´Ù. ¶ÇÇÑ, µð½ºÅ© IO¸¦ ÁÙÀ̱â À§ÇØ ¾ÐÃàÇÏ¿© ÀúÀåÇÑ µ¥ÀÌÅ͸¦ ¸Þ¸ð¸®¿¡ ·ÎµåÇÏ°í ¾ÐÃàÀ» Ǫ´Â ¹æ½ÄÀÇ ¸Þ¸ð¸® À§ÁÖ ÀÛ¾÷ÀÌ °ú¿¬ ¾ÐÃàÇÏÁö ¾ÊÀº µð½ºÅ© IO¿¡ ºñÇØ ¾ó¸¶³ª ´õ È¿À²ÀûÀϱî? ´ç¿¬ Çϵå¿þ¾î¿Í ¿î¿µÃ¼Á¦¿¡ µû¶ó ´Ù¸¦ °ÍÀÌ´Ù.

ÀÌ Ã¥Àº ¶óÀ̺귯¸®³ª C++ ±â´É¿¡ ±¹ÇѵÇÁö ¾Ê°í, È¿À²ÀûÀÎ ÇÁ·Î±×·¡¹ÖÀ» Çϱâ À§ÇÑ ¿î¿µÃ¼Á¦¿Í Çϵå¿þ¾î À̾߱â±îÁö ´Ü¼øÇÑ Æ®¸¯ À̿ܿ¡ ±Ùº»ÀûÀÎ ³»¿ëµµ ¸¹ÀÌ Æ÷ÇÔÇϰí ÀÖ´Ù. ±×·¡¼­ Àü»êÇаú Çкο¡¼­ ¹è¿ì´Â ÄÄÇ»ÅÍ ±¸Á¶¿Í ¿î¿µÃ¼Á¦ °ú¸ñ¿¡ ¹ö±Ý°¡´Â ±âº» Áö½ÄÀÌ ¾ø´Ù¸é ¾à°£ ÀÌÇØÇϱâ Èûµç ³»¿ëÀÌ ÈĹݺο¡ ÀÖ´Ù. ¸ð º¸¾Èȸ»ç¿¡¼­ ħÀÔ Å½Áö ½Ã½ºÅÛÀ» °³¹ßÇϴ ģ±¸´Â ¼º´ÉÀ» Á»´õ ³ôÀ̱â À§ÇØ CPU °øºÎ¸¦ ÇÑ´Ù°í ÇÑ´Ù. ÀÌ Ã¥ÀÇ ¿¹ºñ µ¶ÀÚÀÌÀÚ, ±¸·ç(GURU)¸¦ ²Þ²Ù´Â ¿©·¯ºÐÀº ÀÌ Ã¥À» ÅëÇØ ÀÌ·¯ÇÑ ¹®Á¦ ÀǽÄÀ» ±ú´Ý´Â °Í¸¸À¸·Îµµ Ã¥ÀÇ °¡Ä¡´Â ´Ù ÇÒ °ÍÀ̶ó´Â À̾߱⸦ ÀڽŠÀÖ°Ô °Ç³Ù´Ù.
 
 
 
1. <[¾Æ¸¶Á¸ ¼­Æò ¸ðÀ½]>
´ë´ÜÇÑ Ã¥!! ¡Ú¡Ú¡Ú¡Ú¡Ú
ù°·Î ÀÌ Ã¥Àº ½Ç¿ëÀûÀÌ´Ù! ÀÌ Ã¥Àº °­ÀǽÇÀÇ ±³¼ö´ÔÀÌ ±î´Ù·Ó°í ¾î·Æ°Ô °¡¸£Ä¡´Â °Íº¸´Ù ÀÛ°¡ÀÇ ½ÇÁ¦ÀûÀÎ, µ¶Ã¢ÀûÀÎ °æÇè¿¡ ¹ÙÅÁÀ» µÎ°íÀÖ´Ù. ÀÌ Ã¥À» °øºÎÇÏ´Â °ÍÀº Áñ°Å¿òÀÌ´Ù. ¶ÇÇÑ Àß ¾²¿©Á³´Ù. À̺¸´Ù ´õ ÁÁÀ» ¼ø ¾ø´Ù. Á¦¸ñ¿ª½Ã ÀûÀýÇÏ°Ô Áö¾îÁ³´Ù. °£´ÜÇÏ°Ô ¸»Çؼ­ ¸¸¾à ¿©·¯ºÐÀÌ C++ÀÇ È¿À²(efficiency)¿¡ °ü½ÉÀÌ ÀÖ´Ù¸é, ÁÖÀú ¾øÀÌ ÀÌ Ã¥À» ¼±ÅÃÇÏ±æ ¹Ù¶õ´Ù. ¿©·¯ºÐÀÌ C++¿¡ ´ëÇÑ ÀϹÝÀûÀΠȣ±â½ÉÀ» °¡Áø ÇÁ·Î±×·¡¸Ó¶ó¸é, ÀÌ Ã¥Àº ¿©·¯ºÐ¿¡°Ô ¸¸Á·À» ÁÙ °ÍÀ̶ó°í Àå´ãÇÑ´Ù.

C++ ¼º´É(performance)À» ¼ö¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ´Â Çٽɺñ°á ¡Ú¡Ú¡Ú¡Ú¡Ú
ÀÌ Ã¥ÀÇ ÀÛ°¡µéÀº IBMÀÇ ³×Æ®¿öÅ©³ª À¥ ¼­¹ö ¼ÒÇÁÆ®¿þ¾îÀÇ °³¹ßÀÚµéÀÌ´Ù. ±×µéÀº ÀÌ Ã¥¿¡¼­ C++ ÇÁ·Î±×·¡¹ÖÀÇ ¼º´É¿¡ ÁßÁ¡À» µÎ°íÀÖ´Ù. ÀÌ Ã¥ÀÇ Ã¹ ¹øÂ° ÅäÇÈÀº »ý¼ºÀÚ¿Í ¼Ò¸êÀÚ, °¡»ó ÇÔ¼ö(virtual functions), ¹Ýȯ °ª ÃÖÀûÈ­, Àӽà °´Ã¼(temporary objects), ÀζóÀÎ, ¸Þ¸ð¸® °ü¸® ±×¸®°í ÂüÁ¶ Ƚ¼öÀÌ´Ù. ¿©·¯ºÐÀº È¿°úÀûÀÎ »ý¼ºÀÚ ÇÔ¼ö¸¦ ¸¸µå´Â ¹æ¹ýÀ» ¾Ë°Ô µÉ °ÍÀÌ´Ù. ¶ÇÇÑ Àӽà °´Ã¼(temporary objects)¸¦ Àúºñ¿ëÀ¸·Î ±¸¼º(construct)ÇÏ´Â ¹æ¹ýÀ» ¾Ë°Ô µÉ °ÍÀÌ´Ù. º»¹®¿¡¼­ ÀúÀÚµéÀº ¡°Áö¿¬ ¿¬»ê(lazy evaluation)¡±À» ÁøÇà½Ã۰í, ¡°¾µ¸ð¾ø´Â °è»ê¡±, ¡°ÁøºÎÇÑ ÄÚµå(obsolete code)¡±¶ó´Â »ý¼ÒÇÑ ¿ë¾î¸¦ »ç¿ëÇϸ鼭µµ È¿À²°ú ¼º´ÉÀ̶ó´Â Ãø¸éÀÇ ÁÖÁ¦¸¦ ³õÄ¡Áö ¾Ê°í ÀÚ¼¼È÷ ¼³¸íÇϰí ÀÖ´Ù. ¾Ë°í¸®Áò°ú µ¥ÀÌÅÍ ±¸Á¶´Â ´Ù¸¥ Ç¥ÁØÀÇ ±âÁØ(standard reference)À» ¾ð±ÞÇϰí ÀÖÁö¸¸, STL(»ðÀÔ, »èÁ¦, Åë°ú, ã±â ¿¬»ê)À» ´Ù·ç°í ÀÖ´Ù. °Ô´Ù°¡ º¸³Ê½º·Î ÈǸ¢ÇÑ ¸ÖƼ¾²·¹µù(multithreading)À» ´Ù·ç°í ÀÖ´Ù.


¼º´É ¹®Á¦(Performance Issues)¿¡ °üÇØ ¸Å¿ì µµ¿òÀÌ µÇ´Â °³¿ä~ ¡Ú¡Ú¡Ú¡Ú¡Ú
³ª´Â ÀÌ Ã¥ÀÌ ¹®Á¦½Ã µÇ°í ÀÖ´Â C++ÀÇ ¼º´É¿¡ µµ¿òÀÌ µÇ´Â Ã¥À̶ó°í »ý°¢ÇÑ´Ù. ³ª´Â Äɸ¯ÅÍ Æ÷ÀÎÅÍ(character pointer)¿Í ºñ±³ÇÏ¿© ±× ÀÚüÀÇ ¼º´ÉÀ» ¹Ù²Û °£´ÜÇÑ profiling class¿¡¼­ öÀúÇÑ C++ stringÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ̳ª, ÇÒ´ç ¹æ¹ý(allocation method)ÀÇ ¼±Åÿ¡ ÀÇÇØ ¹ß»ýµÇ´Â ¼Óµµ¿¡¼­ÀÇ ¸·´ëÇÑ Â÷ÀÌÁ¡¿¡ ³î¶ú´Ù. ³ª´Â C++À» Àü¹®ÀûÀ¸·Î ¸ÅÀÏ »ç¿ëÇϰí, ÀÌ ÁÖÁ¦¿¡ °üÇÑ ´Ù¸¥ ¸¹Àº Ã¥µéµµ ºÃÁö¸¸, ³­ ÀÌ Ã¥¿¡¼­ °¡Ä¡ ÀÖ´Â ºÎºÐÀ» ¹ß°ßÇÒ ¼ö ÀÖ¾ú´Ù.

C++ È¿À²ÀÇ ¼Óµµ¿¡ ´Ù°¡°¥ ¼ö ÀÖ´Â ½Ç¿ëÀûÀÎ ¹æ¹ý ¡Ú¡Ú¡Ú¡Ú¡Ú
³ª´Â ÀÌ Ã¥ÀÇ Á¦¸ñÀ» óÀ½ ºÃÀ» ¶§, ÀÌ Ã¥Àº ´Ù¸¥ ÈǸ¢ÇÑ C++¿¡ °üÇÑ Ã¥µé¿¡¼­µµ ºüÁø ¹«¾ð°¡¸¦ ´Ù·ç°í Àִ åÀ̶ó°í »ý°¢Çß´Ù. ÀÌ Ã¥Àº ½ÉÁö¾î C++ Àü¹® ÇÁ·Î±×·¡¸Ó¿¡°Ôµµ ±Øµµ·Î ¸í·áÇϰí ÀÌÇØÇϱ⠽±°Ô ¾²¿©Á³´Ù. µµÇ¥µµ ÀûÀýÈ÷ »ç¿ëµÇ¾ú°í, ÅØ½ºÆ®µµ °£°áÇÏ°Ô ¾²¿©Á³´Ù. ¿¹Á¦ ÄÚµå ¶ÇÇÑ Àß ¼±ÅõǾúÀ¸¸ç, ÇÊ¿ä ÀÌ»óÀ¸·Î ºÎÀÚ¿¬½º·´Áö ¾Ê´Ù. ÀÌ Ã¥Àº ÁöÇÏöÀ̳ª, ¹ö½º µî ¿©·¯ºÐÀÇ ³²´Â ½Ã°£À» ÀÌ¿ëÇØ º¼ ¼ö ÀÖÀ» Á¤µµ·Î ½±´Ù. ÀÌ Ã¥Àº ÁøÁ¤ÇÑ C++ ÇÁ·Î±×·¡¸Ó³ª, C++¿¡ °üÇØ ´õ ¾Ë°íÀÚ ÇÏ´Â »ç¶÷µé¿¡°Ô ²À ÇÊ¿äÇÑ Ã¥ÀÌ´Ù.


Inline¿¡ °üÇÑ ÈǸ¢ÇÑ Ã¥ ¡Ú¡Ú¡Ú¡Ú¡Ú
ÀÌ Ã¥Àº ½Ç¿ëÀûÀ̰í Áß¿äÇÏ´Ù. ¼¼ éÅÍ¿¡¼­ Áß¿äÇÑ ÀζóÀÎÀÇ »ç¿ë¿¡ ´ëÇØ ´Ù·ç°í ÀÖ´Ù. ÀÌ Ã¥Àº ÄÄÆÄÀÏ·¯(complier)ÀÇ ÇöÀç cropÀÌ ÀζóÀÎ ÇÔ¼ö È£Ãâ ¿äû¿¡ ¸¸Á·ÇÒ ¶§¿Í ÇÏÁö ¾ÊÀ» ¶§¿¡ °üÇÑ ¼¼ºÎ»çÇ×µµ ´Ù·é´Ù. ÀÌ Ã¥Àº ¾ðÁ¦ ÄÄÆÄÀÏ·¯°¡ °¡»ó ÇÔ¼ö È£ÃâÀ» ÀζóÀÎÇÒ ¼ö ÀÖ´ÂÁö¿¡ ´ëÇÑ ÈùÆ®µµ ÀÖ´Ù. ¿©·¯ºÐÀº ÀÌ Ã¥À» Àаí, ¿©·¯ºÐÀÇ ÄÄÆÄÀÏ·¯ º¥´õ¿¡°Ô ÄÄÆÄÀÏ·¯ÀÇ ¿¹¼ú »óŸ¦ Çâ»ó½Ãų °ÍÀ» ¿äûÇ϶ó.


C++ ÇÁ·Î±×·¥À» ºü¸£°í ±ú²ýÇÏ°Ô ¸¸µå´Â ¹æ¹ý ¡Ú¡Ú¡Ú¡Ú¡Ú
C++Àº ¸Å¿ì À¯µ¿ÀûÀ̰í ÈûÂù ¾ð¾îÀÌÁö¸¸, °íÀ¯ÀÇ ¼º´É À§Çè(performance hazards)Àº ¾ø´Ù. »ý¼ºÀÚ È£ÃâÀº C++ ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î »ý¼ºµÉ °ÍÀÌ´Ù. ³ª´Â °ÅÀÇ 10³â µ¿¾È C++ Äڵ带 °¡¸£Ä¡°í ÀÖ°í, ÁýÇÊÇϰí Àִµ¥, ³»°¡ »ý°¢ÇÏÁö ¸øÇÑ ºÎºÐµµ ÀÖ¾ú´Ù. ±×·¯³ª, ±× ºÎºÐµéÀº »ó´ëÀûÀ¸·Î ±×³É ³Ñ¾î°¡±â ½¬¿üÁö¸¸ ÀÛ°¡µéÀº ¸í¹éÈ÷ ÇØ°áÇØ ÁÖ°íÀÖ´Ù. ¸Þ´ÏÁ®µéÀº C++°³¹ßÀÚµéÀ» À§ÇØ Ã¥À» »ç¾ß Çϰí, ±â¾÷µé »çÀÌÀÇ ÄÚµù Áöħ¼­¸¦ constructÇϱâ À§ÇØ ÀÌ Ã¥ÀÇ ¿¹Á¦¸¦ »ç¿ëÇ϶ó. ³ª´Â Áö±Ý±îÁö ÀÏÇϸ鼭 C++¿¡ ´ëÇÑ ¸¹Àº Ã¥À» º¸¾ÒÁö¸¸, ³ª´Â ÀÌ Ã¥ÀÌ °¡Àå °¡Ä¡ Àִ åÀ̶ó°í È®½ÅÇÏ´Ù. È¿À²ÀûÀÎ ÄÚµå´Â ¾ÆÁ÷µµ ¸Å¿ì Áß¿äÇϰí, 300ÆäÀÌÁö Á¤µµÀÇ ÀÌ Ã¥¿¡¼­ ÀúÀÚ´Â ¿©·¯ºÐÀÇ °í±ÍÇÑ ½Åü ºÎºÐÀ» º¸Á¸ÇØÁÙ °èȹÀ» ÁØ´Ù.

÷ºÎÆÄÀÏ :

                                  
ȸ»ç¼Ò°³      °³ÀÎÁ¤º¸Ãë±Þ¹æÄ§      °í°´¼¾ÅÍ     »çÀÌÆ®¸Ê      µµ¿ò¸»