»óǰ ¾È³» ¹× ȯºÒ, ±³È¯, ¹è¼Û¹®ÀÇ | |
- °¡°Ô ÀüȹøÈ£ : | 1544-1900 |
- Àüȹ®ÀÇ ½Ã°£ : |
¿ÀÀü 9½ÃºÎÅÍ ¿ÀÈÄ 6½Ã±îÁö (¸ÅÁÖ ¿ù¿äÀÏ, È¿äÀÏ, ¼ö¿äÀÏ, ¸ñ¿äÀÏ, ±Ý¿äÀÏ, °øÈÞÀÏ Á¦¿Ü) |
- °¡°Ô À̸ÞÀÏ : | ink@kyobobook.co.kr |
- ÀÌ¿ë Åùèȸ»ç : | CJ´ëÇÑÅë¿î |
ÆÇ¸Å°¡°ÔÁ¤º¸ |
|
- »ç¾÷ÀÚ¸í : | (ÁÖ)±³º¸¹®°í |
- »ç¾÷ÀÚµî·Ï¹øÈ£ : | 102-81-11670 |
- Åë½ÅÆÇ¸Å¾÷½Å°í : | 01-0653 |
- Çö±Ý¿µ¼öÁõ : ¹ß±Þ°¡´É |
|
ÀüÈÁÖ¹® ¹× °áÁ¦¹®ÀÇ |
|
- ²ÉÇÇ´Â ¾ÆÄ§¸¶À» : | 1644-8422 |
°¡°Ô¿Í Á÷°Å·¡¸¦ ÇÏ½Ã¸é ²É¼ÛÀÌ Àû¸³ ¹× °¢Á¾ ÇýÅÿ¡¼ Á¦¿ÜµÇ°í, ¸¸ÀÏÀÇ ¹®Á¦°¡ ¹ß»ýÇÏ´Â °æ¿ì¿¡µµ ²É¸¶ÀÇ µµ¿òÀ» ¹ÞÀ¸½Ç ¼ö ¾ø½À´Ï´Ù. °¡°ÔÀÇ ºÎ´çÇÑ ¿ä±¸, ºÒ°øÁ¤ ÇàÀ§ µî¿¡ ´ëÇØ¼µµ ²É¸¶·Î Á÷Á¢ ÀüÈÁÖ¼¼¿ä. |
»ó¼¼Á¤º¸ | ±¸¸ÅÈıâ (0) | »óǰ Q&A (0) | ¹è¼Û/±³È¯/ȯºÒ ¾È³» |
Ã¥¼Ò°³ÄÚÆ²¸°ÀÌ ¾Èµå·ÎÀÌµå °ø½Ä ¾ð¾î°¡ µÇ¸é¼ °ü½ÉÀÌ Ä¿Á³´Ù. ÀÌ Ã¥Àº ÄÚÆ²¸° ¾ð¾î¸¦ °³¹ßÇÑ Á¬ºê·¹ÀÎÀÇ ÄÚÆ²¸° ÄÄÆÄÀÏ·¯ °³¹ßÀÚµéÀÌ Á÷Á¢ ¾´ ÀÏÁ¾ÀÇ °ø½Ä ¼ÀûÀ̶ó ÇÒ ¼ö ÀÖ´Ù. ÄÚÆ²¸° ¾ð¾îÀÇ °¡Àå Å« Ư¡À̶ó¸é ½Ç¿ë¼ºÀ» µé ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ Ã¥¿¡¼µµ ½Ç¿ë¼ºÀ» °Á¶ÇÏ´Â ÀÔÀå¿¡¼ ¾²¿´´Ù.
ÄÚÆ²¸° ±âÃʸ¦ ¼Ò°³Çϰí, °íÂ÷ÇÔ¼ö, °´Ã¼ÁöÇâ, Á¦³×¸¯½º µîÀÇ ³»¿ëÀ» ¼³¸íÇÑ´Ù. ±×¸®°í ÄÚÆ²¸°ÀÌ ÀÚ¹Ù ¾ð¾î¸¦ ¾î¶»°Ô °³¼±Çß°í ±âÁ¸ ÀÚ¹Ù ÇÁ·ÎÁ§Æ®¿¡¼ ÄÚÆ²¸°À» ÇÔ²² »ç¿ëÇÒ ¶§ ¾î¶² ºÎºÐÀ» Á¶½ÉÇØ¾ß ÇÒÁö¸¦ Áß½ÉÀ¸·Î ÄÚÆ²¸° ¾ð¾î¸¦ ¼³¸íÇÑ´Ù. ÈĹݿ¡´Â ¾Ö³ëÅ×À̼ǰú ¸®Ç÷º¼Ç, DSL¿¡ ´ëÇØ ½ÇÁ¦ ¶óÀ̺귯¸® ¿¹Á¦¸¦ ´Ù·ç¸é¼ ¼³°è ±â¹ý°ú ±¸Çö±â¹ýÀ» ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù. ƯÈ÷ ÀÌ ÁÖÁ¦´Â ÀÌ Ã¥ÀÇ ¹é¹Ì·Î, ´Ù¸¥ ÄÚÆ²¸° Ã¥À̳ª °ø½Ä ¹®¼¿¡¼´Â ã¾Æº¸±â Èûµé¸ç ½ÇÀü¿¡¼ Å©°Ô µµ¿òÀÌ ¹ÞÀ» ¼ö ÀÖ´Ù.
Çѱ¹¾îÆÇ ºÎ·Ï¿¡¼´Â ÄÚÆ²¸° ¹öÀü 1.3.3±îÁöÀÇ º¯È¸¦ Á¤¸®ÇÑ ³»¿ë°ú ÄÚ·çÆ¾, ÄÚÆ²¸°/JS¿¡ ´ëÇÑ °£´ÜÇÑ ¼Ò°³¸¦ µ¡ºÙ¿´´Ù.
ÀúÀÚ¼Ò°³ÀúÀÚ : µå¹ÌÆ®¸® Á¦¸Þ·ÎÇÁ
ÀúÀÚ µå¹ÌÆ®¸® Á¦¸Þ·ÎÇÁ(Dmitry Jemerov)´Â 2003³âºÎÅÍ Á¬ºê·¹Àνº¿¡¼ ÀÏÇØ ¿ÔÀ¸¸ç, ÀÎÅÚ¸®J ¾ÆÀ̵ð¾î, ÆÄÀÌÂü, À¥½ºÅè µîÀÇ ¿©·¯ Á¦Ç° °³¹ß¿¡ Âü¿©Çß´Ù. Ãʱâ ÄÚÆ²¸° ±â¿©ÀÚ Áß Çϳª·Î ÃÖÃÊ ÄÚÆ²¸° ¹ÙÀÌÆ®ÄÚµå »ý¼º±â¸¦ ¸¸µé¾úÀ¸¸ç, Àü ¼¼°è¿¡¼ ÄÚÆ²¸° °ü·Ã ¹ßÇ¥¸¦ ÁøÇàÇØ ¿Ô´Ù. ÇöÀç ÄÚÆ²¸° ÀÎÅÚ¸®J Ç÷¯±×ÀÎÀ» °³¹ßÇÏ´Â ÆÀÀ» À̲ø°í ÀÖ´Ù.
ÀúÀÚ : ½ºº£Æ®¶ó³ª ÀÌ»çÄÚ¹Ù
ÀúÀÚ ½ºº£Æ®¶ó³ª ÀÌ»çÄÚ¹Ù(Svetlana Isakova)´Â 2011³âºÎÅÍ ÄÚÆ²¸° ÆÀÀÇ ÀÏ¿øÀ̾ú´Ù. ÄÚÆ²¸° ÄÄÆÄÀÏ·¯ÀÇ Å¸ÀÔ Ã߷аú ¿À¹ö·Îµå ÇØ°á(overload resolution) ºÎºÐÀ» °³¹ßÇß´Ù. ÇöÀç Å×Å©´ÏÄà ¿¡¹ÝÁ©¸®½ºÆ®(technical evangelist)·Î¼ °¢Á¾ ÄÜÆÛ·±½º¿¡¼ ÄÚÆ²¸°¿¡ ´ëÇØ ¾Ë¸®°í ÄÚÆ²¸° ¿Â¶óÀÎ ÄÚ½º¸¦ °³¹ßÇϰí ÀÖ´Ù.
¿ªÀÚ : ¿ÀÇö¼®
¿ªÀÚ ¿ÀÇö¼®Àº KAIST¿¡¼ Àü»êÇÐ Çлç¿Í ¼®»ç ÇÐÀ§(ÇÁ·Î±×·¡¹Ö ¾ð¾î ¿¬±¸½Ç)¸¦ ÃëµæÇß´Ù. »ï¼º¸Þµð½¼, ºñÆ®¾ØÆÞ½º µî¿¡¼ UI °³¹ßÀÚ¿Í °³¹ß ÆÀÀåÀ» Áö³Â°í, ÇöÀç È£ÁÖ JNF Soft¿¡¼ C++/Ç®½ºÅà °³¹ßÀÚ ¹× ÄÁ¼³ÅÏÆ®·Î ÀÏÇϰí ÀÖ´Ù. ¸ÅÀÏ µÎ ½Ã°£¾¿ ¹ø¿ª°ú Àú¼úÀ» ÅëÇØ Á¶±ÝÀ̳ª¸¶ µ¿·á ÇÁ·Î±×·¡¸Óµé¿¡°Ô µµ¿òÀ» ÁÖ°íÀÚ ³ë·ÂÇϰí ÀÖ´Ù. À¥À̳ª ¸ð¹ÙÀÏ µîÀÇ ºÐ¾ß¿¡¼ °ª Á᫐ ÇÁ·Î±×·¡¹ÖÀ» ÅëÇØ ¿À·ù ¹ß»ý °¡´É¼ºÀÌ ÀûÀ¸¸é¼ À¯Áö º¸¼ö°¡ ÆíÇÑ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â ¹æ¹ý°ú À̸¦ Áö¿øÇÏ´Â ¿©·¯ µµ±¸¸¦ ¸¸µå´Â ÀÏ¿¡ °ü½ÉÀÌ ¸¹´Ù. ÃÖ±Ù¿¡´Â CEF¸¦ ±â¹ÝÀ¸·Î À¥ ÇÁ·ÐÆ®¿£µå¿Í C++ ¹é¿£µå¸¦ °áÇÕÇÑ Èï¹Ì·Î¿î ÇÁ·ÎÁ§Æ®¸¦ ÁøÇà ÁßÀ̸ç, ÇÔ¼öÇü ¸®¾×Ƽºê ÇÁ·Î±×·¡¹ÖÀ» ÀÚ¹Ù½ºÅ©¸³Æ®¿Í C++¿¡ Àû¿ëÇØ Á» ´õ ÆíÇÏ¸é¼ ¿À·ùµµ ÀûÀº Äڵ带 »ý»êÇØ³»´Â ¹æ¹ýÀ» ãÀ¸·Á°í °í¹Î ÁßÀÌ´Ù.
¡ºÄÚ¾î ÆÄÀ̽㠾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¡¹Ö Third Edition¡»(¿¡ÀÌÄÜ, 2014), ¡ºÇÔ¼öÇü ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö¡» (¿¡ÀÌÄÜ, 2017), ¡ºProgramming in Scala 3/e¡»(¿¡ÀÌÄÜ, 2017), ¡ºÇÔ¼öÇü ¹ÝÀÀÇü ÇÁ·Î±×·¡¹Ö¡»(ÇѺû¹Ìµð¾î, 2017), ¡ºAkka ÄÚµù °øÀÛ¼Ò¡»(±æ¹þ, 2017) µîÀ» ºñ·ÔÇÑ ½Ê¿© ±Ç ÀÌ»óÀÇ Ã¥À» ¹ø¿ªÇß´Ù.
¸ñÂ÷1Àå. ÄÚÆ²¸°À̶õ ¹«¾ùÀ̸ç, ¿Ö ÇÊ¿äÇѰ¡?
__1.1 ÄÚÆ²¸° ¸Àº¸±â
__1.2 ÄÚÆ²¸°ÀÇ ÁÖ¿ä Æ¯¼º
____1.2.1 ´ë»ó Ç÷§Æû: ¼¹ö, ¾Èµå·ÎÀÌµå µî ÀÚ¹Ù°¡ ½ÇÇàµÇ´Â ¸ðµç °÷
____1.2.2 Á¤Àû ŸÀÔ ÁöÁ¤ ¾ð¾î
____1.2.3 ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö°ú °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö
____1.2.4 ¹«·á ¿ÀǼҽº
__1.3 ÄÚÆ²¸° ÀÀ¿ë
____1.3.1 ÄÚÆ²¸° ¼¹ö ÇÁ·Î±×·¡¹Ö
____1.3.2 ÄÚÆ²¸° ¾Èµå·ÎÀ̵å ÇÁ·Î±×·¡¹Ö
__1.4 ÄÚÆ²¸°ÀÇ Ã¶ÇÐ
____1.4.1½Ç¿ë¼º
____1.4.2°£°á¼º
____1.4.3 ¾ÈÀü¼º
____1.4.4 »óÈ£¿î¿ë¼º
__1.5 ÄÚÆ²¸° µµ±¸ »ç¿ë
____1.5.1 ÄÚÆ²¸° ÄÚµå ÄÄÆÄÀÏ
____1.5.2 ÀÎÅÚ¸®J ¾ÆÀ̵ð¾î¿Í ¾Èµå·ÎÀÌµå ½ºÆ©µð¿ÀÀÇ ÄÚÆ²¸° Ç÷¯±×ÀÎ
____1.5.3 ´ëÈÇü ¼Ð
____1.5.4 ÀÌŬ¸³½º Ç÷¯±×ÀÎ
____1.5.5 ¿Â¶óÀÎ ³îÀÌÅÍ
____1.5.6 ÀÚ¹Ù-ÄÚÆ²¸° º¯È¯±â
__1.6¿ä¾à
2Àå. ÄÚÆ²¸° ±âÃÊ
__2.1 ±âº» ¿ä¼Ò: ÇÔ¼ö¿Í º¯¼ö
____2.1.1 Hello, World!
____2.1.2 ÇÔ¼ö
____2.1.3 º¯¼ö
____2.1.4 ´õ ½±°Ô ¹®ÀÚ¿ Çü½Ä ÁöÁ¤: ¹®ÀÚ¿ ÅÛÇø´
__2.2 Ŭ·¡½º¿Í ÇÁ·ÎÆÛƼ
____2.2.1 ÇÁ·ÎÆÛƼ
____2.2.2 Ä¿½ºÅÒ Á¢±ÙÀÚ
____2.2.3 ÄÚÆ²¸° ¼Ò½ºÄÚµå ±¸Á¶: µð·ºÅ͸®¿Í ÆÐŰÁö
__2.3 ¼±ÅÃÀÇ Ç¥Çö°ú ó¸®: enum°ú when
____2.3.1 enum Ŭ·¡½º Á¤ÀÇ
____2.3.2 whenÀ¸·Î enum Ŭ·¡½º ´Ù·ç±â
____2.3.3 when°ú ÀÓÀÇÀÇ °´Ã¼¸¦ ÇÔ²² »ç¿ë
____2.3.4 ÀÎÀÚ ¾ø´Â when »ç¿ë
____2.3.5 ½º¸¶Æ® ij½ºÆ®: ŸÀÔ °Ë»ç¿Í ŸÀÔ Ä³½ºÆ®¸¦ Á¶ÇÕ
____2.3.6 ¸®ÆÑÅ丵: if¸¦ whenÀ¸·Î º¯°æ
____2.3.7 if¿Í whenÀÇ ºÐ±â¿¡¼ ºí·Ï »ç¿ë
__2.4 ´ë»óÀ» ÀÌÅÍ·¹À̼Ç: while°ú for ·çÇÁ
____2.4.1 while ·çÇÁ
____2.4.2 ¼ýÀÚ¿¡ ´ëÇÑ ÀÌÅÍ·¹À̼Ç: ¹üÀ§¿Í ¼ö¿
____2.4.3 ¸Ê¿¡ ´ëÇÑ ÀÌÅÍ·¹À̼Ç
____2.4.4 inÀ¸·Î Ä÷º¼ÇÀ̳ª ¹üÀ§ÀÇ ¿ø¼Ò °Ë»ç
__2.5 ÄÚÆ²¸°ÀÇ ¿¹¿Ü ó¸®
____2.5.1 try, catch, finally
____2.5.2 try¸¦ ½ÄÀ¸·Î »ç¿ë
__2.6 ¿ä¾à
3Àå. ÇÔ¼ö Á¤ÀÇ¿Í È£Ãâ
__3.1 ÄÚÆ²¸°¿¡¼ Ä÷º¼Ç ¸¸µé±â
__3.2 ÇÔ¼ö¸¦ È£ÃâÇϱ⠽±°Ô ¸¸µé±â
____3.2.1 À̸§ ºÙÀÎ ÀÎÀÚ
____3.2.2 µðÆúÆ® ÆÄ¶ó¹ÌÅÍ °ª
____3.2.3 Á¤ÀûÀÎ À¯Æ¿¸®Æ¼ Ŭ·¡½º ¾ø¾Ö±â: ÃÖ»óÀ§ ÇÔ¼ö¿Í ÇÁ·ÎÆÛƼ
____3.3 ¸Þ¼Òµå¸¦ ´Ù¸¥ Ŭ·¡½º¿¡ Ãß°¡: È®Àå ÇÔ¼ö¿Í È®Àå ÇÁ·ÎÆÛƼ
____3.3.1 ÀÓÆ÷Æ®¿Í È®Àå ÇÔ¼ö
____3.3.2 ÀÚ¹Ù¿¡¼ È®Àå ÇÔ¼ö È£Ãâ
____3.3.3 È®Àå ÇÔ¼ö·Î À¯Æ¿¸®Æ¼ ÇÔ¼ö Á¤ÀÇ
____3.3.4 È®Àå ÇÔ¼ö´Â ¿À¹ö¶óÀ̵å ÇÒ ¼ö ¾ø´Ù
____3.3.5 È®Àå ÇÁ·ÎÆÛƼ
__3.4 Ä÷º¼Ç ó¸®: °¡º¯ ±æÀÌ ÀÎÀÚ, ÁßÀ§ ÇÔ¼ö È£Ãâ, ¶óÀ̺귯¸® Áö¿ø
____3.4.1 ÀÚ¹Ù Ä÷º¼Ç API È®Àå
____3.4.2 °¡º¯ÀÎÀÚ ÇÔ¼ö: ÀÎÀÚÀÇ °³¼ö°¡ ´Þ¶óÁú ¼ö ÀÖ´Â ÇÔ¼ö Á¤ÀÇ
____3.4.3 °ªÀÇ ½Ö ´Ù·ç±â: ÁßÀ§ È£Ãâ°ú ±¸Á¶ ºÐÇØ ¼±¾ð
__3.5 ¹®ÀÚ¿°ú Á¤±Ô½Ä ´Ù·ç±â
____3.5.1 ¹®ÀÚ¿ ³ª´©±â
____3.5.2 Á¤±Ô½Ä°ú 3Áß µû¿ÈÇ¥·Î ¹Àº ¹®ÀÚ¿
____3.5.3 ¿©·¯ ÁÙ 3Áß µû¿ÈÇ¥ ¹®ÀÚ¿
__3.6 ÄÚµå ´Ùµë±â: ·ÎÄà ÇÔ¼ö¿Í È®Àå
__3.7 ¿ä¾à
4Àå. Ŭ·¡½º, °´Ã¼, ÀÎÅÍÆäÀ̽º
__4.1 Ŭ·¡½º °èÃþ Á¤ÀÇ
____4.1.2 ÄÚÆ²¸° ÀÎÅÍÆäÀ̽º
____4.1.2 open, final, abstract º¯°æÀÚ: ±âº»ÀûÀ¸·Î final
____4.1.3 °¡½Ã¼º º¯°æÀÚ: ±âº»ÀûÀ¸·Î °ø°³
____4.1.4 ³»ºÎ Ŭ·¡½º¿Í ÁßøµÈ Ŭ·¡½º: ±âº»ÀûÀ¸·Î Áßø Ŭ·¡½º
____4.1.5 ºÀÀÎµÈ Å¬·¡½º: Ŭ·¡½º °èÃþ Á¤ÀÇ ½Ã °èÃþ È®Àå Á¦ÇÑ
__4.2 »·ÇÏÁö ¾ÊÀº »ý¼ºÀÚ¿Í ÇÁ·ÎÆÛƼ¸¦ °®´Â Ŭ·¡½º ¼±¾ð
____4.2.1 Ŭ·¡½º ÃʱâÈ: ÁÖ »ý¼ºÀÚ¿Í ÃʱâÈ ºí·Ï
____4.2.2 ºÎ »ý¼ºÀÚ: »óÀ§ Ŭ·¡½º¸¦ ´Ù¸¥ ¹æ½ÄÀ¸·Î ÃʱâÈ
____4.2.3 ÀÎÅÍÆäÀ̽º¿¡ ¼±¾ðµÈ ÇÁ·ÎÆÛƼ ±¸Çö
____4.2.4 °ÔÅÍ¿Í ¼¼ÅÍ¿¡¼ µÞ¹ÞħÇÏ´Â Çʵ忡 Á¢±Ù
____4.2.5 Á¢±ÙÀÚÀÇ °¡½Ã¼º º¯°æ
__4.3 ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ ¸Þ¼Òµå: µ¥ÀÌÅÍ Å¬·¡½º¿Í Ŭ·¡½º À§ÀÓ
____4.3.1 ¸ðµç Ŭ·¡½º°¡ Á¤ÀÇÇØ¾ß ÇÏ´Â ¸Þ¼Òµå
____4.3.2 µ¥ÀÌÅÍ Å¬·¡½º: ¸ðµç Ŭ·¡½º°¡ Á¤ÀÇÇØ¾ß ÇÏ´Â ¸Þ¼Òµå ÀÚµ¿ »ý¼º
____4.3.3 Ŭ·¡½º À§ÀÓ: by Ű¿öµå »ç¿ë
__4.4 object Ű¿öµå: Ŭ·¡½º ¼±¾ð°ú ÀνºÅϽº »ý¼º
____4.4.1 °´Ã¼ ¼±¾ð: ½Ì±ÛÅÏÀ» ½±°Ô ¸¸µé±â
____4.4.2 µ¿¹Ý °´Ã¼: ÆÑÅ͸® ¸Þ¼Òµå¿Í Á¤Àû ¸â¹ö°¡ µé¾î°¥ Àå¼Ò
____4.4.3 µ¿¹Ý °´Ã¼¸¦ ÀÏ¹Ý °´Ã¼Ã³·³ »ç¿ë
____4.4.4 °´Ã¼ ½Ä: ÀÍ¸í ³»ºÎ Ŭ·¡½º¸¦ ´Ù¸¥ ¹æ½ÄÀ¸·Î ÀÛ¼º
__4.5 ¿ä¾à
5Àå. ¶÷´Ù·Î ÇÁ·Î±×·¡¹Ö
__5.1 ¶÷´Ù ½Ä°ú ¸â¹ö ÂüÁ¶
____5.1.1 ¶÷´Ù ¼Ò°³: ÄÚµå ºí·ÏÀ» ÇÔ¼ö ÀÎÀÚ·Î ³Ñ±â±â
____5.1.2 ¶÷´Ù¿Í Ä÷º¼Ç
____5.1.3 ¶÷´Ù ½ÄÀÇ ¹®¹ý
____5.1.4 ÇöÀç ¿µ¿ª¿¡ ÀÖ´Â º¯¼ö¿¡ Á¢±Ù
____5.1.5 ¸â¹ö ÂüÁ¶
__5.2 Ä÷º¼Ç ÇÔ¼öÇü API
____5.2.1 ÇʼöÀûÀÎ ÇÔ¼ö: filter¿Í map
____5.2.2 all, any, count, find: Ä÷º¼Ç¿¡ ¼ú¾î Àû¿ë
____5.2.3 groupBy: ¸®½ºÆ®¸¦ ¿©·¯ ±×·ìÀ¸·Î ÀÌ·ïÁø ¸ÊÀ¸·Î º¯°æ
____5.2.4 flatMap°ú flatten: ÁßøµÈ Ä÷º¼Ç ¾ÈÀÇ ¿ø¼Ò ó¸®
__5.3 Áö¿¬ °è»ê lazy Ä÷º¼Ç ¿¬»ê
____5.3.1 ½ÃÄö½º ¿¬»ê ½ÇÇà: Áß°£ ¿¬»ê°ú ÃÖÁ¾ ¿¬»ê
____5.3.2 ½ÃÄö½º ¸¸µé±â
__5.4 ÀÚ¹Ù ÇÔ¼öÇü ÀÎÅÍÆäÀ̽º Ȱ¿ë
____5.4.1 ÀÚ¹Ù ¸Þ¼Òµå¿¡ ¶÷´Ù¸¦ ÀÎÀÚ·Î Àü´Þ
____5.4.2 SAM »ý¼ºÀÚ: ¶÷´Ù¸¦ ÇÔ¼öÇü ÀÎÅÍÆäÀ̽º·Î ¸í½ÃÀûÀ¸·Î º¯°æ
__5.5 ¼ö½Å °´Ã¼ ÁöÁ¤ ¶÷´Ù: with¿Í apply
____5.5.1 withÇÔ¼ö
____5.5.2 applyÇÔ¼ö
__5.6 ¿ä¾à
6Àå. ÄÚÆ²¸° ŸÀÔ ½Ã½ºÅÛ
__6.1 ³Î °¡´É¼º
____6.1.1 ³ÎÀÌ µÉ ¼ö Àִ ŸÀÔ
____6.1.2 ŸÀÔÀÇ ÀǹÌ
____6.1.3 ¾ÈÀüÇÑ È£Ãâ ¿¬»êÀÚ: "?."
____6.1.4 ¿¤ºñ½º ¿¬»êÀÚ "?:"
____6.1.5 ¾ÈÀüÇÑ Ä³½ºÆ®: as?
____6.1.6 ³Î ¾Æ´Ô ´Ü¾ð: !!
____6.1.7 letÇÔ¼ö
____6.1.8 ³ªÁß¿¡ ÃʱâÈÇÒ ÇÁ·ÎÆÛƼ
____6.1.9 ³ÎÀÌ µÉ ¼ö Àִ ŸÀÔ È®Àå
____6.1.10 ŸÀÔ ÆÄ¶ó¹ÌÅÍÀÇ ³Î °¡´É¼º
____6.1.11 ³Î °¡´É¼º°ú ÀÚ¹Ù
__6.2 ÄÚÆ²¸°ÀÇ ±âº» ŸÀÔ
____6.2.1 ±âº» ŸÀÔ: Int, Boolean µî
____6.2.2 ³ÎÀÌ µÉ ¼ö ÀÖ´Â ±âº» ŸÀÔ: Int?, Boolean? µî
____6.2.3 ¼ýÀÚ º¯È¯
____6.2.4 Any, Any?: ÃÖ»óÀ§ ŸÀÔ
____6.2.5 Unit ŸÀÔ: ÄÚÆ²¸°ÀÇ void
____6.2.6 Nothing ŸÀÔ: ¡°ÀÌ ÇÔ¼ö´Â °áÄÚ Á¤»óÀûÀ¸·Î ³¡³ªÁö ¾Ê´Â´Ù.¡±
__6.3 Ä÷º¼Ç°ú ¹è¿
____6.3.1 ³Î °¡´É¼º°ú Ä÷º¼Ç
____6.3.2 Àбâ Àü¿ë°ú º¯°æ °¡´ÉÇÑ Ä÷º¼Ç
____6.3.3 ÄÚÆ²¸° Ä÷º¼Ç°ú ÀÚ¹Ù
____6.3.4 Ä÷º¼ÇÀ» Ç÷§Æû ŸÀÔÀ¸·Î ´Ù·ç±â
____6.3.5 °´Ã¼ÀÇ ¹è¿°ú ±âº» ŸÀÔÀÇ ¹è¿
__6.4¿ä¾à
2ºÎ. ÄÚÆ²¸°´ä°Ô »ç¿ëÇϱâ
7Àå. ¿¬»êÀÚ ¿À¹ö·Îµù°ú ±âŸ °ü·Ê
__7.1 »ê¼ú ¿¬»êÀÚ ¿À¹ö·Îµå
____7.1.1 ÀÌÇ× »ê¼ú ¿¬»ê ¿À¹ö·Îµù
____7.1.2 º¹ÇÕ ´ëÀÔ ¿¬»êÀÚ ¿À¹ö·Îµù
____7.1.3 ´ÜÇ× ¿¬»êÀÚ ¿À¹ö·Îµù
__7.2 ºñ±³ ¿¬»êÀÚ ¿À¹ö·Îµù
____7.2.1 µ¿µî¼º ¿¬»êÀÚ: "equals"
____7.2.2 ¼ø¼ ¿¬»êÀÚ: compareTo
____7.3 Ä÷º¼Ç°ú ¹üÀ§¿¡ ´ëÇØ ¾µ ¼ö ÀÖ´Â °ü·Ê
____7.3.1 À妽º·Î ¿ø¼Ò¿¡ Á¢±Ù: get°ú set
__7.3.3 in°ü·Ê
____7.3.3 rangeTo°ü·Ê
____7.3.4 for ·çÇÁ¸¦ À§ÇÑ iterator °ü·Ê
__7.4 ±¸Á¶ ºÐÇØ ¼±¾ð°ú component ÇÔ¼ö
____7.4.1 ±¸Á¶ ºÐÇØ ¼±¾ð°ú ·çÇÁ
__7.5 ÇÁ·ÎÆÛƼ Á¢±ÙÀÚ ·ÎÁ÷ ÀçȰ¿ë: À§ÀÓ ÇÁ·ÎÆÛƼ
____7.5.1 À§ÀÓ ÇÁ·ÎÆÛƼ ¼Ò°³
____7.5.2 À§ÀÓ ÇÁ·ÎÆÛƼ »ç¿ë: by lazy()¸¦ »ç¿ëÇÑ ÇÁ·ÎÆÛƼ ÃʱâÈ Áö¿¬
____7.5.3 À§ÀÓ ÇÁ·ÎÆÛƼ ±¸Çö
____7.5.4 À§ÀÓ ÇÁ·ÎÆÛƼ ÄÄÆÄÀÏ ±ÔÄ¢
____7.5.5 ÇÁ·ÎÆÛƼ °ªÀ» ¸Ê¿¡ ÀúÀå
____7.5.6 ÇÁ·¹ÀÓ¿öÅ©¿¡¼ À§ÀÓ ÇÁ·ÎÆÛƼ Ȱ¿ë
__7.6 ¿ä¾à
8Àå. °íÂ÷ ÇÔ¼ö: ÆÄ¶ó¹ÌÅÍ¿Í ¹Ýȯ °ªÀ¸·Î ¶÷´Ù »ç¿ë
__8.1 °íÂ÷ ÇÔ¼ö Á¤ÀÇ
____8.1.1 ÇÔ¼ö ŸÀÔ
____8.1.2 ÀÎÀÚ·Î ¹ÞÀº ÇÔ¼ö È£Ãâ
____8.1.3 ÀÚ¹Ù¿¡¼ ÄÚÆ²¸° ÇÔ¼ö ŸÀÔ »ç¿ë
____8.1.4 µðÆúÆ® °ªÀ» ÁöÁ¤ÇÑ ÇÔ¼ö ŸÀÔ ÆÄ¶ó¹ÌÅͳª ³ÎÀÌ µÉ ¼ö ÀÖ´Â ÇÔ¼ö ŸÀÔ ÆÄ¶ó¹ÌÅÍ
____8.1.5 ÇÔ¼ö¸¦ ÇÔ¼ö¿¡¼ ¹Ýȯ
____8.1.6 ¶÷´Ù¸¦ Ȱ¿ëÇÑ Áߺ¹ Á¦°Å
__8.2 ÀζóÀÎ ÇÔ¼ö: ¶÷´ÙÀÇ ºÎ°¡ ºñ¿ë ¾ø¾Ö±â
____8.2.1 ÀζóÀÌ´×ÀÌ ÀÛµ¿ÇÏ´Â ¹æ½Ä
____8.2.2 ÀζóÀÎ ÇÔ¼öÀÇ ÇѰè
____8.2.3 Ä÷º¼Ç ¿¬»ê ÀζóÀÌ´×
____8.2.4 ÇÔ¼ö¸¦ ÀζóÀÎÀ¸·Î ¼±¾ðÇØ¾ß ÇÏ´Â °æ¿ì
____8.2.5 ÀÚ¿ø °ü¸®¸¦ À§ÇØ ÀζóÀÎµÈ ¶÷´Ù »ç¿ë
__8.3 °íÂ÷ ÇÔ¼ö ¾È¿¡¼ È帧 Á¦¾î
____8.3.1 ¶÷´Ù ¾ÈÀÇ return¹®: ¶÷´Ù¸¦ µÑ·¯½Ñ ÇÔ¼ö·ÎºÎÅÍ ¹Ýȯ
____8.3.2 ¶÷´Ù·ÎºÎÅÍ ¹Ýȯ: ·¹À̺íÀ» »ç¿ëÇÑ return
____8.3.3 ¹«¸í ÇÔ¼ö: ±âº»ÀûÀ¸·Î ·ÎÄà return
__8.4 ¿ä¾à
9Àå. Á¦³×¸¯½º
__9.1 Á¦³×¸¯ ŸÀÔ ÆÄ¶ó¹ÌÅÍ
____9.1.1 Á¦³×¸¯ ÇÔ¼ö¿Í ÇÁ·ÎÆÛƼ
____9.1.2 Á¦³×¸¯ Ŭ·¡½º ¼±¾ð
____9.1.3 ŸÀÔ ÆÄ¶ó¹ÌÅÍ Á¦¾à
____9.1.4 ŸÀÔ ÆÄ¶ó¹ÌÅ͸¦ ³ÎÀÌ µÉ ¼ö ¾ø´Â ŸÀÔÀ¸·Î ÇÑÁ¤
__9.2 ½ÇÇà ½Ã Á¦³×¸¯½ºÀÇ µ¿ÀÛ: ¼Ò°ÅµÈ ŸÀÔ ÆÄ¶ó¹ÌÅÍ¿Í ½ÇÃ¼ÈµÈ Å¸ÀÔ ÆÄ¶ó¹ÌÅÍ
____9.2.1 ½ÇÇà ½ÃÁ¡ÀÇ Á¦³×¸¯: ŸÀÔ °Ë»ç¿Í ij½ºÆ®
____9.2.2 ½ÇüÈÇÑ Å¸ÀÔ ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇÑ ÇÔ¼ö ¼±¾ð
____9.2.3 ½ÇüÈÇÑ Å¸ÀÔ ÆÄ¶ó¹ÌÅͷΠŬ·¡½º ÂüÁ¶ ´ë½Å
____9.2.4 ½ÇüÈÇÑ Å¸ÀÔ ÆÄ¶ó¹ÌÅÍÀÇ Á¦¾à
__9.3 º¯¼º: Á¦³×¸¯°ú ÇÏÀ§ ŸÀÔ
____9.3.1 º¯¼ºÀÌ ÀÖ´Â ÀÌÀ¯: ÀÎÀÚ¸¦ ÇÔ¼ö¿¡ ³Ñ±â±â
____9.3.2 Ŭ·¡½º, ŸÀÔ, ÇÏÀ§ ŸÀÔ
____9.3.3 °øº¯¼º: ÇÏÀ§ ŸÀÔ °ü°è¸¦ À¯Áö
____9.3.4 ¹Ý°øº¯¼º: µÚÁýÈù ÇÏÀ§ ŸÀÔ °ü°è
____9.3.5 »ç¿ë ÁöÁ¡ º¯¼º: ŸÀÔÀÌ ¾ð±ÞµÇ´Â ÁöÁ¡¿¡¼ º¯¼º ÁöÁ¤
____9.3.6 ½ºÅ¸ ÇÁ·ÎÁ§¼Ç: ŸÀÔ ÀÎÀÚ ´ë½Å * »ç¿ë
__9.4 ¿ä¾à
10Àå. ¾Ö³ëÅ×À̼ǰú ¸®Ç÷º¼Ç
__10.1 ¾Ö³ëÅ×ÀÌ¼Ç ¼±¾ð°ú Àû¿ë
____10.1.2 ¾Ö³ëÅ×ÀÌ¼Ç ´ë»ó
____10.1.3 ¾Ö³ëÅ×À̼ÇÀ» Ȱ¿ëÇÑ JSON Á÷·ÄÈ Á¦¾î
____10.1.4 ¾Ö³ëÅ×ÀÌ¼Ç ¼±¾ð
____10.1.5 ¸ÞŸ¾Ö³ëÅ×À̼Ç: ¾Ö³ëÅ×À̼ÇÀ» ó¸®ÇÏ´Â ¹æ¹ý Á¦¾î
____10.1.6 ¾Ö³ëÅ×ÀÌ¼Ç ÆÄ¶ó¹ÌÅͷΠŬ·¡½º »ç¿ë
____10.1.7 ¾Ö³ëÅ×ÀÌ¼Ç ÆÄ¶ó¹ÌÅÍ·Î Á¦³×¸¯ Ŭ·¡½º ¹Þ±â
__10.2 ¸®Ç÷º¼Ç: ½ÇÇà ½ÃÁ¡¿¡ ÄÚÆ²¸° °´Ã¼ ³»ºÎ °üÂû
____10.2.1 ÄÚÆ²¸° ¸®Ç÷º¼Ç API: KClass, KCallable, KFunction, KProperty
____10.2.2 ¸®Ç÷º¼ÇÀ» »ç¿ëÇÑ °´Ã¼ Á÷·ÄÈ ±¸Çö
____10.2.3 ¾Ö³ëÅ×À̼ÇÀ» Ȱ¿ëÇÑ Á÷·ÄÈ Á¦¾î
____10.2.4 JSON ÆÄ½Ì°ú °´Ã¼ ¿ªÁ÷·ÄÈ
____10.2.5 ÃÖÁ¾ ¿ªÁ÷·ÄÈ ´Ü°è: callBy(), ¸®Ç÷º¼ÇÀ» »ç¿ëÇØ °´Ã¼ ¸¸µé±â
__10.3 ¿ä¾à
11Àå. DSL ¸¸µé±â
__11.1 API¿¡¼ DSL·Î
____11.1.1 ¿µ¿ª Æ¯È ¾ð¾î¶ó´Â °³³ä
____11.1.2 ³»ºÎ DSL
____11.1.3 DSLÀÇ ±¸Á¶
____11.1.4 ³»ºÎ DSL·Î HTML ¸¸µé±â
__11.2 ±¸Á¶ÈµÈ API ±¸Ãà: DSL¿¡¼ ¼ö½Å °´Ã¼ ÁöÁ¤ DSL »ç¿ë
____11.2.1 ¼ö½Å °´Ã¼ ÁöÁ¤ ¶÷´Ù¿Í È®Àå ÇÔ¼ö ŸÀÔ
____11.2.2 ¼ö½Å °´Ã¼ ÁöÁ¤ ¶÷´Ù¸¦ HTML ºô´õ ¾È¿¡¼ »ç¿ë
____11.2.3 ÄÚÆ²¸° ºô´õ: Ãß»óÈ¿Í Àç»ç¿ëÀ» °¡´ÉÇÏ°Ô ÇÏ´Â µµ±¸
__11.3 invoke °ü·Ê¸¦ »ç¿ëÇÑ ´õ À¯¿¬ÇÑ ºí·Ï Áßø
____11.3.1 invoke °ü·Ê: ÇÔ¼öó·³ È£ÃâÇÒ ¼ö ÀÖ´Â °´Ã¼
____11.3.2 invoke °ü·Ê¿Í ÇÔ¼öÇü ŸÀÔ
____11.3.3 DSLÀÇ invoke °ü·Ê: ±×·¹À̵鿡¼ ÀÇÁ¸°ü°è Á¤ÀÇ
__11.4 ½ÇÀü ÄÚÆ²¸° DSL
____11.4.1 ÁßÀ§ È£Ãâ ¿¬¼â: Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©ÀÇ should
____11.4.2 ±âº» ŸÀÔ¿¡ ´ëÇÑ È®Àå ÇÔ¼ö Á¤ÀÇ: ³¯Â¥ ó¸®
____11.4.3 ¸â¹ö È®Àå ÇÔ¼ö: SQLÀ» À§ÇÑ ³»ºÎ DSL
____11.4.4 ¾ÈÄÚ: ¾Èµå·ÎÀ̵å UI¸¦ µ¿ÀûÀ¸·Î »ý¼ºÇϱâ
__11.5 ¿ä¾à
ºÎ·Ï A. ÄÚÆ²¸° ÇÁ·ÎÁ§Æ® ºôµå
__A.1 ±×·¹À̵é·Î ÄÚÆ²¸° ÄÚµå ºôµå
__A.2 ¸ÞÀ̺ìÀ¸·Î ÄÚÆ²¸° ÇÁ·ÎÁ§Æ® ºôµå
__A.3 ¾ØÆ®·Î ÄÚÆ²¸° ÄÚµå ºôµå
ºÎ·Ï B. ÄÚÆ²¸° ÄÚµå ¹®¼È
__B.1 ÄÚÆ²¸° ¹®¼È ÁÖ¼® ÀÛ¼º
__B.2 API ¹®¼ »ý¼º
ºÎ·Ï C. ÄÚÆ²¸° ¿¡ÄڽýºÅÛ
__C.1 Å×½ºÆÃ
__C.2 ÀÇÁ¸°ü°è ÁÖÀÔ
__C.3 JSON Á÷·ÄÈ
__C.4 HTTP Ŭ¶óÀ̾ðÆ®
__C.5 À¥ ¾ÖÇø®ÄÉÀ̼Ç
__C.6 µ¥ÀÌÅͺ£À̽º Á¢±Ù
__C.7 À¯Æ¿¸®Æ¼¿Í µ¥ÀÌÅÍ ±¸Á¶
__C.8 µ¥½ºÅ©Å¾ ÇÁ·Î±×·¡¹Ö
ºÎ·Ï D. ÄÚÆ²¸° 1.1°ú 1.2, 1.3 ¼Ò°³
__D.1 ÄÚÆ²¸° 1.1
__D.2 ÄÚÆ²¸° 1.2
__D.3 ÄÚÆ²¸° 1.3
ºÎ·Ï E. ÄÚ·çÆ¾°ú Async/Await
__E.1 ÄÚ·çÆ¾À̶õ?
__E.2 ÄÚÆ²¸°ÀÇ ÄÚ·çÆ¾ Áö¿ø: ÀϹÝÀûÀÎ ÄÚ·çÆ¾
__E.3 suspend Ű¿öµå¿Í ÄÚÆ²¸°ÀÇ ÀϽà Áß´Ü ÇÔ¼ö ÄÄÆÄÀÏ ¹æ¹ý
__E.4 ÄÚ·çÆ¾ ºô´õ ¸¸µé±â
__E.5 °á·Ð
ºÎ·Ï F. ÄÚÆ²¸°/JS
__F.1 ÄÚÆ²¸°/JS ÇÁ·ÎÁ§Æ® ±âº» ¼³Á¤
__F.2 Hello, World!
__F.3 ÄÚÆ²¸°¿¡¼ DOM¿¡ Á¢±Ù
__F.4 js() ÇÔ¼ö¿Í dynamic ŸÀÔ, external º¯È¯ÀÚ
__F.5 ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼ ÄÚÆ²¸° È£Ãâ
__F.6 º¹ÀâÇÑ ¿¹Á¦: HTML ºô´õ, jQuery ¶óÀ̺귯¸® »ç¿ë ¿¹Á¦
__F.7 ¿ÜºÎ ¶óÀ̺귯¸®¿¡ ´ëÇÑ ÄÚÆ²¸°/JS ·¡ÆÛ
__F.8 °á·Ð
ÃâÆÇ»ç ¼Æò¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
¾î´À Á¤µµ ÀÚ¹Ù °æÇèÀÌ ÀÖ´Â °³¹ßÀÚ¸¦ ÁÖ¿ä ´ë»óÀ¸·Î ÇÑ´Ù. ÄÚÆ²¸°Àº ÀÚ¹Ù¿¡ ÀÖ´Â ¿©·¯ °³³ä°ú ±â¹ý À§¿¡ ¸¸µé¾îÁ³°í, ÀÌ Ã¥Àº µ¶ÀÚµéÀÌ ÄÚÆ²¸°À» ºü¸£°Ô ¹è¿ï ¼ö ÀÖµµ·Ï µ¶ÀÚµéÀÇ ±âÁ¸ Áö½ÄÀ» Ȱ¿ëÇÑ´Ù. ÀÚ¹Ù¸¦ ¹è¿î Áö ¾ó¸¶ µÇÁö ¾Ê¾Ò°Å³ª C#À̳ª ÀÚ¹Ù ½ºÅ©¸³Æ®¿Í °°Àº ´Ù¸¥ ¾ð¾î¿¡ ´ëÇÑ °æÇèÀº ÀÖÁö¸¸ ÀÚ¹Ù¸¦ Àß ¸ð¸£´Â µ¶ÀÚµéÀº ÄÚÆ²¸°°ú JVMÀÇ »óÈ£ÀÛ¿ëÀÇ º¹ÀâÇÑ Ãø¸éÀ» ÀÌÇØÇϱâ À§ÇØ ´Ù¸¥ ÀÚ·á°¡ ÇÊ¿äÇÒ °ÍÀÌ´Ù. ÇÏÁö¸¸ ±×·± µ¶ÀÚ¶óµµ ¿©ÀüÈ÷ ÀÌ Ã¥À» »ç¿ëÇØ ÄÚÆ²¸°À» ¹è¿ï ¼ö ÀÖ´Ù. ¿ì¸®´Â ÄÚÆ²¸° ¾ð¾î Àüü¸¦ ´Ù·ç¸ç, Ưº°È÷ ±¸Ã¼ÀûÀÎ ¿µ¿ª¿¡ ÃÊÁ¡À» ¸ÂÃßÁö´Â ¾Ê´Â´Ù. µû¶ó¼ ÀÌ Ã¥Àº ¼¹ö °³¹ßÀÚ³ª ¾Èµå·ÎÀÌµå °³¹ßÀÚ, ¶Ç´Â JVM¿¡¼ ½ÇÇàµÉ ÇÁ·ÎÁ§Æ®¸¦ ±¸ÃàÇÏ´Â ¸ðµç °³¹ßÀÚ¿¡°Ô µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
ÀÌ Ã¥Àº 2ºÎ·Î ±¸¼ºÇß°í, 1ºÎ¿¡¼´Â ÄÚÆ²¸°À» ±âÁ¸ ¶óÀ̺귯¸®³ª API¿Í ÇÔ²² »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
1ºÎ´Â ÄÚÆ²¸°À» ±âÁ¸ ¶óÀ̺귯¸®³ª API¿Í ÇÔ²² »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
1ÀåÀº ÄÚÆ²¸°ÀÇ ÇÙ½É ¸ñÇ¥, °¡Ä¡, Àû¿ë ¿µ¿ª¿¡ ´ëÇØ ¾Ë·ÁÁØ´Ù. ¶ÇÇÑ ÄÚÆ²¸° Äڵ带 ½ÇÇàÇÏ´Â ¿©·¯ °¡Áö ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
2ÀåÀº ¸ðµç ÄÚÆ²¸° ÇÁ·Î±×·¥ÀÇ ÇÙ½É ¿ä¼ÒÀÎ Á¦¾î ±¸Á¶, º¯¼ö, ÇÔ¼ö ¼±¾ð µîÀ» ¼³¸íÇÑ´Ù.
3ÀåÀº ÄÚÆ²¸°¿¡¼ ÇÔ¼ö¸¦ Á¤ÀÇÇÏ´Â ¹æ¹ýÀ» ÀÚ¼¼È÷ ´Ù·ç°í, È®Àå ÇÔ¼ö(extension function)¿Í ÇÁ·ÎÆÛƼ(property) °³³äÀ» ¼Ò°³ÇÑ´Ù.
4ÀåÀº Ŭ·¡½º ¼±¾ð¿¡ ÃÊÁ¡À» ¸ÂÃç ¼³¸íÇϰí, µ¥ÀÌÅÍ Å¬·¡½º(data class)¿Í µ¿¹Ý °´Ã¼(companion object)¿¡ ´ëÇØ ´Ù·é´Ù.
5ÀåÀº ÄÚÆ²¸° ¶÷´Ù(lambda) »ç¿ë¹ýÀ» ¼³¸íÇÏ°í ¶÷´Ù¸¦ »ç¿ëÇÏ´Â ÄÚÆ²¸° Ç¥ÁØ ¶óÀ̺귯¸® ÇÔ¼ö¸¦ ¸î °¡Áö º¸¿©ÁØ´Ù.
6ÀåÀº ÄÚÆ²¸° ŸÀÔ ½Ã½ºÅÛ¿¡ ´ëÇØ ´Ù·é´Ù. ƯÈ÷ ³Î °¡´É¼º(nullability)°ú Ä÷º¼Ç¿¡ ÃÊÁ¡À» ¸ÂÃç ¼³¸íÇÑ´Ù.
2ºÎ´Â ¿©·¯ºÐ ÀÚ½ÅÀÌ ÄÚÆ²¸°À» Ȱ¿ëÇØ API¸¦ ¼±¾ðÇϰí Ãß»óȸ¦ Á¤ÀÇÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁÖ°í, ÄÚÆ²¸° ¾ð¾îÀÇ ´õ ±íÀº Ư¼ºÀ» ´Ù·é´Ù.
7ÀåÀº °ü·Ê(convention)¶ó´Â ¿ø¸®¸¦ ¼³¸íÇÑ´Ù. °ü·Ê´Â ¹Ì¸® Á¤ÇØÁø À̸§ÀÎ ÇÔ¼ö³ª ÇÁ·ÎÆÛƼ¿¡ Ưº°ÇÑ Àǹ̸¦ ºÎ¿©ÇÑ´Ù. ¶ÇÇÑ À§ÀÓ ÇÁ·ÎÆÛƼ(delegated property)¶ó´Â °³³äÀ» ¼Ò°³ÇÑ´Ù.
8ÀåÀº ÇÔ¼ö¸¦ ÆÄ¶ó¹ÌÅÍ·Î ¹Þ°Å³ª ÇÔ¼ö¸¦ ¹ÝȯÇÏ´Â ÇÔ¼öÀÎ °íÂ÷ ÇÔ¼ö¸¦ ¼±¾ðÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. ¶ÇÇÑ ÀζóÀÎ ÇÔ¼ö °³³äÀ» ¼Ò°³ÇÑ´Ù.
9ÀåÀº ÄÚÆ²¸° Á¦³×¸¯½º °³³äÀ» ÀÚ¼¼È÷ ´Ù·é´Ù. ¸ÕÀú ±âº» ¹®¹ýÀ» ¼³¸íÇÏ°í ½ÇüÈÇÑ(reified) ŸÀÔ ÆÄ¶ó¹ÌÅͳª ŸÀÔ º¯¼º(type variance)°ú °°Àº ´õ ¾î·Á¿î ÁÖÁ¦¸¦ ¼³¸íÇÑ´Ù.
10ÀåÀº Á¦ÀÌ۵å(JKid)¶ó´Â ½ÇÀü¿¡ °¡´ÉÇÑ ÀÛÀº JSON Á÷·ÄÈ ¶óÀ̺귯¸®¸¦ ÅëÇØ ¾Ö³ëÅ×À̼ǰú ¸®Ç÷º¼Ç »ç¿ë¹ýÀ» ´Ù·é´Ù.
11ÀåÀº ¿µ¿ª Æ¯È ¾ð¾î DSL °³³äÀ» ¼Ò°³Çϰí, ÄÚÆ²¸°ÀÇ DSL Áö¿ø ±â´ÉÀ» ¼³¸íÇϸç, ¿©·¯ DSL¿¹Á¦¸¦ »ìÆìº»´Ù.
¶ÇÇÑ 4°³ÀÇ ºÎ·ÏÀÌ ÀÖ´Ù.
ºÎ·Ï A´Â ±×·¹À̵é(Gradle), ¸ÞÀ̺ì(Maven), ¾ØÆ®(Ant)¿¡¼ ÄÚÆ²¸° Äڵ带 ºôµåÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
ºÎ·Ï B´Â ÄÚÆ²¸° ¸ðµâ¿¡ ´ëÇØ ¹®¼È ÁÖ¼®À» »ç¿ëÇÏ´Â ¹æ¹ý°ú API ¹®¼¸¦ »ý¼ºÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù.
ºÎ·Ï C´Â ÄÚÆ²¸° ¿¡ÄڽýºÅÛ¿¡ ÀÖ´Â ¿©·¯ ¶óÀ̺귯¸®³ª ÇÁ·¹ÀÓ¿öÅ©¸¦ ¼Ò°³Çϰí ÃֽŠÁ¤º¸¸¦ ¿Â¶óÀο¡¼ ¾ò´Â ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù.
ºÎ·Ï D~F´Â Çѱ¹¾îÆÇ¿¡¸¸ Ãß°¡ÇÑ °ÍÀ¸·Î ÇöÀç(2019³â 5¿ù)±îÁö ÄÚÆ²¸°ÀÇ º¯È¸¦ Á¤¸®Çϰí, ÄÚ·çÆ¾°ú ÄÚÆ²¸°/JS °³¹ß¿¡ ´ëÇØ ¼Ò°³ÇÑ´Ù.
ÀÌ Ã¥Àº Àüü¸¦ Â÷·Ê´ë·Î ÀÐÀ» ¶§ °¡Àå È¿°ú°¡ ÁÁ´Ù. ÇÏÁö¸¸ °ü½É ºÐ¾ß¸¦ ´Ù·ç´Â ÀåÀ» ã¾Æ¼ Àаųª Àß ¸ð¸£´Â °³³äÀ» ¸¶ÁÖÄ¥ ¶§ »öÀÎÀ» ÅëÇØ ÇÊ¿äÇÑ ºÎºÐÀ» ã¾Æº¸¸é¼ ÀÌ Ã¥À» Ȱ¿ëÇÏ´Â °Íµµ ÁÁ´Ù. |
±³È¯ ¹× ȯºÒ °¡´É |
»óǰ¿¡ ¹®Á¦°¡ ÀÖÀ» °æ¿ì |
1) »óǰÀÌ Ç¥½Ã/±¤°íµÈ ³»¿ë°ú ´Ù¸£°Å³ª ºÒ·®(ºÎÆÐ, º¯Áú, ÆÄ¼Õ, Ç¥±â¿À·ù, À̹°È¥ÀÔ, Áß·®¹Ì´Þ)ÀÌ ¹ß»ýÇÑ °æ¿ì - ½Å¼±½Äǰ, ³ÃÀå½Äǰ, ³Ãµ¿½Äǰ : ¼ö·ÉÀÏ ´ÙÀ½³¯±îÁö ½Åû - ±âŸ »óǰ : ¼ö·ÉÀϷκÎÅÍ 30ÀÏ À̳», ±× »ç½ÇÀ» ¾È ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏ À̳» ½Åû 2) ±³È¯ ¹× ȯºÒ½Åû ½Ã ÆÇ¸ÅÀÚ´Â »óǰÀÇ »óŸ¦ È®ÀÎÇÒ ¼ö ÀÖ´Â »çÁøÀ» ¿äûÇÒ ¼ö ÀÖÀ¸¸ç »óǰÀÇ ¹®Á¦ Á¤µµ¿¡ µû¶ó Àç¹è¼Û, ÀϺÎȯºÒ, ÀüüȯºÒÀÌ ÁøÇàµË´Ï´Ù. ¹Ýǰ¿¡ µû¸¥ ºñ¿ëÀº ÆÇ¸ÅÀÚ ºÎ´ãÀ̸ç ȯºÒÀº ¹ÝǰµµÂøÀϷκÎÅÍ ¿µ¾÷ÀÏ ±âÁØ 3ÀÏ À̳»¿¡ ¿Ï·áµË´Ï´Ù. |
´Ü¼øº¯½É ¹× ÁÖ¹®Âø¿ÀÀÇ °æ¿ì |
1) ½Å¼±½Äǰ, ³ÃÀå½Äǰ, ³Ãµ¿½Äǰ ÀçÆÇ¸Å°¡ ¾î·Á¿î »óǰÀÇ Æ¯¼º»ó, ±³È¯ ¹× ȯºÒÀÌ ¾î·Æ½À´Ï´Ù. 2) ÈÀåǰ ÇǺΠƮ·¯ºí ¹ß»ý ½Ã Àü¹®ÀÇ Áø´Ü¼ ¹× ¼Ò°ß¼¸¦ Á¦ÃâÇϽøé ȯºÒ °¡´ÉÇÕ´Ï´Ù. ÀÌ °æ¿ì Á¦¹Ýºñ¿ëÀº ¼ÒºñÀÚ ºÎ´ãÀ̸ç, ¹è¼Ûºñ´Â ÆÇ¸ÅÀÚ°¡ ºÎ´ãÇÕ´Ï´Ù. ÇØ´ç ÈÀåǰ°ú ÇǺΠƮ·¯ºí°úÀÇ »ó´çÇÑ Àΰú°ü°è°¡ ÀÎÁ¤µÇ´Â °æ¿ì ¶Ç´Â Áúȯġ·á ¸ñÀûÀÇ °æ¿ì¿¡´Â Áø´Ü¼ ¹ß±Þºñ¿ëÀ» ÆÇ¸ÅÀÚ°¡ ºÎ´ãÇÕ´Ï´Ù. 3) ±âŸ »óǰ ¼ö·ÉÀϷκÎÅÍ 7ÀÏ À̳» ½Åû, ¿Õº¹¹è¼Ûºñ´Â ¼ÒºñÀÚ ºÎ´ã 4) ¸ð´ÏÅÍ ÇØ»óµµÀÇ Â÷ÀÌ·Î »ö»óÀ̳ª À̹ÌÁö°¡ ´Ù¸¥ °æ¿ì ´Ü¼øº¯½É¿¡ ÀÇÇÑ ±³È¯ ¹× ȯºÒÀÌ Á¦ÇÑµÉ ¼ö ÀÖ½À´Ï´Ù. |
|
±³È¯ ¹× ȯºÒ ºÒ°¡ |
1) ½Åû±âÇÑÀÌ Áö³ °æ¿ì 2) ¼ÒºñÀÚÀÇ °ú½Ç·Î ÀÎÇØ »óǰ ¹× ±¸¼ºÇ°ÀÇ Àüü ¶Ç´Â ÀϺΰ¡ ¾ø¾îÁö°Å³ª ÈѼÕ, ¿À¿°µÇ¾úÀ» °æ¿ì 3) °³ºÀÇÏ¿© ÀÌ¹Ì ¼·ÃëÇÏ¿´°Å³ª »ç¿ë(Âø¿ë ¹× ¼³Ä¡ Æ÷ÇÔ)ÇØ »óǰ ¹× ±¸¼ºÇ°ÀÇ °¡Ä¡°¡ ¼Õ»óµÈ °æ¿ì 4) ½Ã°£ÀÌ °æ°úÇÏ¿© »óǰÀÇ °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì 5) »ó¼¼Á¤º¸ ¶Ç´Â »ç¿ë¼³¸í¼¿¡ ¾È³»µÈ ÁÖÀÇ»çÇ× ¹× º¸°ü¹æ¹ýÀ» ÁöŰÁö ¾ÊÀº °æ¿ì 6) »çÀü¿¹¾à ¶Ç´Â ÁÖ¹®Á¦ÀÛÀ¸·Î ÅëÇØ ¼ÒºñÀÚÀÇ ÁÖ¹®¿¡ µû¶ó °³º°ÀûÀ¸·Î »ý»êµÇ´Â »óǰÀÌ ÀÌ¹Ì Á¦ÀÛÁøÇàµÈ °æ¿ì 7) º¹Á¦°¡ °¡´ÉÇÑ »óǰ µîÀÇ Æ÷ÀåÀ» ÈѼÕÇÑ °æ¿ì 8) ¸À, Çâ, »ö µî ´Ü¼ø ±âÈ£Â÷ÀÌ¿¡ ÀÇÇÑ °æ¿ì |