|
|
|
Exceptional C++ : C++ ÇÁ·Î±×·¡¸Ó¸¦ ÀÚ±ØÇÏ´Â 47°³ÀÇ Àç¹ÌÀÖ´Â ÆÛÁñ ¹®Á¦
- ÀýÆÇ |
 |
|
¤ýÀú ÀÚ |
Herb Sutter
|
¤ý¿ª ÀÚ |
±èµ¿Çö
, °û¿ëÀç
|
¤ý±¸ ºÐ |
¹ø¿ª¼
|
¤ý¹ßÇàÀÏ |
2003³â 03¿ù 29ÀÏ |
¤ýÁ¤ °¡ |
15,000¿ø |
¤ýÆäÀÌÁö |
284 ÆäÀÌÁö |
¤ýISBN |
89-8054-506-1 |
¤ý³À̵µ |
Áß±Þ.»ó±Þ |
¤ýÃâÆÇ»ç |
ÀÎÆ÷ºÏ |
|
|
|
|
|
|
|
 |
 |
Exceptional C++Àº Ç¥ÁØ C++·Î ÇÒ ¼ö ÀÖ´Â ¿Ïº®ÇÑ ¼ÒÇÁÆ®¿þ¾î °³¹ß¹ýÀ» Àç¹ÌÀÖ´Â ¿¹Á¦¸¦ ÅëÇØ º¸¿©ÁÝ´Ï´Ù. ¸¸ÀÏ C++ ÇÁ·Î±×·¡¹Ö¿¡ °ü·ÃµÈ ¹®Á¦³ª ÆÛÁñÀÌ ÀÖ´Ù¸é ¿©·¯ºÐÀº ¸î °³³ª Ç® ¼ö ÀÖÀ» °Í °°½À´Ï±î? ưưÇϰí È®Àå °¡´ÉÇÑ Äڵ带 ÀÛ¼ºÇÏ´Â µ¥¿¡ Èï¹Ì¸¦ °¡Áø °³¹ßÀÚµµ ÀÖÁö¿ä? ±×·¸´Ù¸é Àá½Ã ½Ã°£À» ³»¼, C++¸¦ »ç¿ëÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ¼³°è ¹æ¹ý°ú ÇÁ·Î±×·¡¹Ö¿¡ °ü·ÃµÈ ¾î·Á¿î ¹®Á¦¸¦ °¡Áö°í »ý°¢ÇØ º¸´Â °Ç ¾î¶³±î¿ä? ±× ÆÛÁñÀ» ¸ð¾Æ ³õÀº Ã¥ÀÌ ¹Ù·Î ÀÌ Ã¥ÀÔ´Ï´Ù.
Exceptional C++ÀÇ ÆÛÁñµé°ú ¹®Á¦µéÀº Áñ±â±â À§ÇÑ °Í¸¸ÀÌ ¾Æ´Ï¶ó, ¶Ù¾î³ C++ ÇÁ·Î±×·¡¸Ó°¡ µÇ±â À§ÇÑ ±â¼úÀ» ¿¬¸¶Çϴµ¥ µµ¿òÀ» ÁÙ °ÍÀÔ´Ï´Ù. ÀÌµé ¹®Á¦µéÀÇ ´ëºÎºÐÀº C++ ÇÁ·Î±×·¡¸Ó »çÀÌ¿¡´Â ÆÄ´ÙÇÏ°Ô ¾Ë·ÁÁø ÀÎÅÍ³Ý ´º½º±×·ì comp.lang.c++.moderatedÀÇ Guru of the Week(Àϸí Gotw)ÀÇ ±â»ç¿¡¼ ¸ð¾Æ¼, °øÀÎµÈ ISO/ANSI C++ Ç¥Áؾȿ¡ ¸Â°Ô È®ÀåÇÏ°í ¼öÁ¤ÇÏ¿´½À´Ï´Ù.
°¢ ¹®Á¦´Â ³À̵µ¿¡ µû¶ó µî±ÞÀÌ ¸Å°ÜÁ® ÀÖ°í, ÀúÀÚ´Â ¹Ì¹¦ÇÑ ÇÁ·Î±×·¡¹Ö ½Ç¼ö ¶Ç´Â ¼³°è ¹®Á¦¸¦ ¿©·¯ºÐ¿¡°Ô ´øÁø ÈÄ¿¡ Àç¹ÌÀÖ´Â ¼³¸íÀ¸·Î ¹®Á¦¸¦ Ç®¾î ÁÝ´Ï´Ù. ÀÏ´Ü ¿©·¯ºÐ ½º½º·Î ÇØ°áÃ¥À» ã´Â ±âȸ¸¦ °®Àº ´ÙÀ½¿¡, Ã¥¿¡¼ Äڵ带 »ó¼¼È÷ ºÐ¼®ÇÏ¿© ¹«¾ùÀÌ À߸øµÇ¾ú°í, ¾î¶»°Ô ¹®Á¦°¡ ¼öÁ¤µÇ¾î¾ß ÇÏ´ÂÁö ¼³¸íÇÕ´Ï´Ù. ÀÌ Ã¥¿¡¼ ÁÖ·Î ´Ù·é ³»¿ëÀº ´ÙÀ½°ú °°½À´Ï´Ù.
ÀϹÝÀûÀÎ ÇÁ·Î±×·¡¹Ö°ú Àç»ç¿ë °¡´ÉÇÑ ÅÛÇø´À» ÀÛ¼ºÇÏ´Â ¹æ¹ý ¿¹¿Ü ¾ÈÀü¼º¿¡ °ü·ÃµÈ »çÇ×°ú ¿¹¿Ü ¾ÈÀü¼ºÀ» ºÎ¿©ÇÏ´Â ÇÁ·Î±×·¡¹Ö ưưÇÑ Å¬·¡½º µðÀÚÀΰú »ó¼Ó ÄÄÆÄÀÏ·¯ ¹æÈº®°ú Pimpl Idiom À̸§ °Ë»ö(Name lookup), ³×ÀÓ½ºÆäÀ̽º(Namespace), ±×¸®°í ÀÎÅÍÆäÀ̽º ¼³°è ¿øÄ¢ ¸Þ¸ð¸® °ü¸® À̽´µé°ú ±â¹ýµé ÇÔÁ¤, °è·«, ±×¸®°í ¹Ý´ë °ü¿ë±¸µé ÃÖÀûÈ
ÀÌ Ã¥À» ¾²´Â µ¥¿¡ Áö´ëÇÑ ¿µÇâÀ» ³¢Ä£ C++ ÇÁ·Î±×·¡¹ÖÀÇ °í¼öµé°ú ºñ±³ÇÏ¿© ÀÚ½ÅÀÇ ½Ç·ÂÀ» °¡´ÆÇغ¸°í, ÅëÂû·ÂÀÌ »ì¾Æ ¼û½¬°í, È¿À²ÀûÀ̰í, È¿°úÀûÀ̰í, ưưÇϰí, ÀÌ½Ä °¡´ÉÇÑ C++ ÇÁ·Î±×·¡¹ÖÀ» °æÇèÇϽʽÿÀ.
Çãºê ¼ÅÍ(Herb Sutter)´Â C++ ¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡ ´ëÇÑ Àü¹®°¡·Î ¾ÆÁÖ Àß ¾Ë·ÁÁ® ÀÖÀ¸¸ç Á¤±âÀûÀ¸·Î Àü ¼¼°èÀÇ ÄÁÆÛ·±½º¿¡ Âü¿©ÇÏ¿© ¼¼¹Ì³ª ¹× °¿¬À» Çϰí ÀÖ½À´Ï´Ù. www.gotw.ca/eseminars¸¦ ÅëÇØ ÇÑ ´Þ¿¡ ¸î ¹ø¾¿ »ý¹æ¼Û °Àǵµ ÇÑ´Ù°í ÇÕ´Ï´Ù. ¶ÇÇÑ, 130¿© ÀÌ»óÀÇ Å×Å©´ÏÄà ±â»ç¸¦ ½á¿Â Çãºê´Â ISO/ANSI C++ Ç¥ÁØ À§¿øÈ¸ÀÇ ¼±â°üÀ̸ç, C/C++ Users JournalÀÇ ÆíÁýÀÚÀÌ¸ç Æ¯º° ±â°í°¡ÀÌÀÚ, C++ ReportÀÇ ÁÖ¿ä ÆíÁýÀڷΠȰµ¿Çß½À´Ï´Ù. ±×ÀÇ À¯¸íÇÑ "C++ Guru of the Week" ½Ã¸®Áî´Â C++ ÇÁ·Î±×·¡¹ÖÀ» ´Ù·é ÀÎÅÍ³Ý ´º½º±×·ìÀÎ comp.lang.c++.moderated¿¡ Æ÷½ºÆÃµÇ¾ú½À´Ï´Ù. ±×¸®°í, ÀÌ Ã¥ÀÇ ¼ÓÆíÀ¸·Î Àú¼úÇÑ More Exceptional C++(Addison-Wesley, 2002)¿¡¼´Â 40°³ÀÇ ¹®Á¦¸¦ »õ·Î Ãß°¡Çߴٴ±º¿ä. Çãºê´Â ÀÚ½ÅÀÇ °ø½Ä ȨÆäÀÌÁöÀÎ www.gotw.ca¸¦ ¿î¿µÇϰí ÀÖ½À´Ï´Ù. |
|
 |
 |
C++´Â Àü¼¼°èÀûÀ¸·Î °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â ¾ð¾îÀÔ´Ï´Ù. ÇöÀç¿¡µµ ƯÁ¤ ºÐ¾ß¸¦ Á¦¿ÜÇϰí´Â ´ëºÎºÐÀÇ ¼ÒÇÁÆ®¿þ¾îµéÀÌ C++·Î Á¦À۵ǰí ÀÖ½À´Ï´Ù. ÇÏÁö¸¸, ¾ÆÁ÷±îÁöµµ ¸¹Àº ÇÁ·Î±×·¡¸ÓµéÀÌ ¾î¶»°Ô ÇÁ·Î±×·¥À» ¾ÈÀüÇϰí È¿À²ÀûÀ¸·Î ÀÛ¼ºÇØ¾ß ÇÏ´ÂÁö ¸ð¸£°í ÀÖ½À´Ï´Ù. ¸Å¹ø °°Àº »óȲÀÇ ¹®Á¦µé°ú °íÁúÀûÀÎ µðÀÚÀÎ ¹®Á¦¿¡ ºÀÂøÇÏ´Â ¿©·¯ºÐÀ» ¹ß°ßÇϽŴٸé, ¾î¼ Herb Sutter°¡ Á¦¾ÈÇÏ´Â ¹æ¹ýµéÀ» »ìÆìº¸½Ã±â ¹Ù¶ø´Ï´Ù. Herb Sutter´Â ISO C++ Ç¥ÁØ À§¿øÈ¸ À§¿øÀåÀ¸·Î Ȱµ¿Çϰí ÀÖÀ¸¸ç, C/C++ Users Journal(CUJ)¿¡ Ä®·³À» Á¦°øÇϰí ÀÖ½À´Ï´Ù. ÀÌ ¿Ü¿¡µµ, Herb Sutter´Â Guru of the WeekÀÇ ÀÏ¿ø´ä°Ô C++ °øµ¿Ã¼ÀÇ ¸¹Àº ºÐ¾ß¿¡¼ Ȱ¹ßÇÑ È°µ¿À» Çϰí ÀÖ½À´Ï´Ù.
ÀÌ Ã¥Àº C++¸¦ ¾î´À Á¤µµ ¾Ë°í ÀÖÀ¸¸ç, STL¿¡ ´ëÇØ¼ ÇѹøÂëÀº µé¾î¿Â µ¶ÀÚ¸¦ ´ë»óÀ¸·Î Çϰí ÀÖ½À´Ï´Ù. C++¿Í STL¿¡ ´ëÇØ¼ Àß ¾Ë°í ÀÖÁö ¸øÇÏ´õ¶óµµ Âü°í¼¸¸ ÁغñµÇ¾î ÀÖ´Ù¸é, ÀÌ Ã¥À» º¸´Âµ¥ ¾Æ¹«·± ÁöÀåÀÌ ¾ø½À´Ï´Ù. Áú¹®°ú ´äÀÇ Çü½ÄÀ» ÃëÇÏ¿© ¸í·áÇÏ°Ô ¿©·¯ºÐÀÌ ¿øÇÏ´Â ´äÀ» ½±°Ô ¾Ë ¼ö ÀÖµµ·Ï ¼³¸íÇØ ³õ°í ÀÖ½À´Ï´Ù. ÁÖ ³»¿ëÀ¸·Î´Â ÇÁ·Î±×·¥ÀÇ °¡Àå ±âº»ÀÌ µÇ´Â ¿¹¿Ü »óȲ ó¸®, Ŭ·¡½º µðÀÚÀÎÀÇ ±âº»°ú ±× ÀÀ¿ëµé, ±×¸®°í ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§ °í·ÁÇØ¾ß ÇÏ´Â ¿©·¯ °¡Áö Áß¿ä »çÇ×µéÀÌ ÀÖ½À´Ï´Ù. ƯÈ÷, Pimpl À̵ð¾ö(Idiom)°ú ÀÎÅÍÆäÀ̽º ¿øÄ¢Àº ¿©·¯ºÐµéÀ» »õ·Î¿î ¼¼»óÀ¸·Î ¾È³»ÇÒ °ÍÀÔ´Ï´Ù. ¹ø¿ªÇÏ¸é¼ °¡´ÉÇÑ ¿ø¹®ÀÇ ³»¿ë°ú Çü½ÄÀ» °íÄ¡Áö ¾Ê°í ³»¿ëÀ» Àü´ÞÇÏ´Â °ÍÀ» ¿ì¼±À¸·Î »ï¾Ò½À´Ï´Ù. ÇÏÁö¸¸, ³»¿ë°ú »ó°ü¾ø´Â ¸Å²ô·´Áö ¸øÇÑ ºÎºÐÀº ¾Ë¸Â°Ô ÀÇ¿ªÇÏ¿© ³»¿ëÀ» ¼öÁ¤ÇÏ¿´°í, ÀÌÇØÇϴµ¥ ºÎ°¡ ¼³¸íÀÌ ÇÊ¿äÇÏ´Ù°í »ý°¢µÇ´Â ºÎºÐÀº ¿ªÀÚÁÖ¸¦ ³Ö¾î ±× ³»¿ëÀ» º¸ÃæÇÏ¿´½À´Ï´Ù.
[¿ªÀÚ ¾à·Â] ¿µ»óó¸® Àü¹®È¸»ç¿¡ ±Ù¹«ÇÏ¿´°í, À©µµ¿ì ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö°ú ³×Æ®¿÷ ÇÁ·Î±×·¡¹ÖÀ» ÁÖ·Î ´ã´çÇÏ¿´½À´Ï´Ù.
[°¨¼öÀÇ ±Û] "¹®¹ýÀÌ ³Ê¹« º¹ÀâÇÏ°í ¹è¿ì±â ¾î·Á¿ö." "ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ ÆíÀǰ¡ µÇ¾î ÀÖÁö ¾Ê´Ù°í?" "¾µ¸¸ÇÑ ¶óÀ̺귯¸®°¡ ¾ø´Ù. ¾î¶»°Ô ¸ðµç °ÍÀ» óÀ½ºÎÅÍ ¸¸µå³Ä?" "°´Ã¼ ÁöÇâÀÇ Å»À» ¾´ ÀýÂ÷ÁöÇâ ¾ð¾îÀݾÆ. ÀÌ°Ç Àý¸§¹ßÀÌ ¾ð¾î¾ß." "³ª¿Â Áö°¡ ¾ó¸¶³ª µÆ´Âµ¥. ±×°É ¿Ö ½á?"
ÀÌ·± À̾߱⸦ µéÀ¸¸é¼ °¨¼öÀÚ°¡ C++¸¦ ½á¿Â Áö ¿ÃÇØ·Î 10³âÀÌ µÇ¾ú´Ù. ¾Æ¹« »ý°¢ ¾øÀÌ '¾Æ´Â ´ë·Î' »ê ¼¼¿ùµµ ÀÖ¾ú°í, ´Ù¸¥ ¾ð¾î¸¦ ½áº¸±âµµ Çß¾ú´Ù. ÇÏÁö¸¸ ¾îµò°¡ ÇãÀüÇÑ '°Å½Ã±â'°¡ ¸¶À½ ÇÑ Æí¿¡ ÀÚ¸®Àâ°í ÀÖ´ø 1998³âÀÇ ¾î´À ³¯, ¿ì¿¬È÷ ANSI C++ÀÇ ÃÖÁ¾ Ç¥ÁؾÈÀÌ ½ÂÀεǾú´Ù´Â ±â»ç¸¦ Á¢Çß´Ù. C++ÀÇ ¼îŸÀÓÀº ÀÌÁ¦ºÎÅͰ¡ ¾Æ´Ñ°¡.
Èûµé°Ô »ì¾Æ¿Â ¼¼¿ù¸¸Å, C++´Â ¸¹Àº º¯È¸¦ °Þ¾ú´Ù. ÇÏÁö¸¸ "°´Ã¼ ÁöÇâ °³³äÀ» µµÀÔÇϵÇ, ÀÌÀüÀÇ È¿À²Àº ¶³¾î¶ß¸®Áö ¾Ê´Â´Ù"¶ó´Â ºñ¾á ½ºÆ®·Ó½ºÆ®·´(Bjarne Stroustup)ÀÇ Ãʱâ öÇÐÀº ±×´ë·Î º¯ÇÏÁö ¾ÊÀº ä·Î "Á¦³×¸¯ ÇÁ·Î±×·¡¹Ö(generic programming)"À̶õ ÃÖ°ÀÇ ½Ã½ºÅÛÀ¸·Î Áß¹«ÀåÇß°í, ÀÌ ½Ã½ºÅÛÀ» ±â¹ÝÀ¸·Î ¸¸µé¾îÁø Ç¥ÁØ ÅÛÇø´ ¶óÀ̺귯¸®¸¦ ÃÊÁ¤¿¹ ±â°©ºÎ´ë·Î ³»¼¼¿ö ÇÁ·Î±×·¡¸Ó¸¦ À¯È¤Çϰí ÀÖ´Ù. ÇÏÁö¸¸ ¿©ÀüÈ÷ ¼ö ³â°£ ¹ÚÇô¿Â C++¿¡ ´ëÇÑ ÀÏ¹Ý ÇÁ·Î±×·¡¸ÓÀÇ ¼±ÀÔ°üÀº ¾ÆÁ÷µµ C++¸¦ '°øºÎÇÒ ½Ã°£µµ ¾ø´Âµ¥, µéÀÎ ½Ã°£¸¸Å ¾ò´Â °ÍÀÌ ¾ø´Â' ¹«¼¿î ¾ð¾î·Î ºñÃÄÁö°Ô Çϰí ÀÖ´Ù. ÀÌ¿¡, C++¸¦ ÃÖ¼ÒÇÑÀÇ ½Ã°£ÀÇ °¡Àå È¿°úÀûÀ¸·Î °øºÎÇÒ ¼ö ÀÖ´Â ÇнÀ¼ ½Ã¸®Á ¿ì¸®³ª¶ó °³¹ßÀÚ¿¡°Ô ¼Ò°³ÇÏ°Ô µÉ ±âȸ¸¦ °¡Áö°Ô µÇ¾î ¶Ç ´Ù½Ã '°Å½Ã±â'ÇÑ ±âºÐÀÌ´Ù.
C++ In Depth ½Ã¸®Áî´Â C++ÀÇ Ã¢½ÃÀÚÀÎ ºñ¾á ½ºÆ®·Ó½ºÆ®·´ÀÌ Á÷Á¢ ½Ã¸®Áî ÆíÁýÀÚ¸¦ ¸Ã¾Æ ±âȹÇÑ C++ ÇнÀ¼ÀÌ´Ù. ±âº» ÇÁ·Î±×·¡¹Ö, ¼³°è ±â¹ý, Ȱ¿ë ¶óÀ̺귯¸®, ÇÁ·Î±×·¡¹Ö Áöħ ¹× Å×Å©´ÐÀ» ¸ðµÎ Æ÷°ýÇÏ¿© ±âȹµÈ º» ½Ã¸®Áî´Â
1) µ¶ÀÚ¿¡°Ô ºÎ´ãÀ» ÁÖÁö ¾Ê´Â ºÐ·® 2) Á¦¸ñ¿¡ ºÎÇÕÇÏ´Â ¸¸ÅÀÇ ³»¿ë 3) Âü°í ÀڷḦ ã¾Æº¼ Çʿ䰡 ¾ø´Â ±¸¼º 4) ½Ã¸®Áî ³» µµ¼ÀÇ »óÈ£ ÂüÁ¶¸¦ ÅëÇÑ ³ôÀº °áÇÕµµ
¶ó´Â Ư¡À» °¡Áö°í Ãâ°£µÇ¾úÀ¸¸ç, À̸§¸¸ µé¾îµµ ¸ðµÎ °í°³¸¦ ²ô´öÀϸ¸ÇÑ ¼öÁØÀÇ ÀïÀïÇÑ ¿£Áö´Ï¾î °â ÇÐÀÚ·Î ±¸¼ºµÈ ÃÖ°ÀÇ ÇÊÁøÀ» ÀÚ¶ûÇÑ´Ù. C++¸¦ ±âº»ºÎÅÍ ´Ù½Ã ÂùÂùÈ÷ ´ÙÁö°í ½ÍÀº ÃʽÉÀÚ, ¾÷°è¼öÁØÀÇ ÇÁ·Î±×·¡¹Ö Å×Å©´ÐÀ» Á¢ÇϰíÀÚ ÇÏ´Â ¿£Áö´Ï¾î³ª ¿¬±¸ÀÚµé, C++ÀÇ ÃÖ±Ù ¾²ÀÓ»õ¸¦ ¾Ë¾Æº¸°íÀÚ ÇÏ´Â ÇÁ·Î±×·¡¸Ó µî, ¸ðµÎ¿¡°Ô ¸¸Á·À» ÁÖ¸®¶ó »ý°¢Çϰí ÀڽŠÀÖ°Ô ÃßõÇÏ´Â ¹ÙÀÌ´Ù. |
|
|
 |
 |
"Infobook-C++ in Depth" °ü·Ãµµ¼´Â ÃÑ 11±Ç ÀÔ´Ï´Ù. |
- Accelerated C++ : ¿¹Á¦·Î ¹è¿ì´Â ÁøÂ¥¹è±â C++ ÇÁ·Î±×·¡¹Ö
|
- Essential(¿¡¼¾¼È) C++
|
- C++ Template Metaprogramming : Boost·ÎºÎÅÍ ¹è¿ì´Â °³³ä, µµ±¸, ±â¹ý
|
- C++ ÄÚµùÀÇ Á¤¼® : 101°¡Áö ±ÔÄ¢, °¡À̵å¶óÀÎ, ÁÁÀº ½À°üµé
|
- Exceptional C++ Style : 40°³ÀÇ »õ·Î¿î ÇÁ·Î±×·¡¹Ö ÆÛÁñ°ú ¹®Á¦ ±×¸®°í ±× ÇØ´ä
|
- C++ Network Programming Volume 2 : ACE¿Í ÇÁ·¹ÀÓ¿öÅ©¸¦ ÀÌ¿ëÇÑ Ã¼°èÀûÀÎ Àç»ç¿ë ±â¹ý
|
- Applied C++ : Çâ»óµÈ ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇϱâ À§ÇÑ ½Ç¿ëÀûÀÎ ±â¼ú
|
- Á¦³×¸¯ ÇÁ·Î±×·¡¹Ö°ú µðÀÚÀÎ ÆÐÅÏÀ» Àû¿ëÇÑ Modern C++ Design
|
- Exceptional C++ : C++ ÇÁ·Î±×·¡¸Ó¸¦ ÀÚ±ØÇÏ´Â 47°³ÀÇ Àç¹ÌÀÖ´Â ÆÛÁñ ¹®Á¦
|
- C++ Network Programming Volume 1 : ACE¿Í ÆÐÅÏÀ» »ç¿ëÇÑ °´Ã¼ÁöÇâ ³×Æ®¿öÅ© ÇÁ·Î±×·¡¹Ö
|
- Essential(¿¡¼¾¼È) C++
|
|
|
 |
|
|