±¹³»µµ¼
Àü°øµµ¼/´ëÇб³Àç
°øÇаè¿
ÄÄÇ»ÅÍ°øÇÐ
Á¤°¡ |
28,000¿ø |
---|
25,200¿ø (10%ÇÒÀÎ)
1,400P (5%Àû¸³)
ÇÒÀÎÇýÅÃ | |
---|---|
Àû¸³ÇýÅà |
|
|
|
Ãß°¡ÇýÅÃ |
|
À̺¥Æ®/±âȹÀü
¿¬°üµµ¼
»óÇ°±Ç
ÀÌ»óÇ°ÀÇ ºÐ·ù
Ã¥¼Ò°³
ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö(functional programming)Àº ÇÁ·Î±×·¥ »óÅ¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â ÇÔ¼öµéÀ» °Á¶ÇÏ´Â ¼ÒÇÁÆ®¿þ¾î °³¹ß ½ºÅ¸ÀÏÀÌ´Ù. [½ºÄ®¶ó·Î ¹è¿ì´Â ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö]Àº ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» ¹è¿ì°í ÀÏ»óÀûÀÎ ÄÚµù ¾÷¹«¿¡ Àû¿ëÇÏ°íÀÚ ÇÏ´Â ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ ÀÏ·ÃÀÇ Æ©Å丮¾ó·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÀÌ Ã¥Àº ³í¸®ÀûÀÌ°í °£°áÇÏ¸ç ¸íÈ®ÇÑ ´Ü°è¸¦ °ÅÃÄ ±âº» ±â¹ý¿¡¼ °í±Þ ÁÖÁ¦·Î ³ª¾Æ°£´Ù. ¶ÇÇÑ, ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀÇ ¼¼°è¸¦ ¿¾îÁÖ´Â ±¸Ã¼ÀûÀÎ ¿¹Á¦¿Í ¿¬½À¹®Á¦¸¦ Á¦°øÇÑ´Ù.
ÃâÆÇ»ç ¼Æò
¡°ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ Á¢±Ù¹æ½ÄÀÌ, °á±¹Àº ¾Æ¸§´Ù¿î ÄÚµå¿Í °è»êÀÇ º»Áú¿¡ ´ëÇÑ ±íÀº ÅëÂû·Îµµ À̾îÁüÀ» º¸¿©Áִ å!¡±
_½ºÄ®¶óÀÇ Ã¢½ÃÀÚ ¸¶Æ¾ ¿À´õ½ºÅ°(Martin Odersky) Ãßõ»ç Áß¿¡¼
ÇÔ¼öÀû ¼³°è¿¡ ´ëÇÑ ¿µ°¨À» ºÒ¾î³Ö´Â ¿Ïº®ÇÑ Æ©Å丮¾ó!
ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö(functional programming)Àº ÇÁ·Î±×·¥ »óÅ¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â ÇÔ¼öµéÀ» °Á¶ÇÏ´Â ¼ÒÇÁÆ®¿þ¾î °³¹ß ½ºÅ¸ÀÏÀÌ´Ù. ÇÔ¼öÀû ÄÚµå´Â ±×·¸Áö ¾ÊÀº Äڵ忡 ºñÇØ °Ë»ç¿Í Àç»ç¿ëÀÌ ½±°í, º´·ÄÈ°¡ °£´ÜÇϸç, ¹ö±×¸¦ ¸¸µé ¿©Áöµµ Àû´Ù. ½ºÄ®¶ó´Â ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» Àß Áö¿øÇÏ´Â ½ÅÈï JVM ¾ð¾îÀÌ´Ù. ½ºÄ®¶ó´Â Java ¾ð¾î¿Í ¹®¹ýÀÌ ºñ½ÁÇÏ°í Java ÄÚµå¿Í Åõ¸íÇÏ°Ô ¿¬µ¿µÇ±â ¶§¹®¿¡ ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» óÀ½ ¹è¿ì±â¿¡ ¾ÆÁÖ ÀûÇÕÇÏ´Ù.
ÀÌ Ã¥Àº ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» ¹è¿ì°í ÀÏ»óÀûÀÎ ÄÚµù ¾÷¹«¿¡ Àû¿ëÇÏ°íÀÚ ÇÏ´Â ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ ÀÏ·ÃÀÇ Æ©Å丮¾ó·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÀÌ Ã¥Àº ³í¸®ÀûÀÌ°í °£°áÇÏ¸ç ¸íÈ®ÇÑ ´Ü°è¸¦ °ÅÃÄ ±âº» ±â¹ý¿¡¼ °í±Þ ÁÖÁ¦·Î ³ª¾Æ°£´Ù. ¶ÇÇÑ, ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀÇ ¼¼°è¸¦ ¿¾îÁÖ´Â ±¸Ã¼ÀûÀÎ ¿¹Á¦¿Í ¿¬½À¹®Á¦¸¦ Á¦°øÇÑ´Ù.
ÀÌ Ã¥ÀÇ ÁÖ¿ä ³»¿ë
¡á ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀÇ ±âº» °³³ä°ú ÀÀ¿ë ±â¹ý
¡á ½ºÄ®¶ó ¹®¹ý ±âÃÊ
¡á ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» ÀÌ¿ëÇÑ º´·Ä ÇÁ·Î±×·¥ ÀÛ¼º
¡á µ¶ÀÚÀÇ ÀÌÇØ Á¤µµ¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Â ¿¬½À¹®Á¦µé
ÀÌ Ã¥Àº ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» ÀüÇô ¸ð¸£´Â µ¶ÀÚµµ ÀÐÀ» ¼ö ÀÖÁö¸¸, ½ºÄ®¶ó¿Í Java¿¡ ´ëÇÑ »çÀü Áö½ÄÀÌ ÀÖ´Ù¸é µµ¿òÀÌ µÈ´Ù.
̵̧ȍ
¡°½ºÄ®¶ó¿Í Java 8 °³¹ßÀÚ¸¦ À§ÇÑ ±Ã±ØÀÇ ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö Áöħ¼!¡±
- TekSystemsÀÇ Àª¸®¾ö E. ÈÙ·¯
¡°½ºÄ®¶ó¸¦ ¡®´õ ³ªÀº Java¡¯ ÀÌ»óÀÇ °ÍÀ¸·Î ²ø¾î¿Ã¸®´Â Á¢±Ù¹æ½Ä°ú »ç°í¹æ½ÄÀ» º¸¿©ÁØ´Ù.¡±
- Æ丣³µµ µµºí¶óµ¥½º(Fernando Dobladez), Code54
¡°ÄÚµù ¿¬½À¹®Á¦´Â ÀÇ¿åÀ» µ¸¿ì°í, Àç¹ÌÀÖÀ¸¸ç, ½ÇÁ¦ ÀÀ¿ëÀ» À§ÇÑ Á¤º¸µµ Á¦°øÇÑ´Ù.¡±
- Å©¸®½º ³ë·Î½º(Chris Nauroth), Hortonwrokd
¡°±×³É Àд °ÍÀÌ ¾Æ´Ï¶ó ½Ç½ÀÇÏ¸é¼ ¹è¿î´Ù.¡±
- ´õ±Û·¯½º ¾Ù·±(Douglas Alan), ÇϹöµå¡¤MIT ¿¤¸® & ¿¡µð½º L. ºê·Îµå ¿¬±¸¼Ò
¸ñÂ÷
Á¦1ºÎ ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö ÀÔ¹®
1Àå ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ̶õ ¹«¾ùÀΰ¡? 3
1.1 FPÀÇ ÀÌÁ¡: °£´ÜÇÑ ¿¹Á¦ Çϳª 4
1.1.1 ºÎ¼ö È¿°ú°¡ ÀÖ´Â ÇÁ·Î±×·¥ 4
1.1.2 ÇÔ¼öÀû Çعý: ºÎ¼ö È¿°úÀÇ Á¦°Å 7
1.2 (¼ø¼ö)ÇÔ¼ö¶õ ±¸Ã¼ÀûÀ¸·Î ¹«¾ùÀΰ¡? 11
1.3 ÂüÁ¶ Åõ¸í¼º, ¼ø¼ö¼º, ±×¸®°í ġȯ ¸ðÇü 12
1.4 ¿ä¾à 16
2Àå ½ºÄ®¶ó·Î ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö ½ÃÀÛÇϱâ 17
2.1 ½ºÄ®¶ó ¾ð¾îÀÇ ¼Ò°³: ¿¹Á¦ Çϳª 18
2.2 ÇÁ·Î±×·¥ÀÇ ½ÇÇà 21
2.3 ¸ðµâ, °´Ã¼, À̸§°ø°£ 23
2.4 °íÂ÷ ÇÔ¼ö: ÇÔ¼ö¸¦ ÇÔ¼ö¿¡ Àü´Þ 25
2.4.1 Àá±ñ °ç°¡Áö: ÇÔ¼öÀûÀ¸·Î ·çÇÁ ÀÛ¼ºÇϱâ 25
2.4.2 ù ¹ø° °íÂ÷ ÇÔ¼ö ÀÛ¼º 27
2.5 ´ÙÇüÀû ÇÔ¼ö: Çü½Ä¿¡ ´ëÇÑ Ãß»ó 29
2.5.1 ´ÙÇüÀû ÇÔ¼öÀÇ ¿¹ 29
2.5.2 À͸í ÇÔ¼ö·Î °íÂ÷ ÇÔ¼ö È£Ãâ 31
2.6 Çü½Ä¿¡¼ µµÃâµÈ ±¸Çö 32
2.7 ¿ä¾à 36
3Àå ÇÔ¼öÀû ÀڷᱸÁ¶ 37
3.1 ÇÔ¼öÀû ÀڷᱸÁ¶ÀÇ Á¤ÀÇ 37
3.2 ÆÐÅÏ ºÎÇÕ 41
3.3 ÇÔ¼öÀû ÀڷᱸÁ¶ÀÇ ÀÚ·á °øÀ¯ 44
3.3.1 ÀÚ·á °øÀ¯ÀÇ È¿À²¼º 46
3.3.2 °íÂ÷ ÇÔ¼ö¸¦ À§ÇÑ Çü½Ä Ãß·Ð °³¼± 47
3.4 ¸ñ·Ï¿¡ ´ëÇÑ Àç±Í¿Í °íÂ÷ ÇÔ¼ö·ÎÀÇ ÀϹÝÈ 49
3.4.1 ±× ¿ÜÀÇ ¸ñ·Ï Á¶ÀÛ ÇÔ¼öµé 52
3.4.2 ´Ü¼ø ±¸¼º¿ä¼Òµé·Î ¸ñ·Ï ÇÔ¼ö¸¦ Á¶¸³ÇÒ ¶§ÀÇ È¿À²¼º ¼Õ½Ç 55
3.5 Æ®¸® 56
3.6 ¿ä¾à 58
4Àå ¿¹¿Ü¸¦ ÀÌ¿ëÇÏÁö ¾ÊÀº ¿À·ù ó¸® 59
4.1 ¿¹¿ÜÀÇ Àå´ÜÁ¡ 60
4.2 ¿¹¿ÜÀÇ °¡´ÉÇÑ ´ë¾Èµé 62
4.3 Option ÀÚ·á Çü½Ä 64
4.3.1 OptionÀÇ »ç¿ë ÆÐÅÏ 65
4.3.2 ¿¹¿Ü ÁöÇâÀû APIÀÇ Option ÇÕ¼º°ú ½Â±Þ, °¨½Î±â 70
4.4 Either ÀÚ·á Çü½Ä 75
4.5 ¿ä¾à 78
5Àå ¾ö°Ý¼º°ú ³ªÅ¼º 81
5.1 ¾ö°ÝÇÑ ÇÔ¼ö¿Í ¾ö°ÝÇÏÁö ¾ÊÀº ÇÔ¼ö 83
5.2 È®Àå ¿¹Á¦: °ÔÀ¸¸¥ ¸ñ·Ï 86
5.2.1 ½ºÆ®¸²ÀÇ ¸Þ¸ðȸ¦ ÅëÇÑ Àç°è»ê ÇÇÇϱâ 87
5.2.2 ½ºÆ®¸²ÀÇ Á¶»ç¸¦ À§ÇÑ º¸Á¶ ÇÔ¼öµé 88
5.3 ÇÁ·Î±×·¥ ¼¼ú°ú Æò°¡ÀÇ ºÐ¸® 89
5.4 ¹«ÇÑ ½ºÆ®¸²°ú °øÀç±Í 93
5.5 ¿ä¾à 98
6Àå ¼ø¼ö ÇÔ¼öÀû »óÅÂ 99
6.1 ºÎ¼ö È¿°ú¸¦ ÀÌ¿ëÇÑ ³¼ö ¹ß»ý 99
6.2 ¼ø¼ö ÇÔ¼öÀû ³¼ö ¹ß»ý 101
6.3 »óÅ ÀÖ´Â API¸¦ ¼ø¼öÇÏ°Ô ¸¸µé±â 103
6.4 »óÅ µ¿ÀÛÀ» À§ÇÑ ´õ ³ªÀº API 106
6.4.1 »óÅ µ¿ÀÛµéÀÇ Á¶ÇÕ 108
6.4.2 ³»Æ÷µÈ »óÅ µ¿ÀÛ 109
6.5 ÀϹÝÀû »óÅ µ¿ÀÛ ÀÚ·á Çü½Ä 111
6.6 ¼ø¼ö ÇÔ¼öÀû ¸í·É½Ä ÇÁ·Î±×·¡¹Ö 112
6.7 ¿ä¾à 115
Á¦2ºÎ ÇÔ¼öÀû ¼³°è¿Í Á¶Çձ⠶óÀ̺귯¸®
7Àå ¼ø¼ö ÇÔ¼öÀû º´·Ä¼º 119
7.1 ÀÚ·á Çü½Ä°ú ÇÔ¼öÀÇ ¼±Åà 120
7.1.1 º´·Ä °è»êÀ» À§ÇÑ ÀÚ·á Çü½Ä Çϳª 122
7.1.2 º´·Ä °è»êÀÇ Á¶ÇÕ 125
7.1.3 ¸í½ÃÀû ºÐ±â 127
7.2 Ç¥ÇöÀÇ ¼±Åà 130
7.3 APIÀÇ Á¤·Ã 132
7.4 APIÀÇ ´ë¼ö 138
7.4.1 map¿¡ °üÇÑ ¹ýÄ¢ 139
7.4.2 fork¿¡ °üÇÑ ¹ýÄ¢ 141
7.4.3 ¹ýÄ¢ ±ú±â: ¹Ì¹¦ÇÑ ¹ö±× Çϳª 142
7.4.4 ÇàÀ§ÀÚ¸¦ ÀÌ¿ëÇÑ ¿ÏÀü ºñÂ÷´Ü Par ±¸Çö 144
7.5 Á¶ÇÕ±âµéÀ» °¡Àå ÀϹÝÀûÀÎ ÇüÅ·ΠÁ¤·Ã 151
7.6 ¿ä¾à 156
8Àå ¼Ó¼º ±â¹Ý °Ë»ç 157
8.1 ¼Ó¼º ±â¹Ý °Ë»çÀÇ °£·«ÇÑ ¼Ò°³ 157
8.2 ÀÚ·á Çü½Ä°ú ÇÔ¼öÀÇ ¼±Åà 161
8.2.1 APIÀÇ Ãʱ⠹öÀü 161
8.2.2 ¼Ó¼ºÀÇ ÀÇ¹Ì¿Í API 163
8.2.3 »ý¼º±âÀÇ ÀÇ¹Ì¿Í API 165
8.2.4 »ý¼ºµÈ °ªµé¿¡ ÀÇÁ¸ÇÏ´Â »ý¼º±â 167
8.2.5 Prop ÀÚ·á Çü½ÄÀÇ Á¤·Ã 168
8.3 °Ë·Ê ÃÖ¼ÒÈ 171
8.4 ¶óÀ̺귯¸®ÀÇ »ç¿ë°ú »ç¿ë¼º °³¼± 173
8.4.1 °£´ÜÇÑ ¿¹Á¦ ¸î °¡Áö 173
8.4.2 º´·Ä °è»êÀ» À§ÇÑ °Ë»ç ¸ðÀ½ ÀÛ¼º 175
8.5 °íÂ÷ ÇÔ¼öÀÇ °Ë»ç¿Í ÇâÈÄ °³¼± ¹æÇâ 181
8.6 »ý¼º±âÀÇ ¹ýÄ¢µé 183
8.7 ¿ä¾à 184
9Àå Æļ Á¶Çձ⠶óÀ̺귯¸® 187
9.1 ´ë¼öÀÇ ¼³°è: ù ½Ãµµ 188
9.2 °¡´ÉÇÑ ´ë¼ö Çϳª 195
9.2.1 ½½¶óÀ̰̽ú ºñÁö ¾ÊÀº µÇÇ®ÀÌ 197
9.3 ¹®¸Æ ¹Î°¨¼ºÀÇ Ã³¸® 201
9.4 JSON Æļ ÀÛ¼º 203
9.4.1 JSON ¼½Ä 204
9.4.2 JSON Æļ 205
9.5 ¿À·ù º¸°í 206
9.5.1 °¡´ÉÇÑ ¼³°è Çϳª 207
9.5.2 ¿À·ùÀÇ Áßø 208
9.5.3 ºÐ±â¿Í ¿ªÃßÀûÀÇ Á¦¾î 210
9.6 ´ë¼öÀÇ ±¸Çö 212
9.6.1 °¡´ÉÇÑ ±¸Çö Çϳª 214
9.6.2 ÆļµéÀÇ ¼øÂ÷ ½ÇÇà 215
9.6.3 Æļ¿¡ À̸§Ç¥ ºÙÀ̱â 216
9.6.4 ½ÇÆÐÀÇ ±Øº¹°ú ¿ªÃßÀû 217
9.6.5 ¹®¸Æ ¹Î°¨ ÆÄ½Ì 218
9.7 ¿ä¾à 221
Á¦3ºÎ ÇÔ¼öÀû ¼³°èÀÇ °øÅë ±¸Á¶
10Àå ¸ð³ëÀ̵å 225
10.1 ¸ð³ëÀ̵å¶õ ¹«¾ùÀΰ¡? 226
10.2 ¸ð³ëÀ̵带 ÀÌ¿ëÇÑ ¸ñ·Ï Á¢±â 229
10.3 °áÇÕ¹ýÄ¢°ú º´·Ä¼º 230
10.4 ¿¹Á¦: º´·Ä ÆÄ½Ì 233
10.5 Á¢À» ¼ö ÀÖ´Â ÀڷᱸÁ¶ 235
10.6 ¸ð³ëÀ̵å ÇÕ¼º 237
10.6.1 Á» ´õ º¹ÀâÇÑ ¸ð³ëÀ̵å ÇÕ¼º 237
10.6.2 ¸ð³ëÀ̵å ÇÕ¼ºÀ» ÀÌ¿ëÇÑ ¼øȸ À¶ÇÕ 239
10.7 ¿ä¾à 240
11Àå ¸ð³ªµå 241
11.1 ÇÔ¼öÀÚ: map ÇÔ¼öÀÇ ÀϹÝÈ 241
11.1.1 ÇÔ¼öÀÚÀÇ ¹ýÄ¢µé 244
11.2 ¸ð³ªµå: flatMap ÇÔ¼ö¿Í unit ÇÔ¼öÀÇ ÀϹÝÈ 245
11.2.1 Monad ƯÁú 246
11.3 ¸ð³ªµåÀû Á¶ÇÕ±â 249
11.4 ¸ð³ªµå ¹ýÄ¢ 251
11.4.1 °áÇÕ¹ýÄ¢ 251
11.4.2 ƯÁ¤ ¸ð³ªµåÀÇ °áÇÕ¹ýÄ¢ ¼º¸³ Áõ¸í 253
11.4.3 Ç×µî¹ýÄ¢ 255
11.5 µµ´ëü ¸ð³ªµå¶õ ¹«¾ùÀΰ¡? 256
11.5.1 Ç×µî ¸ð³ªµå 258
11.5.2 State ¸ð³ªµå¿Í ºÎºÐ Çü½Ä Àû¿ë 259
11.6 ¿ä¾à 264
12Àå Àû¿ë¼º ÇÔ¼öÀÚ¿Í ¼øȸ °¡´É ÇÔ¼öÀÚ 265
12.1 ¸ð³ªµåÀÇ ÀϹÝÈ 265
12.2 Applicative ƯÁú 266
12.3 ¸ð³ªµå¿Í Àû¿ë¼º ÇÔ¼öÀÚÀÇ Â÷ÀÌ 269
12.3.1 Àû¿ë¼º Option°ú Option ¸ð³ªµå 269
12.3.2 Àû¿ë¼º Parser ´ë Parser ¸ð³ªµå 271
12.4 Àû¿ë¼º ÇÔ¼öÀÇ ÀåÁ¡ 273
12.4.1 ¸ðµç Àû¿ë¼º ÇÔ¼öÀÚ°¡ ¸ð³ªµå´Â ¾Æ´Ï´Ù 273
12.5 Àû¿ë¼º ÇÔ¼öÀÚ ¹ýÄ¢ 277
12.5.1 ¿ÞÂÊ, ¿À¸¥ÂÊ Ç×µî¹ýÄ¢ 277
12.5.2 °áÇÕ¹ýÄ¢ 278
12.5.3 °öÀÇ ÀÚ¿¬¼º ¹ýÄ¢ 279
12.6 ¼øȸ °¡´É ÇÔ¼öÀÚ 282
12.7 TraverseÀÇ ¿ëµµ 284
12.7.1 ¸ð³ëÀ̵忡¼ Àû¿ë¼º ÇÔ¼öÀÚ·Î 285
12.7.2 »óÅ ÀÖ´Â ¼øȸ 287
12.7.3 ¼øȸ °¡´É ±¸Á¶ÀÇ Á¶ÇÕ 289
12.7.4 ¼øȸÀÇ À¶ÇÕ 290
12.7.5 ÁßøµÈ ¼øȸ 290
12.7.6 ¸ð³ªµå ÇÕ¼º 291
12.8 ¿ä¾à 292
Á¦4ºÎ È¿°ú¿Í ÀÔÃâ·Â
13Àå ¿ÜºÎ È¿°ú¿Í ÀÔÃâ·Â 297
13.1 È¿°úÀÇ ÃßÃâ 298
13.2 °£´ÜÇÑ ÀÔÃâ·Â Çü½Ä 300
13.2.1 ÀÔ·Â È¿°úÀÇ Ã³¸® 301
13.2.2 ´Ü¼øÇÑ IO Çü½ÄÀÇ Àå´ÜÁ¡ 306
13.3 StackOverflowError ¹æÁö 307
13.3.1 Á¦¾îÀÇ È帧À» ÀÚ·á »ý¼ºÀÚ·Î ±¸Ã¼È 308
13.3.2 Æ®·¥ÆÞ¸° Àû¿ë: ½ºÅà ³Ñħ¿¡ ´ëÇÑ ÀϹÝÀû Çعý 311
13.4 Á» ´õ Á¤±³ÇÑ IO Çü½Ä 312
13.4.1 ÀÚÀ¯ ¸ð³ªµå 314
13.4.2 ÄÜ¼Ö ÀÔÃâ·Â¸¸ Áö¿øÇÏ´Â ¸ð³ªµå 316
13.4.3 ¼ø¼ö Çؼ®±â 319
13.5 ºñÂ÷´Ü ºñµ¿±â ÀÔÃâ·Â 321
13.6 ¹ü¿ë IO Çü½Ä 324
13.6.1 ±× ¸ðµç °ÍÀÇ ³¡¿¡ ÀÖ´Â ÁÖ ÇÁ·Î±×·¥ 325
13.7 IO Çü½ÄÀÌ ½ºÆ®¸² ¹æ½Ä ÀÔÃâ·Â¿¡ ÃæºÐÇÏÁö ¾ÊÀº ÀÌÀ¯ 326
13.8 ¿ä¾à 328
14Àå Áö¿ª È¿°ú¿Í º¯ÀÌ °¡´É »óÅ 331
14.1 ¼ø¼ö ÇÔ¼öÀû º¯ÀÌ °¡´É »óÅ 331
14.2 ºÎ¼ö È¿°ú¸¦ Áö¿ª ¹üÀ§·Î ÇÑÁ¤ÇÏ´Â ÀÚ·á Çü½Ä 334
14.2.1 ¹üÀ§ ÀÖ´Â º¯À̸¦ À§ÇÑ ÀÛÀº ¾ð¾î 334
14.2.2 º¯ÀÌ °¡´É ÂüÁ¶ÀÇ ´ë¼ö 336
14.2.3 º¯ÀÌ °¡´É »óÅ µ¿ÀÛÀÇ ½ÇÇà 338
14.2.4 º¯ÀÌ °¡´É ¹è¿ 342
14.2.5 ¼ø¼ö ÇÔ¼öÀû Á¦ÀÚ¸® quicksort 344
14.3 ¼ø¼ö¼ºÀº ¹®¸Æ¿¡ ÀÇÁ¸ÇÑ´Ù 345
14.3.1 ºÎ¼ö È¿°ú·Î °£ÁֵǴ °ÍÀº ¹«¾ùÀΰ¡? 347
14.4 ¿ä¾à 349
15Àå ½ºÆ®¸² ó¸®¿Í Á¡ÁøÀû ÀÔÃâ·Â 351
15.1 ¸í·É½Ä ÀÔÃâ·ÂÀÇ ¹®Á¦Á¡À» º¸¿©ÁÖ´Â ¿¹Á¦ Çϳª 351
15.2 °£´ÜÇÑ ½ºÆ®¸² º¯È¯±â 355
15.2.1 ó¸® °øÁ¤ÀÇ »ý¼º 357
15.2.2 ó¸® °øÁ¤ÀÇ ÇÕ¼º°ú Ãß°¡ 361
15.2.3 ÆÄÀÏ Ã³¸® 364
15.3 È®Àå °¡´ÉÇÑ Ã³¸® °øÁ¤ Çü½Ä 365
15.3.1 °ø±Þ¿ø 368
15.3.2 ÀÚ¿ø ¾ÈÀü¼º º¸Àå 370
15.3.3 ´ÜÀÏ ÀԷ ó¸® °øÁ¤ 373
15.3.4 ´ÙÁß ÀÔ·Â ½ºÆ®¸² 376
15.3.5 ½ÌÅ© 379
15.3.6 È¿°ú Àִ ä³Î 381
15.3.7 µ¿Àû ÀÚ¿ø ÇÒ´ç 382
15.4 ÀÀ¿ë 384
15.5 ¿ä¾à 385
º»¹®Áß¿¡¼
ÀÌ Ã¥¿¡¼ µµ±¸·Î ¾²ÀÌ´Â ½ºÄ®¶óScala ¾ð¾î´Â Java¿ÍÀÇ »óÈ£¿î¿ë¼ºÀ» Á¦°øÇÔÀ¸·Î½á ±×·¯ÇÑ ÁøÀÔ À庮À» ³·Ãß¾ú´Ù´Â Á¡¿¡¼ ¸¹Àº ÁÖ¸ñÀ» ¹Þ¾Ò½À´Ï´Ù. ±×·¯³ª ÀÌ Ã¥ÀÇ ÃÊÁ¡Àº ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö ÀÚü¿¡ ÀÖÀ¸¸ç, Java¿¡ ´ëÇÑ Áö½ÄÀº º°·Î ¿ä±¸µÇÁö ¾Ê½À´Ï´Ù. ÀÌ Ã¥(¿ø¼)À» ÀÐÀ¸¸é¼ ¾ÆÁÖ ¸¶À½¿¡ µé¾ú´ø Á¡ Çϳª´Â, ÁøÀÔ À庮À» ÀÎÀ§ÀûÀ¸·Î ³·Ãß·Á ÇÏ´Â ´ë½Å µ¶ÀÚ°¡ ÁøÀÔ À庮À» Á÷½ÃÇÏ°í ±×°ÍÀ» ¶Ù¾î³ÑÀ» ¼ö ÀÖ´Â ´É·Â°ú ÅëÂûÀ» °®Ãßµµ·Ï µ½´Â µ¥ ÁÖ·ÂÇÑ´Ù´Â Á¡ÀÔ´Ï´Ù.
_¡®¿Å±äÀÌ ¸Ó¸®¸»¡¯ Áß¿¡¼
°æÇè ´öºÐ¿¡ ¿ì¸®´Â ¿ì¸®°¡ ¾²°íÀÚ Çϴ åÀÌ ¾î¶² Á¾·ùÀÇ Ã¥ÀÎÁö ¸íÈ®È÷ ¾Ë°í ÀÖ¾ú´Ù. ±×¸®°í ±×·± Ã¥À» ±Ý¼¼ ¼ö¿ùÇÏ°Ô ¾µ ¼ö ÀÖÀ¸¸®¶ó »ý°¢Çß´Ù. ±×·ÎºÎÅÍ 4³âÀÌ ³Ñ´Â ½Ã°£ÀÌ Áö³ Áö±Ý, ¿ì¸®´Â ±¦ÂúÀº Ã¥ ÇÑ ±ÇÀ» ¸¸µé¾î ³Â´Ù°í »ý°¢ÇÑ´Ù. ÀÌ Ã¥Àº ¿ì¸®°¡ ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» ¹è¿ï ¶§ ¡°ÀÌ·± Ã¥ÀÌ ÀÖ¾úÀ¸¸é ÁÁ°Ú´Ù¡±¶ó°í »ý°¢Çß´ø ¹Ù·Î ±× Ã¥ÀÌ´Ù.
_¡®¸Ó¸®¸»¡¯ Áß¿¡¼
µ¶ÀÚ´Â ÀÔÃâ·ÂÀ» ¼öÇàÇÏ´Â ÇÁ·Î±×·¥, ¿À·ù¸¦ ó¸®ÇÏ´Â ÇÁ·Î±×·¥, ÀڷḦ ¼öÁ¤ÇÏ´Â ÇÁ·Î±×·¥À» Æ÷ÇÔÇÑ ¸ðµç Á¾·ùÀÇ ÇÁ·Î±×·¥À» ºÎ¼ö È¿°ú ¾øÀÌ Ç¥ÇöÇÏ´Â ¹æ¹ýÀ» ¹è¿ì°Ô µÈ´Ù. ¶ÇÇÑ, FPÀÇ ¿ø¸®¸¦ µû¸£´Â °ÍÀÌ ´ë´ÜÈ÷ ÀÌ·Ó´Ù´Â Á¡µµ ¹è¿ì°Ô µÉ °ÍÀÌ´Ù. ÀÌ´Â ¼ø¼ö ÇÔ¼öµé·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¸é ¸ðµâ¼º(modularity)ÀÌ Áõ°¡Çϱ⠶§¹®ÀÌ´Ù. ¸ðµâ¼º ´öºÐ¿¡ ¼ø¼ö ÇÔ¼ö´Â °Ë»ç(test), Àç»ç¿ë, º´·ÄÈ, ÀϹÝÈ, ºÐ¼®ÀÌ ½±´Ù. ´õ ³ª¾Æ°¡¼, ¼ø¼ö ÇÔ¼ö´Â ¹ö±×°¡ »ý±æ ¿©Áö°¡ ÈξÀ Àû´Ù.
_4ÂÊ
À̹ø Àå¿¡¼´Â º´·Ä ¹× ºñµ¿±â °è»êÀÇ »ý¼ºÀ» À§ÇÑ ¼ø¼ö ÇÔ¼öÀû ¶óÀ̺귯¸® Çϳª¸¦ ±¸ÃàÇÑ´Ù. º´·ÄÀû ÇÁ·Î±×·¥¿¡ ³»ÀçÇÏ´Â º¹À⼺À», ¿ÀÁ÷ ¼ø¼ö ÇÔ¼ö¸¸À¸·Î ÇÁ·Î±×·¥À» ¼¼úÇÔÀ¸·Î½á ÅëÁ¦ÇØ º¼ °ÍÀÌ´Ù. À̸¦ ÅëÇؼ ġȯ ¸ðÇüÀ» ÀÌ¿ëÇؼ Ãß·ÐÀ» ´Ü¼øÈÇÒ ¼ö ÀÖÀ¸¸ç, ±×·¯´Ù º¸¸é ¹Ù¶ó°Ç´ë µ¿½ÃÀû °è»êÀ» ½±°í Áñ°Ì°Ô ´Ù·ê ¼ö ÀÖ°Ô µÉ °ÍÀÌ´Ù.
_119ÂÊ
½Ç¹«ÀÇ °üÁ¡¿¡¼ º¼ ¶§, API¸¦ ÃÖ¼ÒÇÑÀÇ ±âº» ÇÔ¼öµé·Î ÁÙÀÌ´Â ´É·ÂÀº ´ë´ÜÈ÷ À¯¿ëÇÏ´Ù. parMapÀ» ±âÁ¸ÀÇ Á¶ÇÕ±âµéÀ» ÀÌ¿ëÇؼ ±¸ÇöÇÒ ¶§ ¾ð±ÞÇßµíÀÌ, ±âº»ÀûÀÎ Á¶ÇÕ±âµéÀº ´Ù¼Ò ±î´Ù·Î¿î ³í¸®¸¦ ĸ½¶ÈÇÏ°í ÀÖ´Â °æ¿ì°¡ ¸¹À¸¸ç, ±×·± °ÍµéÀ» Àç»ç¿ëÇÏ¸é ±î´Ù·Î¿î ³í¸®¸¦ µÇÇ®ÀÌÇؼ ´Ù·ê ÇÊ¿ä°¡ ¾ø´Ù.
_155ÂÊ
ÀúÀÚ¼Ò°³
»ý³â¿ùÀÏ | - |
---|
ÇØ´çÀÛ°¡¿¡ ´ëÇÑ ¼Ò°³°¡ ¾ø½À´Ï´Ù.
»ý³â¿ùÀÏ | - |
---|
1996³âºÎÅÍ È°µ¿ÇØ ¿Â ÇÁ·Î±×·¡¹Ö ¼Àû Àü¹® ¹ø¿ª°¡·Î, Game Programming Gems ½Ã¸®Áî¿Í ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹ÖÀÇ ¿¹¼ú(The Art of Computer Programming) Á¦1~4A±Ç, UNIX °í±Þ ÇÁ·Î±×·¡¹Ö(Advanced Programming in UNIX Environment) Á¦2ÆÇ°ú Á¦3ÆÇÀ» Æ÷ÇÔÇÏ¿© 60¿© ±ÇÀÇ ´Ù¾çÇÑ ÇÁ·Î±×·¡¹Ö ¼ÀûÀ» ¹ø¿ªÇß´Ù. C++ °ü·Ã ¹ø¿ª¼·Î´Â ÀϹÝÀû ÇÁ·Î±×·¡¹Ö°ú STL, C++ Template Metaprogramming, (C++·Î ¹è¿ì´Â) ÇÁ·Î±×·¡¹ÖÀÇ ¿ø¸®¿Í ½ÇÁ¦ µîÀÌ ÀÖ´Ù. ¼öÇÐ °ü·Ã ¹ø¿ª¼·Î´Â ¡¶±¸Ã¼ ¼öÇС·, ¡¶3D °ÔÀÓ ÇÁ·Î±×·¡¹Ö & ÄÄÇ»ÅÍ ±×·¡ÇÈÀ» À§ÇÑ ¼öÇС· Á¦1ÆÇ¡¤Á¦2ÆÇ µîÀÌ ÀÖ°í, ½ÉÃþÇнÀ °ü·Ã ¹ø¿ª¼·Î´Â ¡¶ÀΰøÁö´É: Çö´ëÀû Á¢±Ù¹æ½Ä¡· Á¦4ÆÇ, ¡¶½ÉÃþÇнÀ¡·, ¡¶½Å°æ¸Á°ú ½ÉÃþ ÇнÀ¡· µîÀÌ ÀÖ´Ù. ¹ø¿ª°ú ÇÁ·Î±×·¡¹Ö ¿Ü¿¡ ¼ÒÇÁÆ®¿þ¾î ¹®¼È¿¡µµ ¸¹Àº °ü½ÉÀÌ ÀÖÀ¸¸ç, ¼ö¸¹Àº ¿ÀǼҽº ÇÁ·ÎÁ§Æ®µéÀÇ Ç¥ÁØ ¹®¼ Çü½ÄÀ¸·Î ¾²ÀÌ´Â DocBookÀÇ ±¹³» »ç¿ëÀÚ ¸ðÀÓÀÎ ´ÚºÏ Çѱ¹(http://docbook.kr)ÀÇ ÀÏ¿øÀÌ´Ù. ÇöÀç ¹ø¿ª¼ Á¤º¸ »çÀÌÆ® occam¡¯s Razor(http://occamsrazr.net)¿Í °ÔÀÓ °³¹ß ¹× °³¹ß¼ °ü·Ã »çÀÌÆ® GpgStudy(http://www.gpgstudy.com)¸¦ ¿î¿µÇÏ°í ÀÖ´Ù.
ÆîÃĺ¸±â¿ªÀÚÀÇ ´Ù¸¥Ã¥
Àüüº¸±â½±°Ô ¼³¸íÇÑ C++ ÇÙ½É °¡À̵å¶óÀÎ
ÇÊ¿äÇÑ °Í¸¸ °ñ¶ó ¹è¿ì´Â ¸ð´ø C++
À¯¿¬ÇÑ ¼ÒÇÁÆ®¿þ¾î¸¦ ¸¸µå´Â ¼³°è ¿øÄ¢
C++20: dzºÎÇÑ ¿¹Á¦·Î ÀÍÈ÷´Â ÇÙ½É ±â´É
ÁÖ°£·©Å·
´õº¸±â»óÇ°Á¤º¸Á¦°ø°í½Ã
À̺¥Æ® ±âȹÀü
Àü°øµµ¼/´ëÇб³Àç ºÐ¾ß¿¡¼ ¸¹Àº ȸ¿øÀÌ ±¸¸ÅÇÑ Ã¥
ÆǸÅÀÚÁ¤º¸
»óÈ£ |
(ÁÖ)±³º¸¹®°í |
---|---|
´ëÇ¥ÀÚ¸í |
¾Èº´Çö |
»ç¾÷ÀÚµî·Ï¹øÈ£ |
102-81-11670 |
¿¬¶ôó |
1544-1900 |
ÀüÀÚ¿ìÆíÁÖ¼Ò |
callcenter@kyobobook.co.kr |
Åë½ÅÆǸž÷½Å°í¹øÈ£ |
01-0653 |
¿µ¾÷¼ÒÀçÁö |
¼¿ïƯº°½Ã Á¾·Î±¸ Á¾·Î 1(Á¾·Î1°¡,±³º¸ºôµù) |
±³È¯/ȯºÒ
¹ÝÇ°/±³È¯ ¹æ¹ý |
¡®¸¶ÀÌÆäÀÌÁö > Ãë¼Ò/¹ÝÇ°/±³È¯/ȯºÒ¡¯ ¿¡¼ ½Åû ¶Ç´Â 1:1 ¹®ÀÇ °Ô½ÃÆÇ ¹× °í°´¼¾ÅÍ(1577-2555)¿¡¼ ½Åû °¡´É |
---|---|
¹ÝÇ°/±³È¯°¡´É ±â°£ |
º¯½É ¹ÝÇ°ÀÇ °æ¿ì Ãâ°í¿Ï·á ÈÄ 6ÀÏ(¿µ¾÷ÀÏ ±âÁØ) À̳»±îÁö¸¸ °¡´É |
¹ÝÇ°/±³È¯ ºñ¿ë |
º¯½É ȤÀº ±¸¸ÅÂø¿À·Î ÀÎÇÑ ¹ÝÇ°/±³È¯Àº ¹Ý¼Û·á °í°´ ºÎ´ã |
¹ÝÇ°/±³È¯ ºÒ°¡ »çÀ¯ |
·¼ÒºñÀÚÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¼Õ½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì ·¼ÒºñÀÚÀÇ »ç¿ë, Æ÷Àå °³ºÀ¿¡ ÀÇÇØ »óÇ° µîÀÇ °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì ·º¹Á¦°¡ °¡´ÉÇÑ »óÇ° µîÀÇ Æ÷ÀåÀ» ÈѼÕÇÑ °æ¿ì ·½Ã°£ÀÇ °æ°ú¿¡ ÀÇÇØ ÀçÆǸŰ¡ °ï¶õÇÑ Á¤µµ·Î °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì ·ÀüÀÚ»ó°Å·¡ µî¿¡¼ÀÇ ¼ÒºñÀÚº¸È£¿¡ °üÇÑ ¹ý·üÀÌ Á¤ÇÏ´Â ¼ÒºñÀÚ Ã»¾àöȸ Á¦ÇÑ ³»¿ë¿¡ ÇØ´çµÇ´Â °æ¿ì |
»óÇ° Ç°Àý |
°ø±Þ»ç(ÃâÆÇ»ç) Àç°í »çÁ¤¿¡ ÀÇÇØ Ç°Àý/Áö¿¬µÉ ¼ö ÀÖÀ½ |
¼ÒºñÀÚ ÇÇÇغ¸»ó |
·»óÇ°ÀÇ ºÒ·®¿¡ ÀÇÇÑ ±³È¯, A/S, ȯºÒ, Ç°Áúº¸Áõ ¹× ÇÇÇغ¸»ó µî¿¡ °üÇÑ »çÇ×Àº¼ÒºñÀÚºÐÀïÇØ°á ±âÁØ (°øÁ¤°Å·¡À§¿øȸ °í½Ã)¿¡ ÁØÇÏ¿© ó¸®µÊ ·´ë±Ý ȯºÒ ¹× ȯºÒÁö¿¬¿¡ µû¸¥ ¹è»ó±Ý Áö±Þ Á¶°Ç, ÀýÂ÷ µîÀº ÀüÀÚ»ó°Å·¡ µî¿¡¼ÀǼҺñÀÚ º¸È£¿¡ °üÇÑ ¹ý·ü¿¡ µû¶ó ó¸®ÇÔ |
(ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º´Â ȸ¿ø´ÔµéÀÇ ¾ÈÀü°Å·¡¸¦ À§ÇØ ±¸¸Å±Ý¾×, °áÁ¦¼ö´Ü¿¡ »ó°ü¾øÀÌ (ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º¸¦ ÅëÇÑ ¸ðµç °Å·¡¿¡ ´ëÇÏ¿©
(ÁÖ)KGÀ̴Ͻýº°¡ Á¦°øÇÏ´Â ±¸¸Å¾ÈÀü¼ºñ½º¸¦ Àû¿ëÇÏ°í ÀÖ½À´Ï´Ù.
¹è¼Û¾È³»
±³º¸¹®°í »óÇ°Àº Åùè·Î ¹è¼ÛµÇ¸ç, Ãâ°í¿Ï·á 1~2Àϳ» »óÇ°À» ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
Ãâ°í°¡´É ½Ã°£ÀÌ ¼·Î ´Ù¸¥ »óÇ°À» ÇÔ²² ÁÖ¹®ÇÒ °æ¿ì Ãâ°í°¡´É ½Ã°£ÀÌ °¡Àå ±ä »óÇ°À» ±âÁØÀ¸·Î ¹è¼ÛµË´Ï´Ù.
±ººÎ´ë, ±³µµ¼Ò µî ƯÁ¤±â°üÀº ¿ìü±¹ Åù踸 ¹è¼Û°¡´ÉÇÕ´Ï´Ù.
¹è¼Ûºñ´Â ¾÷ü ¹è¼Ûºñ Á¤Ã¥¿¡ µû¸¨´Ï´Ù.