|
|
|
|
|
| More Effective C++
|
 |
|
|
| ¤ýÀú ÀÚ |
Scott Meyers
|
| ¤ý¿ª ÀÚ |
°û¿ëÀç
|
| ¤ý±¸ ºÐ |
¹ø¿ª¼
|
| ¤ý¹ßÇàÀÏ |
2007³â 08¿ù 27ÀÏ |
| ¤ýÁ¤ °¡ |
20,000¿ø |
| ¤ýÆäÀÌÁö |
404 ÆäÀÌÁö |
| ¤ýISBN |
978-89-5674-399-8 |
| ¤ý³À̵µ |
Áß±Þ.»ó±Þ |
| ¤ýÃâÆÇ»ç |
Á¤º¸¹®È»ç |
|
|
|
|
|
|
|
 |
 |
C++ ÇÁ·Î±×·¡¹Ö°ú ¼³°è ±â¼úÀ» Çâ»ó½ÃÄÑ ÁÖ´Â
35°¡ÁöÀÇ »õ·Î¿î Å×Å©´Ð ¸ðÀ½
ÃֽŠISO/ANSI C++ Ç¥ÁØ¿¡ ¸ÂÃß¾ú½À´Ï´Ù !
More Effective C++¿¡ ½ñ¾ÆÁø Âù»çµé : "ÀÚÁÖ »ç¿ëÇÏÁö ¾Ê´Â ºÎºÐ°ú ¿©·¯ºÐÀÌ ¾Ë°í ÀÖ´Ù°í 'Âø°¢ÇÏ´Â' ºÎºÐ±îÁö, C++ÀÇ À̸ðÀú¸ð¸¦ ȯÈ÷ ºñÃß¾î Áִ åÀÌ´Ù. C++ ÄÄÆÄÀÏ·¯°¡ ¼Ò½º Äڵ带 ¾î¶»°Ô ÇØ¼®ÇÏ´ÂÁö¸¸ Á¦´ë·Î ÀÌÇØÇÏ´Â °Í¸¸À¸·Îµµ źźÇÑ ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖÀ» Áغñ´Â µÈ´Ù. ÀÌ Ã¥Àº ±× 'ÀÌÇØÀÇ ¼öÁØ'À» ±× Á¤µµ·Î ¿Ã·ÁÁÖ´Â ¼ÒÁßÇÑ ÀÚ·áÀÌ´Ù. ÀÌ Ã¥À» ÀÐÀº ÈÄÀÇ ³» ±âºÐÀº ¾î¶² C++ ÇÁ·Î±×·¡¹ÖÀÇ ´ÞÀΰú ÇÔ²² ¾ÆÁÖ ±ä Äڵ带 ³¡±îÁö ºÐ¼®Çϰí Ź¿ùÇÑ ÅëÂû·ÂÀ» Àü¼ö¹ÞÀº ´À³¦°ú °°¾Ò´Ù." - Fred Wild, ±â¼ú ºÎ»çÀå, Advantage Software Technlogies
"ÀÌ Ã¥Àº C++¸¦ »ç¿ëÇØ¼ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â Áß¿äÇÑ ±â¹ýÀ» Àϸñ¿ä¿¬ÇÏ°Ô ¸ð¾Æ³õÀº ÈǸ¢ÇÑ Ã¥ÀÌ´Ù. °³¹ßÀÚÀÇ Àǵµ¸¦ C++·Î ¼³°èÇÏ°í ±¸ÇöÇÏ´Â ¹æ¹ýÀº ¹°·Ð, ´Ù¸¥ ¼³°è ¹æ¹ýÀ» ½èÀ» ¶§¿¡ ºüÁú ¼ö ÀÖ´Â ÇÔÁ¤¿¡ ´ëÇØ ²Ä²ÄÈ÷ ¼³¸íÇÑ´Ù. ¶ÇÇÑ ÃÖ±Ù¿¡ Ãß°¡µÈ C++ÀÇ ½Å±â´É¿¡ ´ëÇÑ ±ò²ûÇÑ ¼³¸íµµ ÁÖ¸ñÇÒ ¸¸ ÇÏ´Ù. C++ÀÇ ½Å±â´ÉÀ» ¾²°í ½ÍÀº °³¹ßÀÚ´Â ¹Ýµå½Ã ÀÌ Ã¥À» °¡±îÀÌ µÎ°í ÇÊ¿äÇÒ ¶§¸¶´Ù ã¾Æº¸±â ¹Ù¶õ´Ù." - Christopher J. Van. Wyk, ±³¼ö, Mathematics and Computer Science, Drew University
"ÃÖ°ÀÇ C++ Å×Å©´ÐÀ» ¾Ë·ÁÁִ å. Effective C++¸¦ ÀÐÀº µ¶ÀÚ¶ó¸é ²À ÇÔ²² ±¸ºñÇØ¾ß ÇÒ Ã¥" - Eric Nagler, C++ ´ëÇа»ç °â ÀúÀÚ, University of California Santa Cruz Extension
"More Effective C++´Â ½ºÄ±ÀÇ ÀÌÀüÀÛÀÎ Effective C++ÀÇ ¿Ïº®ÇÑ ÈļÓÀÛÀÌ´Ù. ÇÁ·ÎÆä¼Å³Î C++ ÇÁ·Î±×·¡¸Ó¶ó¸é ¹Ýµå½Ã Effective C++¿Í More Effective C++¿¡ ³ª¿Â ÆÁÀ» ÀÐ¾î ¸Ó¸®¿¡ »õ°Ü µÎ¾î¾ß ÇÑ´Ù°í »ý°¢ÇÑ´Ù. ÀÌ µÎ Ã¥¿¡ ³ª¿Â ÆÁÀº ÀÌÇØÇϱâ ÈûµéÁö¸¸ ¾ÆÁÖ Áß¿äÇÏ°í °¡²ûÀº ³ÇØÇÑ C++ÀÇ À̸ðÀú¸ð¸¦ ¾Ë±â ½±°Ô ´Ù·ç°í ÀÖ´Ù. ÀúÀÚÀÇ ÀÌÀüÀÛ°ú ÇÔ²² ÀÌ Ã¥À» Ãʰ·Â ÃßõÇÑ´Ù. °³¹ßÀÚ, Å×½ºÅÍ, °ü¸®ÀÚµéÀº ²À Àо±â ¹Ù¶õ´Ù. ÀúÀÚÀÇ Àü¹®°¡ÀûÀÎ ½Ä°ß°ú ÈǸ¢ÇÑ ¼³¸íÀ» Áñ±æ ¼ö ÀÖÀ» °ÍÀÌ´Ù. " - Steve Burkett, ¼ÒÇÁÆ®¿þ¾î ÄÁ¼³ÅÏÆ®
"C++¸¦ ¾î´À Á¤µµ ¾È´Ù°í »ý°¢ÇÏ´Â ¼öÁØÀ» ¹þ¾î³ª C++¸¦ ¸¶½ºÅÍÇϰíÀÚ ÇÏ´Â ÇÁ·Î±×·¡¸Ó¶ó¸é, ¾î´À ´©±¸¿¡°Ôµµ Effective C++¸¦ Áø½ÉÀ¸·Î ÃßõÇÏ°í ½Í½À´Ï´Ù " - The C/C++ User's Journal
Àü ¼¼°è C++ ÇÁ·Î±×·¡¸ÓÀÇ Çʵ¶¼, Effective C++ÀÇ ÀúÀÚ°¡ ¶Ç ´Ù½Ã "ÇÁ·Î±×·¡¹Ö°ú ¼³°è ±â¼úÀ» Çâ»ó½ÃÄÑ ÁÖ´Â "35 °¡ÁöÀÇ »õ·Î¿î Å×Å©´ÐÀ» ¿©±â¿¡ ¼±º¸ÀδÙ. ¸¶À̾´Â ´Ù³â°£ÀÇ °æÇè¿¡¼ »Ì¾Æ³½ ÅëÂû·ÂÀ» À¯°¨ ¾øÀÌ ¹ßÈÖÇÏ¿© ´õ È¿°úÀûÀÎ(more effective) ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇϰí ÀÖ´Ù. È¿°úÀûÀÎ ¼ÒÇÁÆ®¿þ¾î¶õ ´õ È¿À²ÀûÀ̰í, ´õ °ß°íÇϰí, ´õ Ç¥ÁØÀûÀ̰í, ´õ ³ôÀº À̽ļº°ú Àç»ç¿ë¼ºÀ» °®Ãá ¼ÒÇÁÆ®¿þ¾î¸¦ ¶æÇÑ´Ù. °£´ÜÈ÷ ¸»ÇØ ¸¶À̾´Â "±×³É ´õ ¸ÚÀÖ°Ô" C++ ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ÀüÇϰí ÀÖ´Â °ÍÀÌ´Ù.
More Effective C++¿¡¼ ´Ù·ç¾îÁø ÁÖ¿ä ³»¿ëÀº ´ÙÀ½°ú °°´Ù.
ÇÁ·Î±×·¥ È¿À²(efficiency)À» ³ôÀÌ´Â ÀÔÁõµÈ Å×Å©´Ð, ±×¸®°í C++ÀÇ ÁÖ¿ä ±â´ÉÀ» ½èÀ» ¶§¿¡ ´Þ¶óÁö´Â ½Ã°£Àû/°ø°£Àû ºñ¿ë¿¡ ´ëÇÑ ½Å¶öÇÑ ¼³¸í ¸Þ¸ð¸®ÁöÁ¤ new(placement new), °¡»ó »ý¼ºÀÚ, ½º¸¶Æ® Æ÷ÀÎÅÍ, ÂüÁ¶ Ä«¿îÆÃ, ÇÁ·Ï½Ã Ŭ·¡½º, ÀÌÁß µð½ºÆÐÄ¡(double-dispatching) µîÀÇ Àü¹®°¡±Þ C++ Å×Å©´Ð¿¡ ´ëÇØ Ç®¾î³õ´Â ¼Ó ½Ã¿øÇÑ ÇØ¼³ ±¸Á¶Ã¼ ±×¸®°í C++ Ŭ·¡½º¿Í ÇÔ¼ö¿¡ ´ëÇØ ¿¹¿Ü󸮸¦ Àû¿ëÇÒ ¶§ÀÇ ¼öÇà °á°ú¸¦ ÀÚ¼¼È÷ º¸¿©ÁÖ´Â Ãæ½ÇÇÑ ¿¹Á¦ bool. mutable, explicit, namespace, ¸â¹ö ÅÛÇø´, Ç¥ÁØ ÅÛÇø´ ¶óÀ̺귯¸®(STL) µîÀÇ »õ·Î µµÀÔµÈ ±â´É¿¡ ´ëÇÑ ½ÇÁ¦ÀûÀΠȰ¿ë ¿¹. ¾ÆÁ÷ Ãֽбâ´ÉÀ» Áö¿øÇÏÁö ¾Ê´Â C++ ÄÄÆÄÀÏ·¯¸¦ °¡Áø µ¶ÀÚµéÀ» À§ÇØ, ÀúÀÚ´Â ÀÌ·± ±â´É ¾øÀ̵µ µ¿ÀÏÇÑ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Â ¹æ¹ý±îÁö ¸¶·ÃÇØ µÎ¾ú´Ù.
More Effective C++´Â C++ ÇÁ·Î±×·¡¸Ó°¡ ¾ðÁ¦µçÁö »ç¿ëÇÒ ¼ö ÀÖ°í ½Ç¿ëÀûÀÌ¸ç »À ¼Ó±îÁö ½º¸çµå´Â °ªÁø Á¶¾ðÀ¸·Î ¾²¿©Á³´Ù. ÀüÀÛÀÎ Effective C++°ú ¸¶Âù°¡Áö·Î, More Effective C++´Â C++ ¾ð¾î¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¡¸Ó¶ó¸é ¾î´À ´©±¸¿¡°Ôµµ °¨µ¿À» ÁÙ ¼ö ÀÖ´Â Çʵ¶¼ÀÌ´Ù.
½ºÄ± ¸¶À̾(Scott Meyers)´Â C++ ¼ÒÇÁÆ®¿þ¾î °³¹ß ºÐ¾ß¿¡ ÀÖ¾î¼ Àü ¼¼°èÀûÀ¸·Î °¡Àå Àß ¾Ë·ÁÁø ±ÇÀ§ÀÚ Áß ÇÑ ¸íÀÌ´Ù. °øÀüÀÇ º£½ºÆ® ¼¿·¯ÀÎ Effective C++¿Í Effective C++ CD(http://meyerscd.awl.com¿¡¼ µ¥¸ð¸¦ º¼ ¼ö ÀÖ´Ù )¸¦ Àú¼úÇÑ ±×´Â C++ ReportÀÇ Ä®·³´Ï½ºÆ®·Î Ȱµ¿ÇÑ ¹Ù ÀÖ°í, C/C++ Users Journal°ú Dr. Dobb's Journal µîÀÇ À¯¸í ÇÁ·Î±×·¡¹Ö ÀâÁöÀÇ ´Ü°ñ ±â°íÀÚÀÎ µ¿½Ã¿¡, Àü ¼¼°èÀÇ ÀÇ·ÚÀε鿡°Ô C++ ¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡ °üÇÑ ÄÁ¼³ÆÃÀ» ÇØÁÖ°í ÀÖÀ¸¸ç, ÇöÀç NumeriX LLC¿Í InfoCruiser Inc.ÀÇ ÀÚ¹® À§¿øÈ¸ ÀÓ¿øÀ¸·Î Ȱµ¿Çϰí ÀÖ´Ù. ¸¶À̾´Â ºê¶ó¿î ´ëÇÐ(Brown University)¿¡¼ Àü»êÇÐ ¹Ú»ç ÇÐÀ§(Ph. D. of Computer Science)¸¦ ¹Þ¾Ò´Ù. |
| |
 |
 |
2002³â °Ü¿ïºÎÅÍ ¹Ì±¹ ÀÎÅÍ³Ý ¼Á¡ ¾Æ¸¶Á¸(www.amazon.com)¿¡¼´Â "BE GAME DEVELOPER"¶ó´Â À̺¥Æ®¸¦ ¿°í Àü¹®°¡°¡ Çʵ¶¼·Î ¼±º°ÇÑ ¼ÀûÀ» ÆÇ¸ÅÇϰí ÀÖ´Ù. Àç¹ÌÀÖ´Â °ÍÀº ÀÌ À̺¥Æ®¿¡ ¼±Á¤µÈ ÇÁ·Î±×·¡¹Ö Âü°íµµ¼ÀÇ ´ëºÎºÐÀÌ C++ Ã¥À̶ó´Â Á¡Àε¥, ±»ÀÌ C++¸¦ Ç¥Áö¿¡ ¼¼¿ìÁö ¾ÊÀº Ã¥µµ °ÅÀÇ ¸ðµÎ ³»ºÎÀûÀ¸·Î C++¿¡ ´ëÇÑ ÀÌÇØ¸¦ ¿ä±¸Çϰí ÀÖ´Ù´Â Á¡Àº ÂüÀ¸·Î °í¹«ÀûÀ̾ú´Ù. ±×¸®°í, À̺¥Æ®¿¡ ¼±Á¤µÈ C++ Ã¥ Áß µÎ ±ÇÀÌ ¹Ù·Î Effective C++ / More Effective C++ÀÌ´Ù. (Æí¿ªÀÚ´Â ¹Ù·Î ÀÌ ¸»À» ÇÏ°í ½Í¾ú´Ù! ^^)
MEC++À̶õ ¾àÀڷεµ ¾Ë·ÁÁ® ÀÖ´Â ÀÌ Ã¥Àº ¾÷°è ÃÖ°í¼ö(?)Áß Çϳª·Î ¾Ë·ÁÁø ½ºÄ± ¸¶À̾ÀÇ Effective C++(EC++)ÀÇ ÈļÓÀÛÀÌ´Ù. 50°³ÀÇ Ç׸ñÀ¸·Î ±¸¼ºµÈ ÀüÀÛÀÌ Á¦´ë·Î µÈ C++ ÇÁ·Î±×·¡¹ÖÀ» À§ÇÑ 'Çʼö ±âº»±â'¸¦ ½É¾îÁִ åÀ̾ú´Ù¸é, 35°³ÀÇ Ç׸ñÀ¸·Î ±¸¼ºµÈ ÀÌ ÈļÓÀÛÀº 'Çʼö ±âº»±â'¸¦ ÀÍÈù ÈÄ¿¡ Àڽۨ¿¡ Â÷ ÀÖÀ» °³¹ßÀÚµéÀÇ ÇãÁ¡À» ¤¾îÁÖ´Â Áß³À̵µ Âü°í¼ÀÌ´Ù. Çü´ÔÀÎ EC++¿¡¼ º¸¿©ÁØ À§Æ® ¼¯ÀÎ ³¯Ä«·Î¿ò°ú ½Å¶öÇÔÀº ´õ¿í ÁõÆøµÇ¾î, ¾Æ¿ìÀÎ MEC++µµ 35°³ Ç׸ñ Áß ½±°Ô ÀÐÈú ÁÖÁ¦°¡ Çϳªµµ ¾øÀ½¿¡µµ ºÒ±¸Çϰí '°£°áÇϰí Àбâ ÁÁÀº ÃÖ°íÀÇ Ã¥'À̶õ Âù»ç¸¦ ¹Þ¾Ò´Ù. 2001³â¿¡ ÃâÆÇµÈ µ¿ÀúÀÚÀÇ Effective STL(Çѱ¹¾îÆÇ 'ÀÌÆåÆ¼ºê STL')À» Àбâ À§ÇÑ Áß°£ °úÁ¤ÀÇ ¿ªÇÒ±îÁö Ãæ½ÇÈ÷ Çϰí ÀÖ´Ù.
1996³â 1¼â°¡ ¹ßÇ¥µÈ ÀÌ Ã¥Àº, ±×µ¿¾È 10¿© ȸÀÇ ÀçÆÇ ¹ßÇàÀ» °ÅÃÄ ½º½º·Î ¼ºÀåÇØ ¿Ô°í, 2003³â¿¡´Â µåµð¾î Çѱ¹¾îÆÇÀ¸·Î ¸¸µé¾îÁ® Çѱ¹ °³¹ßÀڵ鿡°Ô ¼±º¸¿©Áö°Ô µÈ´Ù. ±×¸®°í, 5³â Àü¿¡ EC++/MEC++¸¦ óÀ½ Á¢ÇÏ°í ¸»ÇÒ ¼ö ¾ø´Â °¨µ¿À» ¹Þ¾Ò´ø º» Æí¿ªÀÚ´Â MEC++ Çѱ¹¾îÆÇÀÇ ÀÛ¾÷ÀÚ°¡ µÇ¾ú´Ù.
C++ÀÌ ¼Ò°³µÈ Áö 10¿© ³âÀÌ Èǽ Áö³ª º¹Á¦Àΰ£ÀÌ ¸¸µé¾îÁö´Â 21¼¼±â°¡ µÇ¾ú´Âµ¥µµ ¼Á¡ÀÇ C++ ¼½¼Ç¿¡´Â ¿©ÀüÈ÷ Ãʺ¸ÀÚ¿ë Ã¥°ú °³³ä¼¸¸ ³ÑÃijª´Â ¿ì¸®³ª¶ó¿¡, 90³â´ë Á߹ݿ¡ ³ª¿ÔÁö¸¸ ¿©ÀüÈ÷ Àü¼¼°è °³¹ßÀÚÀÇ Çʵ¶¼·Î ²ÅÈ÷´Â ÀÌ Ã¥À» Çѱ¹¾îÆÇÀ¸·Î ¼Ò°³ÇÏ´Â Æí¿ªÀÚÀÇ ¸¶À½¿£ ¸¸°¨ÀÌ ±³Â÷ÇÑ´Ù. ÀÌÁ¦ Effective ½Ã¸®Áî Àüü°¡ Çѱ¹¾îÆÇÀ¸·Î ¼Ò°³µÈ´Ù´Â Èå¹µÇÔ°ú, ÀÌ¹Ì ¿ø¼¸¦ ¸¹ÀÌ °¡Áö°í ÀÖ´Â µ¶ÀÚµé°ú óÀ½ Á¢ÇÏ´Â µ¶Àڵ鿡°Ô ÀÌ Çѱ¹¾îÆÇÀÌ ¾î¶² ¸ð½ÀÀ¸·Î ´Ù°¡¼³Áö¿¡ ´ëÇÑ ¹¦ÇÑ ±Ã±ÝÇÔ°ú µÎ·Á¿òÀÌ µÚ¼¯¿© Àֱ⠶§¹®ÀÌ´Ù. Åð±Ù ÈÄÀÇ ½Ã°£À» Âɰ³¾î Æ´Æ´ÀÌ ÀÛ¾÷ÇØ ¿Â 4°³¿ù µ¿¾ÈÀÇ »õº® ½Ã°£Àº À۳⿡ Effective STLÀ» ÀÛ¾÷ÇÒ ¶§¿Í ¸¶Âù°¡Áö·Î À̺¸´Ù ´õ Áñ°Å¿ü´ø ÀûÀº ¾ø´ø °Í °°´Ù. "Çѱ¹ °³¹ßÀÚµéÀÌ Áñ°Ì°Ô ÀÐÀ» ¼ö ÀÖ´Â MEC++°¡ µÇ¾úÀ¸¸é" ÇÏ´Â ¹Ù¶÷À¸·Î Áñ°Ì°Ô ¸¸µé¾ú´Ù. ÀÌ Ã¥À» Àбâ Àü¿¡ ¹Ýµå½Ã 'Æí¿ª ÀÛ¾÷ ¿øÄ¢ ¹× ¿ë¾î ´ë¿ªÇ¥' ÀåÀ» ¼÷ÁöÇØ µÎ¸é ´õ¿í Àç¹ÌÀÖ°Ô ÀÐÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. |
| |
| |
 |
 |
| |
|
|
 |
|
|