|
|
|
C++ Template Metaprogramming : Boost·ÎºÎÅÍ ¹è¿ì´Â °³³ä, µµ±¸, ±â¹ý
- ÀýÆÇ |
 |
|
¤ýÀú ÀÚ |
David Abrahams
, Aleksey Gurtovoy
|
¤ý¿ª ÀÚ |
·ù±¤
|
¤ý±¸ ºÐ |
¹ø¿ª¼
|
¤ý¹ßÇàÀÏ |
2005³â 06¿ù 25ÀÏ |
¤ýÁ¤ °¡ |
20,000¿ø |
¤ýÆäÀÌÁö |
406 ÆäÀÌÁö |
¤ýISBN |
89-5674-267-7 |
¤ý³À̵µ |
Áß±Þ.»ó±Þ |
¤ýÃâÆÇ»ç |
Á¤º¸¹®È»ç |
|
|
|
|
|
|
|
 |
 |
ÀÌ Ã¥Àº ¿À´Ã³¯ C++ÀÇ °¡Àå °·ÂÇÑ °ü¿ë±¸µéÀ» Á¶¸íÇÑ´Ù. Çö¾÷ ÇÁ·Î±×·¡¸ÓµéÀÌ ¿À·§µ¿¾È ±â´Ù·Á¿Â, ½Ç¿ëÀûÀÎ ¸ÞŸÇÁ·Î±×·¡¹Ö ¼ö´Ü°ú ±â¹ýÀ» ¾Ë·ÁÁִ åÀÌ´Ù.
¸ÞŸÇÁ·Î±×·¥Àº ÇÁ·Î±×·¥ Äڵ带 »ý¼ºÇϰųª Á¶ÀÛÇÏ´Â ÇÁ·Î±×·¥À» ¸»ÇÑ´Ù. ÀϹÝÀû ÇÁ·Î±×·¡¹Ö¿¡ C++¿¡ µµÀÔµÈ ÈÄ, ÇÁ·Î±×·¡¸ÓµéÀº ÄÄÆÄÀÏ µµÁß¿¡ ÇÁ·Î±×·¥À» Á¶ÀÛÇϱâ À§ÇÑ, º»ÁúÀûÀ¸·Î´Â ÇÁ·Î±×·¥°ú ¸ÞŸÇÁ·Î±×·¥ »çÀÌÀÇ À庮À» ¾ø¾Ö´Â ´Ù¾çÇÑ "ÅÛÇø´ Æ®¸¯"µéÀ» ¹ß°ßÇß´Ù. ±×·¯ÇÑ ´É·Â¿¡ ´ëÇÑ C++ Àü¹®°¡µéÀÇ ÈïºÐÀÌ °øµ¿Ã¼ÀÇ °ü½ÉÀ» ²ø±ä ÇßÁö¸¸, ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¸Óµé¿¡°Ô ±×·± ±â¹ýÀÇ ½ÇÁúÀûÀÎ Àû¿ëÀº ¿©ÀüÈ÷ ¸Õ ³ª¶óÀÇ ÀÏÀ̾ú´Ù. ÀÌ Ã¥Àº ¸ÞŸÇÁ·Î±×·¡¹ÖÀÌ ¹«¾ùÀÌ¸ç ¾î¶² °÷¿¡ »ç¿ëÇÒ ¶§ °¡Àå ºûÀ» ¹ßÇÏ´ÂÁö¿¡ ´ëÇØ À̾߱âÇϸç, ÅÛÇø´ ¸ÞŸÇÁ·Î±×·¡¹ÖÀ» µ¶ÀÚÀÇ ½ÇÁ¦ ¾÷¹«¿¡ È¿°úÀûÀ¸·Î »ç¿ëÇÏ·Á ÇÒ ¶§ ÇÊ¿äÇÑ Åä´ë¸¦ Á¦°øÇÑ´Ù.
ÀÌ Ã¥Àº Ç¥ÁØ ÅÛÇø´ ¶óÀ̺귯¸®(STL)ÀÇ °ü¿ë±¸µé¿¡ Àͼ÷ÇÑ ¸ðµç ÇÁ·Î±×·¡¸ÓµéÀ» ´ë»óÀ¸·Î ÇÑ´Ù. ¼÷·ÃµÈ C++ ÇÁ·Î±×·¡¸Ó¶ó¸é, ÀÚ½ÅÀÇ ±âÁ¸ ÀÛ¾÷¿¡ ´ëÇÑ »õ·Î¿î ÅëÂûÀ» ¾ò°í ¸ÞŸÇÁ·Î±×·¡¹Ö ¿µ¿ª¿¡¼ »õ·Î¿î ¾î¹ý°ú Ç¥Çö¹ýÀ» ¹è¿ì°Ô µÉ °ÍÀÌ´Ù. °í±Þ ÅÛÇø´ ±â¹ý ¸î °¡Áö¸¦ ÀÍÈ÷°í ÀÖ´Â Áß°£ ¼öÁØÀÇ ÇÁ·Î±×·¡¸Ó¶ó¸é C++ ÇÁ·Î±×·¡¹ÖÀÇ ÀüüÀûÀÎ »ó¿¡¼ ¸ÞŸÇÁ·Î±×·¡¹Ö ±â¹ýÀÌ ¾îµð¿¡ ¾î¶»°Ô À§Ä¡ÇÏ´ÂÁö ¾Ë°Ô µÉ °ÍÀ̸ç, ±×·± ±â¹ýÀ» ü°èÀûÀ¸·Î »ç¿ëÇϱâ À§ÇÑ °³³äÀûÀÎ Åä´ëµµ ¾ò°Ô µÉ °ÍÀÌ´Ù. ¸ÞŸÇÁ·Î±×·¡¹ÖÀ̶ó´Â ¸»À» µé¾îº¸±â´Â ÇßÁö¸¸ ¿©ÀüÈ÷ ½Åºñ½º·´°Ô ´À³¢´Â ÇÁ·Î±×·¡¸Ó¶ó¸é ¸ÞŸÇÁ·Î±×·¡¹ÖÀ» ¾ðÁ¦, ¾î¶»°Ô, ¿Ö »ç¿ëÇØ¾ß ÇÏ´ÂÁö¸¦ ¸íÈ®È÷ ÀÌÇØÇÏ°Ô µÉ °ÍÀÌ´Ù. ±×¸®°í, ¸ðµç µ¶ÀÚ´Â ¹ÌÁõÀ¯ÀÇ À§·ÂÀ» °¡Áø µµ±¸, Áï Boost Meta Programming ¶óÀ̺귯¸®¸¦ ÀÚÀ¯ÀÚÀç·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ´É·ÂÀ» °¡Áö°Ô µÉ °ÍÀÌ´Ù.
³ª ¿ª½Ã ±×·¨Áö¸¸, ´Ù¸¥ »ç¶÷ÀÇ ÅÛÇø´ ¸ÞŸÇÁ·Î±×·¡¹Ö(TMP)À» º¸°í ¸Å·áµÇ¾î¼ ¹è¿öº¸·Á°í ÇßÀ¸³ª ¸¶¶¥ÇÑ Ã¥À̳ª °·ÂÇÑ µµ±¸°¡ ¾ø¾î¼ ½Ç¸ÁÇÑ °æÇèÀ» °¡Áø µ¶ÀÚµµ ÀÖÀ» °ÍÀÌ´Ù. ±×·± ¸ðµç »ç¶÷µéÀÌ ±â´Ù·È´ø Ã¥ÀÌ ¹Ù·Î ÀÌ Ã¥ÀÌ´Ù. ÀúÀÚ David¿Í Alesky´Â TMP°¡ ÀÌ·ÐÀûÀÎ À¯Èñ°¡ ¾Æ´Ñ ½ÇÁ¦ ¾÷¹«ÀÇ °·ÂÇÑ ¼ö´ÜÀÓÀ» º¸¿©ÁØ´Ù. ÈǸ¢ÇÑ Boost Metaprogramming ¶óÀ̺귯¸®¸¦ µµ±¸·Î ÇØ¼ Àб⠽¬¿î ¹®Àå°ú ½ÇÁ¦ÀûÀÎ ¿¹Á¦µéÀ» Á¦°øÇÏ´Â ÀÌ Ã¥À» ÅëÇØ, "ÄÄÆÄÀÏ ½ÃÁ¡ STL"ÀÌ ½ÇÇà½ÃÁ¡ STL¸¸ÅÀ̳ª À¯´ÉÇÏ´Ù´Â »ç½ÇÀ» ¾Ë ¼ö ÀÖ°Ô µÉ °ÍÀÌ´Ù. ÈǸ¢ÇÑ Æ©Å丮¾óÀÌÀÚ, Àü¹®°¡¿¡°Ô´Â °£ÆíÇÑ ÇÚµåºÏÀ¸·Îµµ ¾²ÀÏ ¼ö ÀÖ´Â ÀÌ Ã¥À̾߸»·Î ¹Ù·Î ¿ì¸®°¡ ±â´Ù·Á¿Â C++ ÅÛÇø´ ¸ÞŸÇÁ·Î±×·¡¹Ö Ã¥ÀÌ´Ù. ¡ª Chuck Allison, The C++ Source ÆíÁýÀÚ
¡ß ºÎ·Ï CD¿¡´Â ¸ðµç Boost Metaprogramming ¶óÀ̺귯¸®¸¦ ºñ·ÔÇÑ ¸ðµç Boost C++ ¶óÀ̺귯¸®µé°ú ±× Âü°í ¹®¼, ±×¸®°í Ã¥ÀÇ ¿¹Á¦ ÄÚµå¿Í ´Ù¾çÇÑ º¸Á¶ ÀÚ·á°¡ ¼ö·ÏµÇ¾î ÀÖ´Ù.
[ÀúÀÚ ¼Ò°³] David Abrahams´Â Boost C++ ¶óÀ̺귯¸® °³¹ß ±×·ìÀÇ Ã¢¸³ ¸â¹öÀÌÀÚ ÁßÀçÀÚÀÌ´Ù. Dave´Â 1996³âºÎÅÍ ANSI/ISO C++ À§¿øÈ¸ÀÇ ÀÏ¿øÀ¸·Î Ȱµ¿Çϰí ÀÖÀ¸¸ç, C++ ¶óÀ̺귯¸®ÀÇ ¿¹¿Ü 󸮿¡ ´ëÇÑ ÀÌ·Ð, ¸í¼¼, ±¸Çö¿¡ ±â¿©ÇÑ °ÍÀ¸·Î °¡Àå Àß ¾Ë·ÁÁ® ÀÖ´Ù. ±×ÀÇ È¸»ç Boost ConsultingÀº Boost °ü·Ã Áö¿ø°ú °³¹ß ¼ºñ½º, ±×¸®°í ¼ÒÇÁÆ®¿þ¾î ±¸Ãà ºÐ¾ßÀÇ Àü¹®°¡ ±³À° ¼ºñ½º¸¦ Á¦°øÇÑ´Ù.
Aleksey Gurtovoy´Â MetaCommunicationÀÇ ±â¼ú ¼±ÀÓÀÌÀÚ, Boost C++ °øµ¿Ã¼¿¡ ±â¿©ÇÏ´Â ÀÏ¿øÀÌ´Ù. Aleksey´Â ¶ÇÇÑ Boost Metaprogramming ¶óÀ̺귯¸®ÀÇ ¿ø ÀÛ¼ºÀÚÀ̱⵵ ÇÏ´Ù. 1993³âºÎÅÍ C++À» »ç¿ëÇØ ¿Â ±×´Â, Krasnoyarsk Technical State University, Russia¿¡¼ Àü»êÇÐ ¼®»ç ÇÐÀ§¸¦ ¹Þ¾Ò´Ù. |
|
 |
 |
ÅÛÇø´ ¸ÞŸÇÁ·Î±×·¡¹ÖÀº C++ÀÇ ÀÀ¿ë ¹æ¹ý Áß ºñ±³Àû ÃÖ±Ù¿¡ ¹ß°ßµÈ °ÍÀθ¸Å, ¸¹Àº C++ ÇÁ·Î±×·¡¸Óµé¿¡°Ô ¾ÆÁ÷µµ »ý¼ÒÇÑ ºÐ¾ß¶ó°í ÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù. Àú´Â [Game Programming Gems] 1±ÇÀÇ "ÅÛÇø´ ¸ÞŸÇÁ·Î±×·¡¹ÖÀ» ÀÌ¿ëÇÑ ºü¸¥ ¼öÇÐ ¿¬»ê"À» ¹ø¿ªÇÏ¸é¼ ÅÛÇø´ ¸ÞŸÇÁ·Î±×·¡¹Ö¿¡ °ü½ÉÀ» °¡Áö°Ô µÇ¾ú½À´Ï´Ù. ÀÌÈÄ Á¶±Ý¾¿ °øºÎ¸¦ ÇØ³ª°¡´Ù, AlexandrescuÀÇ [Modern C++ Design]À» ÀÐÀ¸¸é¼ ¿ÀÈ÷·Á °ÌÀ» ¸Ô¾ú½À´Ï´Ù. ÅÛÇø´ ¸ÞŸÇÁ·Î±×·¡¹ÖÀÌ ¸ÚÁö±ä ÇÏÁö¸¸ º¸Åë »ç¶÷Àº Á¢±ÙÇÒ ¼ö ¾ø´Â ½ÅºñÀÇ ¿µ¿ªÀÌ ¾Æ´Ò±îÇÏ´Â »ý°¢ÀÌ µé¾ú´ø °ÍÀÔ´Ï´Ù.
±×·± »óȲ¿¡¼ Á¶±ÝÀº ¹þ¾î³ª°Ô µÈ °è±â´Â, LuaBind ¶ó´Â ÇÑ Lua-C/C++ ¹ÙÀεù ¶óÀ̺귯¸®ÀÇ ´ÙÀ½°ú °°Àº ¸ÚÁø ±¸¹®À» Á¢ÇÏ°Ô µÈ °ÍÀ̾ú½À´Ï´Ù.
module(L) [ def("f", &f), def("g", &g), class_("A") .def(construcor), def("h", &h) ];
ÇÔ¼ö f, g, h¿Í int µÎ °³¸¦ ¹Þ´Â »ý¼ºÀÚ¸¦ °¡Áø Ŭ·¡½º A¸¦ ·ç¾Æ¿¡ µî·ÏÇÏ´Â C++ Äڵ带 ÀÌ·¸°Ô °£´ÜÇÏ°í °£°áÇÏ°Ô ÀÛ¼ºÇÒ ¼ö ÀÖ°Ô ¸¸µå´Â °ÍÀÌ ¹Ù·Î ÅÛÇø´ ¸ÞŸÇÁ·Î±×·¡¹ÖÀ̶ó¸é, ¾î·Æ´õ¶óµµ ¹è¿öº¼ ¸¸ÇÑ °ÍÀÌ ¾Æ´Ò±îÇÏ´Â »ý°¢À» °¡Áö°Ô µÇ¾ú½À´Ï´Ù.
C++ ÅÛÇø´ ÀÚü¿¡ ´ëÇÑ Ã¥À̳ª ÀÎÅͳݿ¡ ÀÖ´Â ¸î °¡Áö ÀڷḸÀ¸·Î´Â ¼ºÀÌ Â÷Áö ¾Ê¾Ò´ø Â÷¿¡, C++ ÅÛÇø´ ¸ÞŸÇÁ·Î±×·¡¹ÖÀÇ Ç¥ÁØÀûÀÎ ¼ö´ÜÀ̶ó°í ÇÒ ¼ö ÀÖ´Â Boost MPLÀÇ ÇÙ½É °³¹ßÀÚµéÀÌ °øÀ» µé¿© ¾´ ÀÌ Ã¥À» ¹ø¿ªÇÏ°Ô µÈ °ÍÀº Á¦°Ô Çà¿îÀÌ ¾Æ´Ò ¼ö ¾ø½À´Ï´Ù. Ç×»ó ±×·¸µíÀÌ Á» ´õ ½Ã°£À» µé¿©¼ ¹ø¿ªÀ» ÇÒ ¼ö ÀÖ¾ú´Ù¸é ÁÁ¾ÒÀ» °Å¶ó´Â ÈÄȸ´Â ³²¾Æ ÀÖÁö¸¸, ±×·¡µµ ´Ü¼øÈ÷ ¹®ÀåÀ» ¿Å±â´Â »ç¶÷ÀÌ ¾Æ´Ï¶ó ½ÇÁ¦·Î ÀÌ Ã¥À» °¡Áö°í °øºÎ¸¦ ÇÏ´Â »ç¶÷ÀÇ ÀÔÀå¿¡¼ ¹ø¿ªÀ» ÇÒ ¼ö ÀÖ¾î¼ ´ÙÇàÀ̶ó°í »ý°¢ÇÕ´Ï´Ù.
Modern C++¸¸ÅÀº ¾Æ´ÏÁö¸¸, ºÐ¾ß°¡ ºÐ¾ßÀθ¸Å ÀÌ Ã¥Àº Á» ¾î·Á¿î ÆíÀÔ´Ï´Ù(¹°·Ð ºÎÁ·ÇÑ ¹ø¿ª Å¿µµ ÀÖ°Ú½À´Ï´Ù). ¾Õ¿¡¼ LuaBind¸¦ ¾ð±ÞÇߴµ¥, µ¶ÀÚ ¿©·¯ºÐµµ ±×¿Í ºñ½ÁÇÑ °è±â³ª ¸ñÇ¥¸¦ °¡Áø´Ù¸é Áß°£¿¡ Æ÷±âÇÏÁö ¾Ê°í °è¼Ó ³ª¾Æ°¥ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. LuaBind ¿¹Á¦¿¡ °¨¸íÀ» ¸øÇß´Ù°í ÇØµµ °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾øÀ» °ÍÀÔ´Ï´Ù. 1Àå¿¡¼ 3Àå±îÁö¿¡ Èï¹Ì·Î¿î ¿¹Á¦µéÀÌ ¸¹ÀÌ ÀÖÀ¸´Ï±î¿ä. Ȥ½Ã ±× ¿¹Á¦µé¿¡¼µµ ¹º°¡ °¨À» ¹ÞÁö ¸øÇß´Ù¸é 11ÀåÀ» ¸ÕÀú Àо½Ã±æ ±ÇÇÕ´Ï´Ù. FSMÀ̶ó¸é ´ç¿¬È÷ ÀÚ·á ÁÖµµÀû(data-driven) Á¢±ÙÀÌ Á¤¼®À̶ó°í »ý°¢Çϰųª ±³¹¦ÇÑ ¸ÅÅ©·Î¿¡ ÀÇÁ¸Çß´ø ºÐµé¿¡°Ô´Â ¾î´À Á¤µµ Ãæ°ÝÀûÀ̱â±îÁö ÇÒ °ÍÀÔ´Ï´Ù.
±×¸®°í Ã¥ÀÇ »ó´ç ºÎºÐÀÌ MPLÀ» À̾߱âÇϴµ¥, MPLÀ» ÀÌÇØÇÏ´Â µ¥¿¡´Â STL¿¡ ´ëÇÑ ÁÁÀº Ã¥À» ÇÑ ±Ç Àо´Â °Íµµ µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù. °³º° ÄÁÅ×À̳Ê, ¾Ë°í¸®ÁòÀÇ È°¿ë¹ý¸¸ ´Ù·ç´Â Ã¥º¸´Ù´Â °³³ä, ¸ðÇü, Á¤·Ã, ¼øÂ÷¿, ¿ä±¸»çÇ×, ÀüÁ¦Á¶°Ç µî STLÀÌ ±Ù°ÅÇÏ´Â °³³äÀûÀÎ ÇÁ·¹ÀÓ¿÷µµ Ãæ½ÇÇÏ°Ô ¼³¸íÇϴ åÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù. MPLÀº ±×·¯ÇÑ STLÀÇ ÇÁ·¹ÀÓ¿÷À» ¸¹ÀÌ ¹Ý¿µÇϰí Àֱ⠶§¹®ÀÔ´Ï´Ù. ±×·± STL Ã¥À¸·Î´Â Matthew H. AusternÀÇ [Generic Programming and the STL]ÀÌ ÀÖ½À´Ï´Ù. ¹ø¿ª¼µµ °ð ³ª¿Ã °ÍÀÔ´Ï´Ù.
¹°·Ð, C++ ÅÛÇø´ ÀÚü¿¡ ´ëÇÑ ¾î´À Á¤µµ ÀÚ¼¼ÇÑ Áö½ÄÀº ¹Ýµå½Ã °¡Áö°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ±× ºÎºÐ¿¡ ´ëÇØ¼´Â Bjarne StroustrupÀÇ [The C++ Programming Language]¿Í ÇÔ²² Vandevoorde ¹× JosuttisÀÇ [C++ Templates]¶ó´Â Ã¥À» ²Å´Â ºÐµéÀÌ ¸¹À» °ÍÀÔ´Ï´Ù. µÎ ±Ç ¸ðµÎ ¹ø¿ª¼¸¦ ±¸ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
Âü°í·Î, ÀÌ Ã¥Àº ¿ø¼ÀÇ 2004³â 12¿ù Á¦2¼â¸¦ ±âÁØÀ¸·Î ¹ø¿ªÇßÀ¸¸ç 2005³â 5¿ù 2ÀÏÀÚ ¿ø¼ Á¤¿ÀÇ¥ ¸¦ ¹Ý¿µÇß½À´Ï´Ù. Ç×»ó ±×·¸µíÀÌ Á¦ ȨÆäÀÌÁö occam's Razor ¿¡ ÀÌ Ã¥¿¡ ´ëÇÑ Ãß°¡ÀûÀÎ Á¤¿ÀÇ¥¿Í »õ·Î °»½ÅµÈ ³»¿ëÀ» ´ãÀº ÆäÀÌÁö¸¦ ¸¶·ÃÇØ µÎ°Ú½À´Ï´Ù. ¿À·ù º¸°í³ª Ã¥¿¡ ´ëÇÑ Àǰߵµ ȯ¿µÇÕ´Ï´Ù. |
|
 |
 |
¸ðµç Boost Metaprogramming ¶óÀ̺귯¸®¸¦ ºñ·ÔÇÑ ¸ðµç Boost 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++
|
|
|
 |
|
|