|
|
|
Á¦³×¸¯ ÇÁ·Î±×·¡¹Ö°ú µðÀÚÀÎ ÆÐÅÏÀ» Àû¿ëÇÑ Modern C++ Design
- ÀýÆÇ |
 |
|
¤ýÀú ÀÚ |
Andrei Alexandrescu
|
¤ý¿ª ÀÚ |
À̱âÇü
, °û¿ëÀç
|
¤ý±¸ ºÐ |
¹ø¿ª¼
|
¤ý¹ßÇàÀÏ |
2003³â 07¿ù 30ÀÏ |
¤ýÁ¤ °¡ |
20,000¿ø |
¤ýÆäÀÌÁö |
500 ÆäÀÌÁö |
¤ýISBN |
89-8054-517-7 |
¤ý³À̵µ |
Áß±Þ.»ó±Þ |
¤ýÃâÆÇ»ç |
ÀÎÆ÷ºÏ |
|
|
|
|
|
|
|
 |
 |
¸ð´ø C++ µðÀÚÀÎÀº ±×¾ß¸»·Î Ź¿ùÇÑ Ã¥ÀÌ´Ù. ÀÌ Ã¥Àº 'Á¦³×¸¯ ÆÐÅÏ'À̳ª 'ÆÐÅÏ ÅÛÇø´'µéÀ» ÀÌ¿ëÇÏ¿© °·ÂÇÏ°íµµ È®À强 ÀÖ´Â µðÀÚÀÎÀ» ¸¸µé¾î³»´Â ¹æ¹ýÀ» Á¦½ÃÇØ ÁØ´Ù. À̰ÍÀº ÅÛÇø´°ú ÆÐÅÏÀ» °áÇÕÇÏ´Â ÀüÇô »õ·Î¿î Á¢±Ù¹ýÀÌ´Ù. ±× µ¿¾ÈÀº ºÒ°¡´ÉÇÏ´Ù°í ¿©°ÜÁ® ¿ÔÁö¸¸, ÀÌÁ¦ ÀÌ Ã¥À¸·Î ÀÌ·¯ÇÑ ¹æ¹ýµéÀÌ °¡´ÉÇØ Á³´Ù! ¸¸ÀÏ ¿©·¯ºÐÀÇ Á÷¾÷ÀÌ C++¸¦ ÀÌ¿ëÇÏ¿© µðÀÚÀÎÀ» Çϰųª ÄÚµùÀ» ÇÏ´Â ºÐ¾ßÀÇ °ÍÀ̶ó¸é, ²À ÀÌ Ã¥À» Àо±â ¹Ù¶õ´Ù. °Ãß!
- Herb Sutter
C++¿¡ ´ëÇØ Áö±Ý±îÁö ³íÀÇµÈ °Í ¿Ü¿¡ ´õ ³²¾ÆÀÖ´Â ³»¿ëÀÌ ÀÖÀ»±î? ¹°·Ð ±×·¸´Ù. ±×°Íµµ ¾ÆÁÖ ¸¹ÀÌ... ÀÌÁ¦ ÀÌ Ã¥À» ÅëÇØ ±×°ÍÀÌ µå·¯³´Ù.
- John VlissidesÀÇ ÃßõÀÇ ¸»¿¡¼ ¹ßÃé
¸ð´ø C++ µðÀÚÀÎÀ» ÅëÇØ Andrei Alexandrescu´Â C++ ÇÁ·Î±×·¡¸Óµé¿¡°Ô »õ·Î¿î ÁöÆòÀ» ¿¾î ÁÖ¾ú´Ù. ±Øµµ·Î µ¶Ã¢ÀûÀÎ ÇÁ·Î±×·¡¹Ö ±â±³¸¦ ÆîÃİ¡¸ç, Alexandrescu´Â µðÀÚÀÎ ÆÐÅϰú Á¦³×¸¯ ÇÁ·Î±×·¡¹Ö, ±×¸®°í C++¸¦ °°ÀÌ ¿«´Â ¸Å¿ì ¿¹¸®ÇÑ Á¢±Ù¹ýÀ» Á¦½ÃÇϰí ÀÖ´Ù. ¸¹Àº ÇÁ·Î±×·¡¸ÓµéÀÌ ÀÌ·¯ÇÑ Á¢±Ù¹ýÀ» ÅëÇØ ¸íÈ®Çϰí À¯¿¬Çϸ鼵µ Àç»ç¿ë¼ºÀÌ ¶Ù¾î³ ÄÚµùÀ» ÇÒ ¼ö ÀÖ°Ô µÉ °ÍÀÌ´Ù.
ÀÌ Ã¥Àº C++¸¦ ÅëÇÏ¿© Á¦³×¸¯ ÄÄÆ÷³ÍÆ®(»ç¶÷º¸´Ù´Â ÄÄÆÄÀÏ·¯°¡ ¼ÒÈÇØ¾ß ¸¶¶¥ÇÑ ÆÇ¹ÚÀÌ Äڵ带 »ý¼ºÇØ ÁÖ´Â Àç»ç¿ë °¡´ÉÇÑ µðÀÚÀÎ ÅÛÇø´)ÀÇ °³³äÀ» ¼Ò°³Çϰí ÀÖ´Ù. Á¦³×¸¯ ÄÄÆ÷³ÍÆ®´Â ´õ ½±°í ÀÚ¿¬½º·´°Ô µðÀÚÀÎÀ» ¾ÖÇø®ÄÉÀÌ¼Ç ÄÚµå·Î Ç®¾î³ª°¡°Ô ÇØ ÁÖ¸ç, º»·¡ÀÇ µðÀÚÀÎ Àǵµ¸¦ º¸´Ù Àß ¹Ý¿µÇÏ´Â Äڵ带 ÀÛ¼ºÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁØ´Ù. ¶ÇÇÑ, ÃÖ¼ÒÇÑÀÇ ÄÚµå ¼öÁ¤¸¸À¸·Î µðÀÚÀÎ ½ºÆ®·°Ã³¸¦ ´Ù½Ã »ç¿ëÇÏ´Â °Íµµ ÀÌ Á¦³×¸¯ ÄÄÆ÷³ÍÆ®¸¦ ÅëÇØ °¡´ÉÇØÁø´Ù.
ÀúÀÚ°¡ ±â¼úÇϰí ÀÖ´Â ÀÌ µ¶Æ¯ÇÑ C++ÀÇ Æ¯Â¡À̳ª ±â¹ýµéÀº ½ÇÁ¦ ¾îÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇÏ´Â µ¥¿¡ »ó¾÷ÀûÀ¸·Î ¾²ÀÏ ¼ö ÀÖ´Â Á¦³×¸¯ ÄÄÆ÷³ÍÆ®¸¦ ±¸ÇöÇÏ´Â µ¥¿¡ Àû¿ëµÉ ¼ö ÀÖ´Ù. ÀÌ Ã¥¿¡¼´Â C++ °³¹ßÀÚ°¡ ¸ÅÀÏ ¸ÅÀÏÀÇ ¾÷¹«Áß¿¡ ¹Ýº¹ÀûÀ¸·Î Á¢ÇÏ°Ô µÇ´Â À̽´µé¿¡ ´ëÇØ ±íÀÌ ÀÖ°Ô ³íÀǵǰí ÀÖÀ¸¸ç, Á¦³×¸¯ÇÑ ¹æ¹ýÀ¸·Î ÀÌ·± ¹®Á¦µéÀÇ ÇØ¹ýÀ» ±¸ÇöÇϰí ÀÖ´Ù. ¿©±â¼ Á¦³×¸¯ÇÑ ¹æ¹ýÀ̶õ ´ÙÀ½À» Æ÷ÇÔÇÑ´Ù.
À¯¿¬¼ºÀ» À§ÇÑ ´ÜÀ§Àü·« ±â¹ÝÀÇ µðÀÚÀÎ(Policy-based design) ÅÛÇø´ ÄÚµåÀÇ ºÎºÐÀû Æ¯È (partial template specialization) ÀÚ·áÇüÀ» ´Ù·ç´Â °·ÂÇÑ ±â¹ýÀΠŸÀÔ¸®½ºÆ®(Typelist) ºñÁöÅÍ(Visitor), ½Ì±ÛÅæ(Singleton), Ä¿¸Çµå(Command), ±×¸®°í ÆÑÅ丮(Factory)¿Í °°Àº °¢Á¾ ÆÐÅÏ ¸ÖƼ ¸Þ¼Òµå ¿£Áø
ÀÌ Ã¥Àº ÀÌ °°Àº °¢°¢ÀÇ Á¦³×¸¯ ÄÄÆ÷³ÍÆ®µé¿¡ ´ëÇØ, ±âº»ÀûÀÎ ¹®Á¦¿Í µðÀÚÀÎ »ç¾çÀ» Á¦½ÃÇØ ÁÖ¸ç, °á°úÀûÀ¸·Î´Â Á¦³×¸¯ÇÑ ÇØ¹ýÀ» ±¸ÇöÇØ ÁÖ°í ÀÖ´Ù.
´õºÒ¾î, µ¶ÀÚµéÀº À¥ ÆäÀÌÁö "http://www.awl.com/cseng/titles/0-201-70431-5"¸¦ ÅëÇÏ¿© ÀÌ Ã¥¿¡¼ ¾²À̰í ÀÖ´Â C++ ¶óÀ̺귯¸® Loki¸¦ ¹«·á·Î ´Ù¿î·Îµå ¹Þ¾Æ º¼ ¼ö ÀÖ´Ù. ÀÌ Ã¥ÀÇ ÀúÀÚ°¡ Á÷Á¢ ÀÛ¼ºÇÑ ¶óÀ̺귯¸® Loki´Â, ÀÌÁ¦±îÁö ´Ù¸¥ ¾î¶² C++ ÇÁ·ÎÁ§Æ®¿¡¼µµ ¾òÀ» ¼ö ¾ø¾ú´ø,È®ÀåµÈ ±â´ÉµéÀ» Á¦°øÇÑ´Ù.
Andrei Alexandrescu´Â RealNetworks »çÀÇ °³¹ß ¸Å´ÏÀúÀÌ´Ù. ±×´Â C/C++ User JournalÀÇ Ä÷³´Ï½ºÆ®ÀÌÀÚ, C++ ReportÀÇ Ä÷³´Ï½ºÆ®À̸ç, ±×ÀÇ Çõ½ÅÀûÀÎ ¼º°ú´Â ±×¿¡°Ô ÀÌ ºÐ¾ß¿¡¼ÀÇ ¼±±¸ÀÚ¶ó´Â ¸í¼ºÀ» °¡Á®´ÙÁÖ¾ú´Ù. AndreiÀÇ ±â¼úÀû °ü½É»ç´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í ¼ÒÇÁÆ®¿þ¾î ÀçȰ¿ë, ±×¸®°í µ¥ÀÌÅÍ ¾ÐÃà¿¡ °üÇÑ °ÍÀÌ´Ù. |
|
 |
 |
ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù´Â °ÍÀº ´Þ¸® ¸»Çϸé '³í¸®ÀÇ ¼º'À» ½×´Â ÀÛ¾÷À̶ó°í ¸»ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ±× ¼ºÀÇ Àç·á°¡ µÇ´Â '³í¸®'¶ó´Â °ÍÀº ´ç¿¬È÷ ÀüÀûÀ¸·Î ÇÁ·Î±×·¡¸ÓÀÇ ¿ª·®¿¡ µû¶ó ÁúÀÇ ³ôÀ½°ú ³·À½ÀÌ ±¸ºÐµÉ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¶ÇÇÑ ¾ð¾î°¡ ¹ßÀüµÇ¾î °¨¿¡ µû¶ó ±× ³í¸®ÀÇ Ã¼°è ¿ª½Ã Á¡Á¡ ´õ ¹ßÀüµÇ¾î ¿Â °ÍÀÌ »ç½ÇÀÔ´Ï´Ù. ÇÏÁö¸¸ ±×·¯ÇÑ ¹ßÀü¿¡µµ ºÒ±¸Çϰí, Àú´Â ±×Àú ¿À·¡µÈ º®µ¹À» °¡Áö°í ºÎ½ÇÇÑ ¼ºÀ» ½×¾Æ ¿Ô´ø °ÍÀº ¾Æ´Ñ°¡ ÇÏ´Â ÀÚ¼ºÀÇ ¸ñ¼Ò¸®¸¦ ¶³ÃÄ ¹ö¸± ¼ö ¾ø¾ú½À´Ï´Ù.
±×·¯´ø Áß {Modern C++ Design}Àº Àú¿¡°Ô ±×¾ß¸»·Î »õ·Ó°í ½Å¼±ÇÑ Ãæ°ÝÀ» ¾È°Ü ÁÖ¾ú½À´Ï´Ù. ¹°·Ð, ¿©±â¿¡¼ »ç¿ëÇϰí ÀÖ´Â Á¦³×¸¯ ÇÁ·Î±×·¡¹ÖÀ̳ª ¿©·¯ °¡Áö µðÀÚÀÎ ÆÐÅϵéÀÌ ¿ÏÀüÈ÷ »õ·Î¿î °³³äÀÎ °ÍÀº ¾Æ´Õ´Ï´Ù. ÇÏÁö¸¸, ÀúÀÚ Andrei Alexandrescu°¡ ½×¾Æ ³õÀº ³í¸®ÀÇ Ã¼°è´Â ±×µ¿¾È Á¢ÇؿԴø ±× ¾î¶² ÄÚµåµéº¸´Ù ´õ Á¦³×¸¯Çϸç, Æí¸®Çϰí, ¶Ç ưưÇÕ´Ï´Ù. °Ô´Ù°¡, ±×°¡ Á¦°øÇϰí ÀÖ´Â Loki ¶óÀ̺귯¸®´Â È®À强¿¡ À־µ ÀüÇô ºÎÁ·ÇÔÀÌ ¾ø½À´Ï´Ù.
¹°·Ð ÀÌ Ã¥Àº C++·Î ±¸»çÇÒ ¼ö ÀÖ´Â °í±Þ Å×Å©´ÐµéÀ» ´Ù·ç°í ÀÖ½À´Ï´Ù. ±×¸®°í ÀÌ Ã¥À» ÀÌÇØÇϱâ À§ÇÑ ¼±Çà Áö½ÄÀÇ ¿¹¸¦ µé¸é, STL ¹× Á¦³×¸¯ ÇÁ·Î±×·¡¹Ö ±×¸®°í µðÀÚÀÎ ÆÐÅÏÀÌ¶ó ¸»ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ³Ê¹« °Ì³»½Ç ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÌ Ã¥Àº ¿©·¯ºÐ¿¡°Ô ÀÌ·± ÁÖÁ¦µé¿¡ ´ëÇÑ ¿ÏÀüÇÑ ÀÌÇØ¸¦ ¿ä±¸ÇÏÁö´Â ¾Ê½À´Ï´Ù. µ¶ÀÚ ¿©·¯ºÐÀº STL, Á¦³×¸¯ ÇÁ·Î±×·¡¹Ö ±×¸®°í µðÀÚÀÎ ÆÐÅÏ¿¡ ´ëÇÑ °³³äÀûÀÎ ÀÌÇØ¸¸À» °¡Áö°íµµ ÀÌ Ã¥ÀÇ ³»¿ëÀ» Ä¿´Ù¶õ ¾î·Á¿ò ¾øÀÌ µû¶ó°¥ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù(´Ù¸¸ ÇÑ °¡Áö, ÅÛÇø´¿¡ Àͼ÷ÇØÁö´Â °úÁ¤Àº °¨¼öÇØ¾ß ÇÕ´Ï´Ù).
¶ÇÇÑ °¡Àå ¸ÚÁø ÀÏÀº, ÀÌ Ã¥À» ÀÐÀº ÈÄ¿¡ ¿©·¯ºÐÀÌ °¡Áú ¼ö ÀÖ´Â °ÍÀÌ ºñ´Ü 'Çâ»óµÈ ½Ç·Â'¸¸ÀÌ ¾Æ´Ï¶ó´Â Á¡ÀÔ´Ï´Ù. ÀúÀÚ Alexandrescu´Â ÀÌ Ã¥¿¡¼ ÀÚ½ÅÀÌ ¼³¸íÇϰí ÀÖ´Â ¸ðµç ³»¿ëÀ» Loki¶ó´Â ¶óÀ̺귯¸®¿¡ Áý¾à½ÃÄÑ ³õ¾Ò½À´Ï´Ù. ¿©·¯ºÐÀº À¥ »ó¿¡¼ ÀÚÀ¯·Ó°Ô ÀÌ ¶óÀ̺귯¸®¸¦ ´Ù¿î·Îµå ¹ÞÀ¸½Ç ¼ö ÀÖÀ¸¸ç, ¾Æ¹«·± Á¦ÇÑ ¾øÀÌ À̰ÍÀ» »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. Áï, ¿©·¯ºÐÀº Çâ»óµÈ ½Ç·Â°ú ÇÔ²² Á¦³×¸¯ÇÑ ½ºÅ¸ÀÏ·Î ÀÀ¿ëÇÒ ¼ö ÀÖ´Â ¸Å¿ì °·ÂÇÑ ¶óÀ̺귯¸®¸¦ °¡Áö°Ô µÇ´Â °ÍÀÔ´Ï´Ù.
[°¨¼öÀÇ ±Û] {Modern C++ Design}Àº C++ÀÇ ÅÛÇø´ ±â´ÉÀ» »ç¿ëÇÏ¿© Àç»ç¿ë¼º°ú È¿À²¼ºÀ» µ¿½Ã¿¡ °®Ãá ÄÄÆ÷³ÍÆ®¸¦ ¼³°èÇϰí ÇÁ·Î±×·¡¹ÖÇÏ´Â ¹æ¹ýÀ» Á¤¸®ÇØ ³õÀº Ã¥À¸·Î¼, ÇÊÀÚ ÀÚ½ÅÀÌ °³¹ßÇÑ Loki¶ó´Â C++ ÇÁ·Î±×·¡¹Ö ÅøÀ» ¼³¸íÇÏ´Â ½ÄÀ¸·Î ÁøÇàµÇ¾î ÀÖ´Ù. °³ÀÎÀûÀ¸·Î C++ In Depth ½Ã¸®Áî·Î ³ª¿Â Ã¥ Áß¿¡ °¡Àå µ¶Æ¯ÇÏ°í °¨µ¿ÀûÀΠåÀ̶ó°í »ý°¢ÇÑ´Ù. C++ÀÇ ±â´ÉÀ» ÃÖ´ëÇÑ È°¿ëÇÑ ÄÄÆ÷³ÍÆ® Ŭ·¡½º ¼³°è, ÇÁ·Î±×·¡¹Ö Å×Å©´Ð, C++¿¡ ÃÖÀûÈÇÑ µðÀÚÀÎ ÆÐÅÏ Àû¿ë ¹æ¹ýÀÌ 500ÆäÀÌÁö¿¡ °ÉÃļ ±â¼úµÇ¾î ÀÖ´Ù. ÀÌ Ã¥À» º¸°í ÀÖ³ë¶ó¸é 'À̸¸ÇÏ¸é ³ªµµ¡¦'¶ó°í »ý°¢ÇØ ¿À¸ç ÀÚ±â È¥ÀÚ ¿ìÂáÇØ ÀÖ´ø ¸ð½ÀÀÌ ¼Ò¸®¾øÀÌ ÀÛ¾ÆÁö´Â °ÍÀ» ´À³¥ ¼ö ÀÖÀ» °ÍÀÌ´Ù. C++ÀÇ ¾ð¾îÀû Ư¡°ú ÅÛÇø´ ±â´É¿¡ ´ëÇÑ ÀúÀÚÀÇ ¿Ïº®ÇÑ ÀÌÇØ¸¦ ¹ÙÅÁÀ¸·Î Ç®¾î ÇìÃÄÁö´Â Áß¡¤°í³µµ Å×Å©´ÐÀ» Çѱ¹ÀÇ ¸¹Àº °³¹ßÀڵ鵵 Àü¼ö¹Þ±æ ¹Ù¶õ´Ù. ¿ø¼ÀÇ ÀÚ¼¼ÇÑ ¸®ºä´Â °¨¼öÀÚÀÇ È¨ÆäÀÌÁö(www.kwak101.pe.kr)¿¡¼ È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÇÑÆí, ÀÌ Ã¥ÀÇ Çѱ¹¾îÆÇ ÀÛ¾÷Àº "ºí·ç¹öµå ¸Þ½ÅÀú"·Î À¯¸íÇÑ ºí·ç¹öµå ¼ÒÇÁÆ®¿þ¾îÀÇ ÆÀÀåÀ¸·Î ÀÖ¾ú´ø À̱âÇü¾¾°¡ ¸Ã¾Æ Á̴ּÙ
½ÃÀÛºÎÅÍ ¿ø°íÀÇ ¿Ï¼ºµµ°¡ ¸Å¿ì ³ô°í ±ò²ûÇ߱⠶§¹®¿¡, µ¶ÀÚµé·ÎºÎÅÍ ÁÁÀº ¹ÝÀÀÀ» ¾òÀ¸¸®¶ó »ý°¢µÈ´Ù. |
|
|
 |
 |
"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++
|
|
|
 |
1.
<Á¤¿ÀÇ¥ ÆÄÀÏ[2003³â 12¿ù]>
Á¦³×¸¯ ÇÁ·Î±×·¡¹Ö°ú µðÀÚÀÎ ÆÐÅÏÀ» Àû¿ëÇÑ Modern C++ Design
¼ÀûÀÇ Á¤¿ÀÇ¥ ÆÄÀÏÀÔ´Ï´Ù.
÷ºÎÆÄÀÏ : 8054-517-ox.hwp 38KB
|
|
|