Ã¥¼Ò°³
¡®ºò ³Êµå ·£Ä¡¡¯ÀÇ Ç³ºÎÇÑ ¼ÒÇÁÆ®¿þ¾î ±³À°°ú °³¹ß ³ëÇÏ¿ì°¡ ´ã±ä ÄÚƲ¸° ¼Àû!ÄÚƲ¸°Àº ÀÚ¹Ù¿Í »óÈ£ ¿î¿ëµÇ°í ±¸±Û ¾Èµå·ÎÀÌµå ½Ã½ºÅÛ¿¡¼ ¿Ïº®ÇÏ°Ô Áö¿øµÇµµ·Ï ¼³°èµÈ Á¤Àû ŸÀÔ ¾ð¾îÀÌ´Ù. ÀÌ Ã¥Àº ºò ³Êµå ·£Ä¡(www.bignerdranch.com)ÀÇ ÄÚƲ¸° ÇÙ½É ±³À° °úÁ¤À» ±â¹ÝÀ¸·Î Àú¼úµÇ¾úÀ¸¸ç, ÄÚƲ¸°ÀÇ ÇÙ½É °³³ä°ú API¿¡ ´ëÇÑ ¸íÄèÇÑ ¼³¸í ¹× ½Ç½À ¿¹Á¦¸¦ ÅëÇؼ µ¶ÀÚ ¿©·¯ºÐÀÌ ÁÖ¸ñ¹Þ°í ÀÖ´Â ÄÚƲ¸° ¾ð¾î¸¦ È¿À²ÀûÀ¸·Î ¹è¿ì°í »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» °¡¸£ÃÄ ÁØ´Ù. ¶ÇÇÑ, Á¬ºê·¹ÀÎÁîÀÇ ÀÎÅÚ¸®Á¦ÀÌ(IntelliJ IDEA)¿Í ¾Èµå·ÎÀÌµå ½ºÆ©µð¿À¸¦ »ç¿ëÇؼ ÄÚƲ¸° Äڵ带 ÀÛ¼ºÇÏ´Â °³¹ß ȯ°æµµ ¾Ë·Á ÁØ´Ù.
¸ñÂ÷
CHAPTER 1 ù ¹ø° ÄÚƲ¸° ¾ÖÇø®ÄÉÀÌ¼Ç ÀÛ¼ºÇϱâ 1ÀÎÅÚ¸®Á¦ÀÌ ¼³Ä¡Çϱâ ...... 1ù ¹ø° ÄÚƲ¸° ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ ...... 2ÄÚƲ¸° REPL ...... 9±Ã±ÝÁõ ÇؼÒÇϱâ: ¿Ö ÀÎÅÚ¸®Á¦À̸¦ »ç¿ëÇÒ±î? ...... 11±Ã±ÝÁõ ÇؼÒÇϱâ: JVM¿¡¼ ½ÇÇàÇϱâ ...... 11縰Áö: REPL·Î »ê¼ú ¿¬»êÀÚ Å×½ºÆ®Çϱâ ...... 12
CHAPTER 2 º¯¼ö, »ó¼ö, ŸÀÔ 13ŸÀÔ ...... 13º¯¼ö ¼±¾ðÇϱâ ...... 14ÄÚƲ¸°ÀÇ ³»Àå ŸÀÔ ...... 16Àбâ Àü¿ë º¯¼ö ...... 17ŸÀÔ Ãß·Ð ...... 20ÄÄÆÄÀÏ ½ÃÁ¡ »ó¼ö ...... 22ÄÚƲ¸° ¹ÙÀÌÆ®ÄÚµå »ìÆ캸±â ...... 23±Ã±ÝÁõ ÇؼÒÇϱâ: ÄÚƲ¸°ÀÇ ÀÚ¹Ù ±âº» ŸÀÔ ...... 25縰Áö: hasSteed ...... 27縰Áö: À¯´ÏÄÜÀÇ »Ô ...... 27縰Áö: ¸¶¹ýÀÇ °Å¿ï ...... 28
CHAPTER 3 Á¶°Ç¹®°ú Á¶°Ç½Ä 29if/else ¹® ...... 30¹üÀ§ ...... 42when Ç¥Çö½Ä ...... 43¹®ÀÚ¿ ÅÛÇø´ ...... 45縰Áö: ¹üÀ§¿¡ °üÇØ Ãß°¡·Î ¾Ë¾Æº¸±â ...... 47縰Áö: ¾Æ¿ì¶ó °ü·Ã ÄÚµå °³¼±Çϱâ ...... 48縰Áö: ±¸¼º °¡´ÉÇÑ Çü½ÄÀÇ »óÅ Ãâ·Â ...... 49
CHAPTER 4 ÇÔ¼ö 51±âÁ¸ Äڵ带 ÇÔ¼ö·Î ¸¸µé±â ...... 51ÇÔ¼öÀÇ ±¸Á¶ ...... 54ÇÔ¼ö È£ÃâÇϱâ ...... 58ÇÔ¼öµé·Î ¸®ÆÑÅ͸µÇϱâ ...... 60¿ì¸®ÀÇ ÇÔ¼ö ÀÛ¼ºÇϱâ ...... 62±âº» ÀÎÀÚ ...... 63´ÜÀÏ Ç¥Çö½Ä ÇÔ¼ö ...... 65Unit ÇÔ¼ö ...... 66Áö¸í ÇÔ¼ö ÀÎÀÚ ...... 67±Ã±ÝÁõ ÇؼÒÇϱâ: Nothing ŸÀÔ ...... 68±Ã±ÝÁõ ÇؼÒÇϱâ: ÀÚ¹ÙÀÇ ÆÄÀÏ ¼öÁØ ÇÔ¼ö ...... 70±Ã±ÝÁõ ÇؼÒÇϱâ: ÇÔ¼ö ¿À¹ö·Îµù ...... 72±Ã±ÝÁõ ÇؼÒÇϱâ: ¹éƽ ÇÔ¼ö À̸§ ...... 73縰Áö: ´ÜÀÏ Ç¥Çö½Ä ÇÔ¼ö ...... 75
CHAPTER 5 À͸í ÇÔ¼ö¿Í ÇÔ¼ö ŸÀÔ 77À͸í ÇÔ¼ö ...... 77ŸÀÔ Ãß·Ð Áö¿ø ...... 84ÇÔ¼ö¸¦ ÀÎÀÚ·Î ¹Þ´Â ÇÔ¼ö Á¤ÀÇÇϱâ ...... 86ÀζóÀÎ ÇÔ¼ö·Î ¸¸µé±â ...... 88ÇÔ¼ö ÂüÁ¶ ...... 90¹Ýȯ ŸÀÔÀ¸·Î ÇÔ¼ö ŸÀÔ »ç¿ëÇϱâ ...... 91±Ã±ÝÁõ ÇؼÒÇϱâ: ÄÚƲ¸°ÀÇ ¶÷´Ù´Â Ŭ·ÎÀú´Ù ...... 93±Ã±ÝÁõ ÇؼÒÇϱâ: ¶÷´Ù vs ÀÍ¸í ³»ºÎ Ŭ·¡½º ...... 94
CHAPTER 6 null ¾ÈÀü°ú ¿¹¿Ü 97ÄÚƲ¸°ÀÇ null ó¸® °³¿ä ...... 97ÄÚƲ¸°ÀÇ ¸í½ÃÀû null ŸÀÔ ...... 99¿¡·¯ °ËÃâ ½ÃÁ¡(ÄÄÆÄÀÏ VS ·±Å¸ÀÓ) ...... 101null ¾ÈÀü ó¸® ...... 101¿¹¿Ü ...... 109ÀüÁ¦ Á¶°Ç ...... 114null: ¹«¾ùÀÌ ÁÁÀ»±î? ...... 116±Ã±ÝÁõ ÇؼÒÇϱâ: checked ¿¹¿Ü¿Í unchecked ¿¹¿Ü ...... 117±Ã±ÝÁõ ÇؼÒÇϱâ: ´Ù¸¥ ¾ð¾îÀÇ Äڵ带 °°ÀÌ »ç¿ëÇÒ ¶§ÀÇ null ó¸® ...... 118
CHAPTER 7 ¹®ÀÚ¿ 121ºÎºÐ ¹®ÀÚ¿ ÃßÃâÇϱâ ...... 121¹®ÀÚ¿ º¯°æÇϱâ ...... 126¹®ÀÚ¿ ºñ±³ ...... 129±Ã±ÝÁõ ÇؼÒÇϱâ: À¯´ÏÄÚµå ...... 130±Ã±ÝÁõ ÇؼÒÇϱâ: ¹®ÀÚ¿ÀÇ °¢ ¹®ÀÚ¸¦ Çϳª¾¿ ó¸®Çϱâ ...... 131縰Áö: toDragonSpeak ÇÔ¼ö °³¼±Çϱâ ...... 132
CHAPTER 8 ¼ýÀÚ 133¼ýÀÚ Å¸ÀÔ ...... 133Á¤¼ö ...... 134¼Ò¼ö ...... 136¹®ÀÚ¿À» ¼ýÀÚ Å¸ÀÔÀ¸·Î º¯È¯Çϱâ ...... 137Int ŸÀÔÀ» Double ŸÀÔÀ¸·Î º¯È¯Çϱâ ...... 138Double ŸÀÔ °ªÀÇ Çü½Ä ÁöÁ¤Çϱâ ...... 140Double ŸÀÔ °ªÀ» Int ŸÀÔ °ªÀ¸·Î º¯È¯Çϱâ ...... 141±Ã±ÝÁõ ÇؼÒÇϱâ: ºñÆ® ¿¬»ê ...... 142縰Áö: ÀÜ¾× ºÎÁ· ó¸®Çϱâ ...... 143
CHAPTER 9 Ç¥ÁØ ÇÔ¼ö 145apply ...... 145let ...... 147run ...... 148with ...... 150also ...... 150takeIf ...... 151Ç¥ÁØ ¶óÀ̺귯¸® ÇÔ¼ö »ç¿ëÇϱâ ...... 153
CHAPTER 10 List¿Í Set 155List ...... 155¹Ýº¹ ó¸® ...... 165ÆÄÀÏ µ¥ÀÌÅ͸¦ ÀÐ¾î¼ List¿¡ ³Ö±â ...... 169ÇØü ¼±¾ð ...... 172Set ...... 172while ·çÇÁ ...... 177break Ç¥Çö½Ä ...... 179Ä÷º¼Ç º¯È¯ ...... 180±Ã±ÝÁõ ÇؼÒÇϱâ: ¹è¿ ŸÀÔ ...... 181±Ã±ÝÁõ ÇؼÒÇϱâ: Àбâ Àü¿ë vs º¯°æ ºÒ°¡´É ...... 182縰Áö: Á¤ÇüÈµÈ ¼úÁý ¸Þ´º ...... 183
CHAPTER 11 Map 185Map »ý¼ºÇϱâ ...... 185Map¿¡¼ °ª °¡Á®¿À±â ...... 188Map¿¡ Ç׸ñ Ãß°¡Çϱâ ...... 189MapÀÇ °ª º¯°æÇϱâ ...... 191縰Áö: ¼úÁý ¹®Áö±â ...... 195
CHAPTER 12 Ŭ·¡½º Á¤ÀÇÇϱâ 197Ŭ·¡½º Á¤ÀÇÇϱâ ...... 197ÀνºÅϽº »ý¼ºÇϱâ ...... 198Ŭ·¡½º ÇÔ¼ö ...... 199°¡½Ã¼º°ú ĸ½¶È ...... 200Ŭ·¡½º ¼Ó¼º ...... 202NyetHack ÄÚµå ¸®ÆÑÅ͸µÇϱâ ...... 209ÆÐÅ°Áö »ç¿ëÇϱâ ...... 217±Ã±ÝÁõ ÇؼÒÇϱâ: var°ú val ¼Ó¼ºÀÇ ³»ºÎ ±¸Çö ...... 220±Ã±ÝÁõ ÇؼÒÇϱâ: °æÇÕ »óÅ ¹æÁöÇϱâ ...... 223±Ã±ÝÁõ ÇؼÒÇϱâ: ÆÐÅ°Áö °¡½Ã¼º ...... 225
CHAPTER 13 ÃʱâÈ 227»ý¼ºÀÚ ...... 228ÃʱâÈ ºí·Ï ...... 234¼Ó¼º ÃʱâÈ ...... 235ÃʱâÈ ¼ø¼ ...... 239ÃʱâÈ Áö¿¬½ÃÅ°±â ...... 241±Ã±ÝÁõ ÇؼÒÇϱâ: ÃʱâÈ ¼ø¼¸¦ °í·ÁÇÑ ÄÚµå ÀÛ¼º ...... 244縰Áö: ¿¢½ºÄø®¹ö °ËÀÇ ºÒ°¡»çÀÇ ...... 247
CHAPTER 14 »ó¼Ó 249Room Ŭ·¡½º Á¤ÀÇÇϱâ ...... 249¼ºê Ŭ·¡½º »ý¼ºÇϱâ ...... 251ŸÀÔ °Ë»ç ...... 257ÄÚƲ¸° ŸÀÔÀÇ »ó¼Ó °èÃþ ...... 260±Ã±ÝÁõ ÇؼÒÇϱâ: Any Ŭ·¡½º ...... 263
CHAPTER 15 °´Ã¼ 267object Å°¿öµå ...... 267Áßø Ŭ·¡½º ...... 276µ¥ÀÌÅÍ Å¬·¡½º ...... 279enum Ŭ·¡½º ...... 284¿¬»êÀÚ ¿À¹ö·Îµù ...... 287NyetHack °ÔÀÓ ¼¼°è ŽÇèÇϱâ ...... 290±Ã±ÝÁõ ÇؼÒÇϱâ: °´Ã¼ÀÇ °ª ºñ±³Çϱâ ...... 293±Ã±ÝÁõ ÇؼÒÇϱâ: ADT ...... 296縰Áö: ¡®quit¡¯ ¸í·É ...... 299縰Áö: °ÔÀÓ ¼¼°è Áöµµ ±¸ÇöÇϱâ ...... 300縰Áö: Á¾À» Ä¡±â ...... 300
CHAPTER 16 ÀÎÅÍÆäÀ̽º¿Í Ãß»ó Ŭ·¡½º 301ÀÎÅÍÆäÀ̽º Á¤ÀÇÇϱâ ...... 301ÀÎÅÍÆäÀ̽º ±¸ÇöÇϱâ ...... 303±âº» ±¸Çö ...... 305Ãß»ó Ŭ·¡½º ...... 306NyetHackÀÇ ÀüÅõ ±â´É ...... 309
CHAPTER 17 Á¦³×¸¯ 315Á¦³×¸¯ ŸÀÔ Á¤ÀÇÇϱâ ...... 316Á¦³×¸¯ ÇÔ¼ö ...... 318º¹ÇÕ Á¦³×¸¯ ŸÀÔ ¸Å°³º¯¼ö ...... 320Á¦³×¸¯ ŸÀÔ Á¦¾à ...... 322vararg¿Í get ...... 323in°ú out ...... 326±Ã±ÝÁõ ÇؼÒÇϱâ: reified Å°¿öµå ...... 331
CHAPTER 18 È®Àå 335È®Àå ÇÔ¼ö Á¤ÀÇÇϱâ ...... 335Á¦³×¸¯ È®Àå ÇÔ¼ö ...... 338È®Àå ¼Ó¼º ...... 340null °¡´É ŸÀÔÀÇ È®Àå ÇÔ¼ö ...... 341È®Àå ÇÔ¼öÀÇ ¹ÙÀÌÆ®ÄÚµå ±¸Çö ...... 342È®Àå ÇÔ¼ö·Î ÃßÃâÇϱâ ...... 343È®Àå ÆÄÀÏ Á¤ÀÇÇϱâ ...... 345È®Àå ÇÔ¼ö À̸§ º¯°æÇϱâ ...... 347ÄÚƲ¸° Ç¥ÁØ ¶óÀ̺귯¸®ÀÇ È®Àå ÇÔ¼ö¿Í ¼Ó¼º ...... 348縰Áö: toDragonSpeak È®Àå ÇÔ¼ö ...... 349縰Áö: frameÀ» È®Àå ÇÔ¼ö·Î º¯°æÇϱâ ...... 349
CHAPTER 19 ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö 351ÇÔ¼ö À¯Çü ...... 352¿Ö ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀϱî? ...... 357½ÃÄö½º ...... 359±Ã±ÝÁõ ÇؼÒÇϱâ: ¼º´É ÃøÁ¤ ...... 361縰Áö: MapÀÇ Å°¿Í °ªÀ» ¹Ù²ãÄ¡±âÇϱâ ...... 362縰Áö: ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» Tavern.kt¿¡ Àû¿ëÇϱâ ...... 362縰Áö: ½½¶óÀ̵ù À©µµ ...... 363
CHAPTER 20 ÀÚ¹Ù¿ÍÀÇ »óÈ£¿î¿ë 365Àڹ٠Ŭ·¡½º¿Í »óÈ£¿î¿ëÇϱâ ...... 366»óÈ£¿î¿ë°ú null ó¸® ...... 367ŸÀÔ ¸ÅÇÎ ...... 371°ÔÅÍ¿Í ¼¼ÅÍ ±×¸®°í »óÈ£¿î¿ë ...... 373JVM ¾Ö³ëÅ×ÀÌ¼Ç ...... 375¿¹¿Ü¿Í »óÈ£¿î¿ë ...... 385ÀÚ¹ÙÀÇ ÇÔ¼ö ŸÀÔ ...... 389org.jetbrains.annotations ¶óÀ̺귯¸® Ãß°¡Çϱâ ...... 391
CHAPTER 21 ÄÚƲ¸°À¸·Î ¾Èµå·ÎÀÌµå ¾Û °³¹ßÇϱâ 393¾Èµå·ÎÀÌµå ½ºÆ©µð¿À ...... 393UI Á¤ÀÇÇϱâ ...... 400¿¡¹Ä·¹ÀÌÅÍ¿¡¼ ¾Û ½ÇÇàÇϱâ ...... 403ij¸¯ÅÍ »ý¼ºÇϱâ ...... 405Activity Ŭ·¡½º ...... 406ºä ÄÄÆ÷³ÍÆ®¸¦ ÄÚµå¿Í ¿¬°á½ÃÅ°±â ...... 407ÄÚƲ¸°-¾Èµå·ÎÀ̵å È®ÀåÀÇ ÇÕ¼º ¼Ó¼º ...... 410Ŭ¸¯ ¸®½º³Ê ¼³Á¤Çϱâ ...... 412¾×ƼºñƼ ÀνºÅϽºÀÇ »óÅ º¸Á¸ ...... 414È®Àå ÇÔ¼ö¸¦ »ç¿ëÇؼ ÄÚµå ¸®ÆÑÅ丵Çϱâ ...... 417±Ã±ÝÁõ ÇؼÒÇϱâ: ¾Èµå·ÎÀ̵å KTX¿Í Anko ¶óÀ̺귯¸® ...... 420
CHAPTER 22 ÄÚ·çƾ °³¿ä 423ij¸¯ÅÍ µ¥ÀÌÅÍ ÆĽÌÇϱâ ...... 424½Ç½Ã°£À¸·Î µ¥ÀÌÅÍ °¡Á®¿À±â ...... 426¾Èµå·ÎÀ̵å main ½º·¹µå ...... 429ÄÚ·çƾÀ» È°¼ºÈ½ÃÅ°±â ...... 429async ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÄÚ·çƾ ÁöÁ¤Çϱâ ...... 430launch vs async/await ...... 432½ÇÇà º¸·ù ÇÔ¼ö ...... 432縰Áö: ½Ç½Ã°£ µ¥ÀÌÅÍ ...... 433
CHAPTER 23 ÀÌ Ã¥À» ¸¶Ä¡¸ç 435¾îµð·Î °¡¾ß ÇÒ±î? ...... 435ºÎ´ã ¾ø´Â ¿¬¶ôó ...... 436°¨»çÇÕ´Ï´Ù! ...... 436
APPENDIX A ÀÎÅÚ¸®Á¦ÀÌ ¼³Ä¡¿Í ±¸¼ºÇϱâ 437A-1: JDK ¼³Ä¡Çϱâ ...... 437A-2: À©µµ¿ì ½Ã½ºÅÛ¿¡¼ ÀÎÅÚ¸®Á¦À̸¦ ¼³Ä¡Çϱâ ...... 437A-3: ¸Æ OS¿¡¼ ÀÎÅÚ¸®Á¦À̸¦ ¼³Ä¡Çϱâ ...... 442A-4: ¸®´ª½º¿¡¼ ÀÎÅÚ¸®Á¦À̸¦ ¼³Ä¡Çϱâ ...... 442
ÇÑÁÙ ¼Æò