ÄÜÅÙÃ÷ »ó¼¼º¸±â
¸ð´ø C++ µðÀÚÀÎ ÆÐÅÏ


¸ð´ø C++ µðÀÚÀÎ ÆÐÅÏ

¸ð´ø C++ µðÀÚÀÎ ÆÐÅÏ

<µå¹ÌÆ®¸® ³×½ºÅÍ·è> Àú/<±Ç¿ÀÀÎ> ¿ª | ±æ¹þ

Ãâ°£ÀÏ
2019-05-10
ÆÄÀÏÆ÷¸Ë
ePub
¿ë·®
17 M
Áö¿ø±â±â
PC½º¸¶Æ®ÆùÅÂºí¸´PC
ÇöȲ
½Åû °Ç¼ö : 0 °Ç
°£·« ½Åû ¸Þ¼¼Áö
ÄÜÅÙÃ÷ ¼Ò°³
ÀúÀÚ ¼Ò°³
¸ñÂ÷
ÇÑÁÙ¼­Æò

ÄÜÅÙÃ÷ ¼Ò°³

»õ·Î¿î ±â´ÉÀ¸·Î dzºÎÇØÁø C++·Î ´Ù½Ã ¹è¿î´Ù

C++´Â C++11/14/17À» °ÅÄ¡¸é¼­ °­·ÂÇÑ ¾ð¾î·Î ¹ßÀüÇßÀ¸¸ç, Ç¥Çö·ÂÀÌ Ç³ºÎÇØÁ³´Ù. GoFÀÇ ÀüÅëÀûÀÎ µðÀÚÀÎ ÆÐÅÏÀ» Ç¥Çö·ÂÀÌ Ç³ºÎÇØÁø ¸ð´ø C++·Î »õ·Ó°Ô ÇнÀÇÑ´Ù. ¶ÇÇÑ, ¸ð´ø C++À» µðÀÚÀÎ ÆÐÅÏ¿¡ È°¿ëÇÏ´Â ¹æ¹ýÀ» ÅëÇØ ¸ð´ø C++À» ÀÀ¿ëÇÏ´Â ¹æ¹ýµµ ÇнÀÇÒ ¼ö ÀÖ´Ù.



°´Ã¼ ÁöÇâ ¼ÒÇÁÆ®¿þ¾î µðÀÚÀÎÀ» ÇнÀÇÑ´Ù

GoFÀÇ µðÀÚÀÎ ÆÐÅÏÀº ±âº»! °´Ã¼ ÁöÇâ ¼ÒÇÁÆ®¿þ¾îÀÇ µðÀÚÀÎ ¿øÄ¢Àº SOLID ¿øÄ¢, CRTP ÆÐÅÏ, Mixin »ó¼Ó, ¸ð³ªµå ÆÐÅÏÀ» ÇнÀÇϸ鼭 °´Ã¼ ÁöÇâ ¼ÒÇÁÆ®¿þ¾î µðÀÚÀÎÀÇ ±âº»À» ÇнÀÇÑ´Ù.



Á¡ÁøÀûÀÎ ¼³°è·Î ÆÐÅÏÀÇ Àå´ÜÁ¡À» »ìÇÉ´Ù

ÆÐÅÏÀÇ ±¸ÇöÀ» ´Ü¼øÈ÷ ³ª¿­ÇÏÁö ¾Ê¾Ò´Ù. °¢ ÆÐÅÏÀ» °£´ÜÇÏ°Ô ±¸ÇöÇغ¸°í ±â¼úÀû º¹Àâµµ¿¡ µû¶ó ÆÐÅÏÀ» ¹ßÀü½ÃÄÑ°¡¸é¼­ °¢ º¹Àâµµ ´Ü°è¿¡ µû¶ó ¹ß»ýÇÏ´Â Àå´ÜÁ¡À» ¸é¹ÐÇÏ°Ô ¼³¸íÇß´Ù.

ÀúÀÚ¼Ò°³

±ÝÀ¶ ºÐ¼®°¡(ÄöÆ®), ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚ, ±³À°/Àú¼ú°¡, ÄÜÆÛ·±½º ¿¬»çÀÌ´Ù. ¼ÒÇÁÆ®¿þ¾î °³¹ß°ú ´õºÒ¾î °è»ê, ±ÝÀ¶ ºÐ¼®, ¾Ë°í¸®Áò Æ®·¹À̵ùÀÇ ¸ð¹ü »ç·ÊµéÀ» ÅëÇÕÇÏ´Â µ¥ Àü¹®¼º°ú °ü½ÉÀ» °®°í ÀÖ´Ù. ±â¼úÀûÀ¸·Î´Â C# ¹× C++ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í CUDA, FPGA µîÀ» È°¿ëÇÑ °í¼º´É ÄÄÇ»Æÿ¡ °ü½ÉÀÌ ¸¹´Ù. ±×¸®°í 2009³âºÎÅÍ C# MVP·Î ¼±Á¤µÇ¾î È°µ¿ÇÏ°í ÀÖ´Ù.

¸ñÂ÷

1Àå °³¿ä

__1.1 »çÀü Áö½Ä

__1.2 Áß¿äÇÑ °³³ä

__1.3 SOLID µðÀÚÀÎ ¿øÄ¢





Á¦ I ºÎ »ý¼º ÆÐÅÏ

I.1 ÇÔ¼ö¿¡¼­ÀÇ °´Ã¼ ¸®ÅÏ



2Àå ºô´õ

__2.1 ½Ã³ª¸®¿À

__2.2 ´Ü¼øÇÑ ºô´õ

__2.3 È帧½Ä ºô´õ

__2.4 Àǵµ ¾Ë·ÁÁÖ±â

__2.5 ±×·çºñ-½ºÅ¸ÀÏ ºô´õ

__2.6 ÄÄÆ÷ÁöÆ® ºô´õ

__2.7 ¿ä¾à



3Àå ÆÑÅ͸®

__3.1 ½Ã³ª¸®¿À

__3.2 ÆÑÅ͸® ¸Þ¼­µå

__3.3 ÆÑÅ͸®

__3.4 ³»ºÎ ÆÑÅ͸®

__3.5 Ãß»ó ÆÑÅ͸®

__3.6 ÇÔ¼öÇü ÆÑÅ͸®

__3.7 ¿ä¾à



4Àå ÇÁ·ÎÅäŸÀÔ

__4.1 °´Ã¼ »ý¼º

__4.2 Æò¹üÇÑ Áߺ¹ ó¸®

__4.3 º¹Á¦ »ý¼ºÀÚ¸¦ ÅëÇÑ Áߺ¹ ó¸®

__4.4 Á÷·ÄÈ­(Serialization)

__4.5 ÇÁ·ÎÅäŸÀÔ ÆÑÅ͸®

__4.6 ¿ä¾à



5Àå ½Ì±ÛÅÏ(Singleton)

__5.1 Àü¿ª °´Ã¼·Î¼­ÀÇ ½Ì±ÛÅÏ

__5.2 ÀüÅëÀûÀÎ ±¸Çö

__5.2.1 ¸ÖƼ½º·¹µå ¾ÈÁ¤¼º

__5.3 ½Ì±ÛÅÏÀÇ ¹®Á¦

__5.4 ½Ì±ÛÅÏ°ú Á¦¾î ¿ªÀü(Inversion of Control)

__5.5 ¸ð³ë½ºÅ×ÀÌÆ®(Monostate)

__5.6 ¿ä¾à





Á¦ II ºÎ ±¸Á¶ ÆÐÅÏ

6Àå ¾î´ðÅÍ

__6.1 ½Ã³ª¸®¿À

__6.2 ¾î´ðÅÍ

__6.3 ÀϽÃÀû ¾î´ðÅÍ

__6.4 ¿ä¾à



7Àå ºê¸´Áö

__7.1 Pimpl °ü·Ê

__7.2 ºê¸´Áö

__7.3 ¿ä¾à



8Àå ÄÄÆ÷ÁöÆ®

__8.1 ¹è¿­¿¡ ±â¹ÝÇÑ ¼Ó¼º

__8.2 ±×·¡ÇÈ °´Ã¼ÀÇ ±×·çÇÎ

__8.3 ´º·² ³×Æ®¿öÅ©

__8.4 ¿ä¾à



9Àå µ¥Ä¿·¹ÀÌÅÍ

__9.1 ½Ã³ª¸®¿À

__9.2 µ¿Àû µ¥Ä¿·¹ÀÌÅÍ

__9.3 Á¤Àû µ¥Ä¿·¹ÀÌÅÍ

__9.4 ÇÔ¼öÇü µ¥Ä¿·¹ÀÌÅÍ

__9.5 ¿ä¾à



10Àå ÆÛ»çµå( )

__10.1 Å͹̳ÎÀº ¾î¶»°Ô µ¿ÀÛÇÒ±î?

__10.2 °í±Þ Å͹̳Î

__10.3 ÆÛ»çµå´Â ¾îµð¿¡ Àִ°¡?

__10.4 ¿ä¾à



11Àå ÇöóÀÌ¿þÀÌÆ®(Flyweight)

__11.1 »ç¿ëÀÚ À̸§

__11.2 Boost.Flyweight

__11.3 ¹®ÀÚ¿­ ¹üÀ§

__11.4 ¼²ºÎ¸¥ Á¢±Ù ¹æ¹ý

__11.5 ÇöóÀÌ¿þÀÌÆ®ÀÇ ±¸Çö

__11.6 ¿ä¾à



12Àå ÇÁ·Ï½Ã(Proxy)

__12.1 ½º¸¶Æ® Æ÷ÀÎÅÍ

__12.2 ¼Ó¼º ÇÁ·Ï½Ã

__12.3 °¡»ó ÇÁ·Ï½Ã

__12.4 Ä¿¹Â´ÏÄÉÀÌ¼Ç ÇÁ·Ï½Ã

__12.5 ¿ä¾à





Á¦ III ºÎ ÇàÅ ÆÐÅÏ

13Àå Ã¥ÀÓ »ç½½(Chain of Responsibility)

__13.1 ½Ã³ª¸®¿À

__13.2 Æ÷ÀÎÅÍ »ç½½

__13.3 ºê·ÎÄ¿ »ç½½

__13.4 ¿ä¾à



14Àå Ä¿¸Çµå

__14.1 ½Ã³ª¸®¿À

__14.2 Ä¿¸Çµå ÆÐÅÏÀÇ ±¸Çö

__14.3 µÇµ¹¸®±â(Undo) ÀÛ¾÷

__14.4 ÄÄÆ÷ÁöÆ® Ä¿¸Çµå

__14.5 ¸í·É°ú Á¶È¸ÀÇ ºÐ¸®

__14.6 ¿ä¾à



15Àå ÀÎÅÍÇÁ¸®ÅÍ

__15.1 »ê¼ú Ç¥Çö½ÄÀÇ °è»ê

__15.2 Boost.SpiritÀ» ÀÌ¿ëÇÑ ÆĽÌ

__15.3 ¿ä¾à



16Àå ¹Ýº¹ÀÚ(Iterator)

__16.1 Ç¥ÁØ ¶óÀ̺귯¸®ÀÇ ¹Ýº¹ÀÚ

__16.2 ÀÌÁø Æ®¸®ÀÇ Å½»ö

__16.3 ÄÚ·çƾ(Coroutine)À» ÀÌ¿ëÇÑ ¼øȸ

__16.4 ¿ä¾à



17Àå ¸Å°³ÀÚ(Mediator)

__17.1 äÆà ·ë

__17.2 ¸Å°³ÀÚ¿Í À̺¥Æ®

__17.3 ¿ä¾à



18Àå ¸Þ¸àÅä(Memento)

__18.1 ÀºÇà °èÁÂ

__18.2 Undo¿Í Redo

__18.3 ¿ä¾à



19Àå Null °´Ã¼

__19.1 ½Ã³ª¸®¿À

__19.2 Null °´Ã¼

__19.3 shared_ptr´Â Null °´Ã¼°¡ ¾Æ´Ï´Ù

__19.4 °³¼±µÈ µðÀÚÀÎ

__19.5 ¹¬½ÃÀûÀÎ Null °´Ã¼

__19.6 ¿ä¾à



20Àå °üÂûÀÚ(Observer)

__20.1 ¼Ó¼º °üÂûÀÚ

__20.2 Observer

__20.3 Observable

__20.4 °üÂûÀÚ(Observer)¿Í °üÂû ´ë»ó(Observable)ÀÇ ¿¬°á

__20.5 Á¾¼Ó¼º ¹®Á¦

__20.6 ¼ö½Å ÇØÁ¦¿Í ½º·¹µå ¾ÈÁ¤¼º

__20.7 ÀçÁøÀÔ¼º(Reentrancy)

__20.8 Boost.Signals2¸¦ ÀÌ¿ëÇÑ °üÂûÀÚ

__20.9 ¿ä¾à



21Àå »óÅÂ(State)

__21.1 »óÅ ±â¹Ý »óÅ ÀüÀÌ

__21.2 ¼öÀÛ¾÷À¸·Î ¸¸µå´Â »óÅ ¸Ó½Å

__21.3 Boost.MSMÀ» ÀÌ¿ëÇÑ »óÅ ¸Ó½Å

__21.4 ¿ä¾à



22Àå Àü·«

__22.1 µ¿Àû Àü·«

__22.2 Á¤Àû Àü·«

__22.3 ¿ä¾à



23Àå ÅÛÇø´ ¸Þ¼­µå

__23.1 °ÔÀÓ ½Ã¹Ä·¹À̼Ç

__23.2 ¿ä¾à



24Àå ¹æ¹®ÀÚ(Visitor)

__24.1 ħ½ÀÀû ¹æ¹®ÀÚ

__24.2 ¹ÝÃßÀû(reflective) Ãâ·Â

__24.3 µð½ºÆÐÄ¡(Dispatch)?

__24.4 ÀüÅëÀûÀÎ ¹æ¹®ÀÚ

__24.5 ºñ¼øȯ ¹æ¹®ÀÚ

__24.6 std::variant¿Í std::visit

__24.7 ¿ä¾à





Á¦ IV ºÎ ºÎ·Ï: ÇÔ¼öÇü µðÀÚÀÎ ÆÐÅÏ

25Àå ~¶ó¸é ¸ð³ªµå(Maybe Monad)