ÇÁ·Î±×·¡¹ÖÀ» óÀ½ ¹è¿öµµ, °æÇèÀÌ À־ ¸ðµÎ µµÀü!ÀÌ Ã¥Àº ÇÁ·Î±×·¡¹Ö ÀÔ¹®ÀÚÀÇ ½Ã¼±¿¡¼ ÄÚƲ¸°À» ¼³¸íÇÑ ÀÔ¹®¼ÀÌ´Ù. ÄÚƲ¸°Àº ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» Áö¿øÇÏ´Â ¾ð¾îÀ̱⠶§¹®¿¡ ¹®Á¦ Á¢±Ù ¹æ½ÄÀÌ °´Ã¼ÁöÇâ ¾ð¾îÀÎ ÀÚ¹Ù¿Í´Â Á¶±Ý ´Ù¸£´Ù. ¸¶Ä¡ C¾ð¾î¿¡¼ Java·Î ³Ñ¾î°¥ ¶§ °´Ã¼ÁöÇâÀ̶ó´Â Æз¯´ÙÀÓÀ» ¹Þ¾ÆµéÀÌ´Â °Íó·³, ÄÚƲ¸°À» ¹è¿ì·Á¸é »õ·Î¿î Æз¯´ÙÀÓÀÎ ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» ¹Þ¾Æµé¿©¾ß ÇÑ´Ù. ÄÚƲ¸°Àº ÀÚ¹Ù¿¡¼ Áö³ªÄ¡°Ô ±æ¾ú´ø »ó¿ë±¸ Äڵ带 ÁÙ¿©ÁÖ´Â ¹®¹ýµéÀÌ ÀÖÀ¸¸ç, ÀÚ¹Ù¿¡ ºñÇØ ´õ ¾ÈÀüÇÑ Äڵ带 ÀÛ¼ºÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ±×·¸±â ¶§¹®¿¡ ¿¹Á¦¸¦ ¸ðµÎ ½ÇÇàÇÏ´Ù º¸¸é ÄÚƲ¸°ÀÇ ¸Å·Â¿¡ Á¡Á¡ ºüÁö°Ô µÉ °ÍÀ̸ç, ÀÌ Çõ½ÅÀûÀÎ ¾ð¾î¿¡ ºÐ¸í Å« °¨¸íÀ» ¹Þ°Ô µÉ °ÍÀÌ´Ù.
Ãë¹Ì·Î ÇÁ·Î±×·¡¹ÖÀ» ÇÏ°í ÀÖÀ¸¸ç Android Ç÷§Æû¿¡ °ü½ÉÀÌ ¸¹´Ù. ´ëÇ¥ÀÛÀ¸·Î Àü±¹ Çб³ÀÇ ±Þ½Ä ½Ä´ÜÇ¥¸¦ º¸¿©ÁÖ´Â '±Þ½Ä' ¾ÛÀÌ ÀÖ´Ù. ÇÁ·Î±×·¡¹Ö°ú ±Þ½Ä ¾ÛÀ» ÁÖÁ¦·Î ºí·Î±×(blog.naver.com/eominsuk55)¸¦ ¿î¿µ ÁßÀÌ´Ù. ÇöÀç ¢ß¹öÁî´Ï¿¡¼ Android Ŭ¶óÀ̾ðÆ® ¿£Áö´Ï¾î·Î Ȩ¼îÇθð¾Æ ¼ºñ½º¸¦ °³¹ßÇÏ°í ÀÖ´Ù.
PART 1 ÀÔ¹®// ÄÚƲ¸° ±âÃÊ ¹®¹ý »ìÆ캸±â001 Hello, Kotlin!002 Ç¥Çö½Ä(Expression)003 º¯¼ö(Variable)004 ¸®ÅÍ·²ÀÇ Å¸ÀÔ005 »ê¼ú ¿¬»êÀÚ(Arithmetic Operator) - * / %006 Áõ°¨ ¿¬»êÀÚ(Increment & Decrement Operator) - -007 ºñÆ® ¿¬»êÀÚ(Bitwise Operator) and or xor inv shl shr ushr008 Á¤¼ö ŸÀÔ°ú ½Ç¼ö ŸÀÔ009 ½Ç¼ö ŸÀÔÀÇ ÇÔÁ¤010 ¹®ÀÚ Å¸ÀÔ011 ¹®ÀÚ¿(String)012 ¹®ÀÚ¿ ¾È¿¡ Ç¥Çö½ÄÀÇ °ªÀ» Áý¾î³Ö±â013 ŸÀÔ º°¸í(Type Alias)014 ÁÖ¼®(Comment)015 ¹èÁ¤ ¿¬»êÀÚ(Assignment Operator) =016 ¹®Àå(Statement)017 ºñ±³ ¿¬»êÀÚ(Comparison Operator) = = != ¡µ ¡´ ¡µ= ¡´=018 ³í¸® ¿¬»êÀÚ(Logical Operator) && || !019 È帧 Á¦¾î-Á¶°Ç¹® if020 È帧 Á¦¾î-Á¶°Ç¹® if- else021 if¿Í elseÀÇ Áßø022 if-else¸¦ Ç¥Çö½ÄÀ¸·Î »ç¿ëÇϱâ023 È帧 Á¦¾î-Á¶°Ç¹® when024 whenÀ» Ç¥Çö½ÄÀ¸·Î »ç¿ëÇϱâ025 È帧 Á¦¾î-¹Ýº¹¹® while026 È帧 Á¦¾î-¹Ýº¹¹® do-while027 È帧 Á¦¾î continue028 È帧 Á¦¾î break029 ·¹À̺í(Label)030 ÇÔ¼ö(Function)031 ¸Å°³º¯¼ö(Parameter)¿Í Àμö(Argument)032 Unit ŸÀÔ033 µðÆúÆ® Àμö034 °¡º¯ Àμö035 ÇÔ¼ö ¿À¹ö·Îµù(Function Overloading)036 Áö¿ª º¯¼ö(Local Variable)¿Í Àü¿ª º¯¼ö(Global Variable)037 Áö¿ª º¯¼ö¿Í Àü¿ª º¯¼öÀÇ À̸§ÀÌ Áߺ¹µÉ ¶§038 Áö¿ª º¯¼ö¿Í ´Ù¸¥ ÇÔ¼öÀÇ Áö¿ª º¯¼ö°¡ Áߺ¹µÉ ¶§039 Áö¿ª ÇÔ¼ö(Local Function)040 ¸Þ¸ð¸®ÀÇ ½ºÅÃ(Stack) ¿µ¿ª041 ¼Ò½º ÆÄÀÏ ¿©·¯ °³·Î ºÐ¸®Çϱâ042 ÆÐÅ°Áö(Package)043 ´Ù¸¥ ÆÐÅ°ÁöÀÇ ÇÔ¼ö È£ÃâÇϱâ044 importPART 2 ÃʱÞ// ÄÚƲ¸° Áß±Þ ¹®¹ý »ìÆ캸±â045 °´Ã¼(Object)046 ¸Þ¸ð¸®ÀÇ Èü(Heap) ¿µ¿ª047 Ŭ·¡½º(Class)048 Èü ¿µ¿ªÀÇ Á¸Àç ÀÌÀ¯049 ¹®ÀÚ¿°£ ¿¬»ê ½Ã ÁÖÀÇÁ¡050 °¡ºñÁö Ä÷º¼Ç(Garbage Collection)051 = = =, != = ¿¬»êÀÚ052 ¸â¹ö ÇÔ¼ö(Member Function)053 ÇÁ·ÎÆÛƼ¿Í ¸â¹ö ÇÔ¼öÀÇ ¸Å°³º¯¼ö À̸§ÀÌ Áߺ¹µÉ ¶§054 »ý¼ºÀÚ(Constructor)¿Í ÃʱâÈ(Initializer) ºí·Ï055 init ºí·Ï ³ª´©¾î ¾²±â056 »ý¼ºÀÚ¿Í ÇÁ·ÎÆÛƼ Çѹø¿¡ ¾²±â057 º¸Á¶ »ý¼ºÀÚ(Secondary Constructor)058 ÇÁ·ÎÆÛƼ¿Í Getter/Setter059 ¿¬»êÀÚ ¿À¹ö·Îµù(Operator Overloading)060 ¹øÈ£ ºÙÀº Á¢±Ù ¿¬»êÀÚ(Indexed Access Operator) [ ]061 È£Ãâ ¿¬»êÀÚ(Invoke Operator) ( )062 in ¿¬»êÀÚ063 ¸â¹ö ÇÔ¼öÀÇ ÁßÀ§ Ç¥±â¹ý(Infix Notation)064 »ó¼Ó(Inheritance)065 ¾÷ij½ºÆÃ(Upcasting)066 ¿À¹ö¶óÀ̵ù(Overriding)067 ÇÁ·ÎÆÛƼ¸¦ ¿À¹ö¶óÀ̵ùÇϱâ068 ´ÙÇü¼º(Polymorphism)ÀÇ È°¿ë069 Ŭ·¡½º¸¦ »ó¼ÓÇÏ´Â °´Ã¼070 Any Ŭ·¡½º071 ¿¹¿Ü(Exception)072 ¿¹¿Ü ó¸®073 ¿¹¿Ü ´øÁö±â074 Nothing ŸÀÔ075 Nullable ŸÀÔ°ú null076 ¾ÈÀüÇÑ È£Ãâ ¿¬»êÀÚ(Safe Call Operator) ?077 Not-null ´ÜÁ¤ ¿¬»êÀÚ(Not-null Assertion Operator) !!078 ¿¤ºñ½º ¿¬»êÀÚ(Elvis Operator) ?:079 ½º¸¶Æ® ij½ºÆÃ080 is ¿¬»êÀÚ081 as ¿¬»êÀÚ¿Í ´Ù¿îij½ºÆÃ082 Á¢±Ù ÁöÁ¤ÀÚ(Access Modifier)083 Á¢±Ù ÁöÁ¤ÀÚ: private084 Á¢±Ù ÁöÁ¤ÀÚ: protected085 Á¢±Ù ÁöÁ¤ÀÚ ¿À¹ö¶óÀ̵ù086 È®Àå ÇÔ¼ö(Extension Function)087 È®Àå ÇÁ·ÎÆÛƼ(Extension Property)PART 3 Áß±Þ// ÄÚƲ¸° °í±Þ ¹®¹ý »ìÆ캸±â088 °´Ã¼ ¼±¾ð(Object Declaration)089 µ¿¹ÝÀÚ °´Ã¼(Companion Object)090 inline ÇÔ¼ö091 const092 lateinit093 Nullable ¸®½Ã¹ö094 µ¿¹ÝÀÚ °´Ã¼ÀÇ È®Àå ÇÔ¼ö095 È®Àå ÇÔ¼öÀÇ ¸®½Ã¹ö ŸÀÔÀÌ »ó¼Ó °ü°è¿¡ ÀÖÀ» ¶§096 Ãß»ó Ŭ·¡½º(Abstract Class)097 ÀÎÅÍÆäÀ̽º(Interface)098 ´ÙÀ̾Ƹóµå ¹®Á¦(The Diamond Problem)099 Áßø Ŭ·¡½º(Nested Class)100 ³»ºÎ Ŭ·¡½º(Inner Class)101 µ¥ÀÌÅÍ Å¬·¡½º(Data Class)102 °´Ã¼ ºÐÇØÇϱâ103 ÇÔ¼ö ¸®ÅÍ·²(Function Literal)°ú ¶÷´Ù½Ä(Lambda Expression)104 À͸í ÇÔ¼ö(Anonymous Function)105 it ½Äº°ÀÚ106 ÇÔ¼ö ÂüÁ¶(Function Reference)107 °íÂ÷ ÇÔ¼ö(Higher-order Function)108 Ŭ·ÎÀú(Closure)109 ¸®½Ã¹ö°¡ ºÙÀº ÇÔ¼ö ¸®ÅÍ·²110 Á¦³×¸¯(Generic)111 ¿©·¯ ŸÀÔÀ» Àμö·Î ¹Þ±â112 ±¸Ã¼ÈµÈ(Reified) ŸÀÔ ¸Å°³º¯¼ö113 Ŭ·¡½º¿Í ÀÎÅÍÆäÀ̽º¿¡¼ Á¦³×¸¯ »ç¿ëÇϱâ114 Á¦³×¸¯ÀÌ Àû¿ëµÈ Ŭ·¡½º/ÀÎÅÍÆäÀ̽º »ó¼Ó¡¤±¸ÇöÇϱâ115 ƯÁ¤ ŸÀÔÀ» »ó¼Ó¡¤±¸ÇöÇϴ ŸÀÔ¸¸ Àμö·Î ¹Þ±â116 in/out Å°¿öµå117 .. ¿¬»êÀÚ¿Í ¹üÀ§ Ç¥Çö½Ä(Range Expression)118 ¹Ýº¹ÀÚ(Iterator)119 È帧 Á¦¾î - ¹Ýº¹¹® for120 ¹è¿(Array)121 ¹è¿À» °¡º¯ Àμö·Î È°¿ëÇϱâ122 ¿°Å Ŭ·¡½º(Enum Class)123 ¿°Å Ŭ·¡½º¿¡ ÇÁ·ÎÆÛƼ¿Í ¸â¹ö ÇÔ¼ö ¼±¾ðÇϱâ124 ¿°Å Ŭ·¡½º È°¿ëÇϱâ125 sealed Ŭ·¡½º126 À§ÀÓµÈ ÇÁ·ÎÆÛƼ(Delegated Property)127 Ŭ·¡½º À§ÀÓ(Class Delegation)PART 4 È°¿ë// ÄÚƲ¸° Ç¥ÁØ ¶óÀ̺귯¸® »ìÆ캸±â128 Pair Ŭ·¡½º: µÎ º¯¼ö¸¦ Çϳª·Î ¹±â129 to È®Àå ÇÔ¼ö: µÎ °ªÀ» °£´ÜÈ÷ Pair·Î ¹±â130 Triple Ŭ·¡½º: ¼¼ º¯¼ö¸¦ Çϳª·Î ¹±â131 Comparable ÀÎÅÍÆäÀ̽º: Ŭ·¡½º¸¦ ºñ±³ °¡´ÉÇÏ°Ô ¸¸µé±â132 ClosedRange ÀÎÅÍÆäÀ̽º: ´ÝÈù ±¸°£À» Ç¥ÇöÇÏ´Â ÀÎÅÍÆäÀ̽º133 Iterable ÀÎÅÍÆäÀ̽º: Ŭ·¡½º°¡ ¹Ýº¹ÀÚ¸¦ Áö¿øÇϵµ·Ï Çϱâ134 Progression°ú °ü·ÃµÈ ÇÔ¼ö135 ÄÚƲ¸°ÀÇ Ä÷º¼Ç(Collection)136 Collection ÀÎÅÍÆäÀ̽º »ìÆ캸±â137 List ÀÎÅÍÆäÀ̽º »ìÆ캸±â138 ListIterator ÀÎÅÍÆäÀ̽º »ìÆ캸±â139 Map ÀÎÅÍÆäÀ̽º »ìÆ캸±â140 º¯°æÇÒ ¼ö ÀÖ´Â(Mutable) Ä÷º¼Ç141 MutableIterator ÀÎÅÍÆäÀ̽º »ìÆ캸±â142 MutableList ÀÎÅÍÆäÀ̽º »ìÆ캸±â143 MutableListIterator ÀÎÅÍÆäÀ̽º »ìÆ캸±â144 MutableSet ÀÎÅÍÆäÀ̽º »ìÆ캸±â145 MutableMap ÀÎÅÍÆäÀ̽º »ìÆ캸±â146 Sequence ÀÎÅÍÆäÀ̽º »ìÆ캸±â147 Ä÷º¼Ç ¿ø¼Ò ŸÀÔ º¯È¯Çϱâ148 Ä÷º¼Ç Áß ¿øÇÏ´Â ¿ø¼Ò °É·¯³»±â149 Ä÷º¼Ç Á¤·ÄÇϱâ150 CharSequence ÀÎÅÍÆäÀ̽º: ¹®ÀÚ¿°ú °ü·ÃµÈ Ŭ·¡½º°¡ ±¸ÇöÇÏ´Â »À´ë ÀÎÅÍÆäÀ̽º151 Á¢µÎ»ç¡¤Á¢¹Ì»ç °ü·Ã CharSequence È®Àå ÇÔ¼ö152 ºñ¾î ÀÖ´Â CharSequenceÀÎÁö °Ë»çÇϱâ153 CharSequence °¡°øÇϱâ154 CharSequence ÂÉ°³±â155 String Ŭ·¡½º »ìÆ캸±â156 ¹®ÀÚ¿ ã¾Æ ¹Ù²Ù±â157 StringBuilder Ŭ·¡½º: ¹®ÀÚ¿ µ¡ºÙÀ̱â158 Regex Ŭ·¡½º: Á¤±Ô½Ä ´Ù·ç±â159 toList È®Àå ÇÔ¼ö: List ŸÀÔÀ¸·Î º¯È¯Çϱâ160 run È®Àå ÇÔ¼ö: ÄÚµå Áߺ¹ ÁÙÀ̱â161 let È®Àå ÇÔ¼ö: ÄÚµå Áߺ¹ ÁÙÀ̱â162 with ÇÔ¼ö: ÄÚµå Áߺ¹ ÁÙÀ̱â163 apply ÇÔ¼ö: °´Ã¼ »ý¼º ¹× ÃʱâÈ Äڵ带 Ç¥Çö½Ä Çϳª·Î ¾ÐÃàÇϱâ164 also ÇÔ¼ö: °´Ã¼ »ý¼º ¹× ÃʱâÈ Äڵ带 Ç¥Çö½Ä Çϳª·Î ¾ÐÃàÇϱâ165 lazy ÇÔ¼ö: °ÔÀ¸¸¥ Ãʱâȸ¦ ÇÏ´Â ÇÁ·ÎÆÛƼ ´ë¸®ÀÚ166 BigInteger Ŭ·¡½º: ¸Å¿ì Å« Á¤¼ö º¸°üÇϱâ167 BigDecimal Ŭ·¡½º: ¸Å¿ì ÀÛÀº ½Ç¼ö º¸°üÇϱâ168 ÃÖ´ë°ª¡¤ÃÖ¼Ò°ª ±¸Çϱâ169 ½Ç¼ö °ª ¿Ã¸²¡¤³»¸²¡¤¹Ý¿Ã¸²Çϱâ170 abs ÇÔ¼ö: Àý´ë°ª ±¸Çϱâ171 E, PI: ¼öÇÐ »ó¼ö172 hypot ÇÔ¼ö: ºøº¯ÀÇ ±æÀÌ ±¸Çϱâ173 Áö¼öÇÔ¼ö174 ·Î±×ÇÔ¼ö175 »ï°¢ÇÔ¼ö176 toBits, toRawBits È®Àå ÇÔ¼ö: ½Ç¼ö ŸÀÔÀ» ÀÌÁø¼ö °ªÀ¸·Î °¡Á®¿À±â177 fromBits È®Àå ÇÔ¼ö: ÀÌÁø¼ö °ªÀ¸·ÎºÎÅÍ ½Ç¼ö °ª ¸¸µé±â178 Any?toString È®Àå ÇÔ¼ö179 String?plus ¿¬»êÀÚ È®Àå ÇÔ¼ö180 Double °ª °ËÁõÇϱâ181 Àμö(Argument) °ËÁõÇϱâ182 KotlinVersion Ŭ·¡½º: »ç¿ë ÁßÀÎ ÄÚƲ¸° ¹öÀü ¾Ë¾Æ³»±â183 exitProcess ÇÔ¼ö: ¾îµð¼³ª ÇÁ·Î±×·¥ Á¾·áÇϱâ184 ÄÚµå ¼º´É ÃøÁ¤Çϱâ185 ÆÄÀÏ ÀÔÃâ·Â186 FileTreeWalk Ŭ·¡½º: µð·ºÅ丮 ¼øȸÇϱâ187 thread ÇÔ¼ö: ½º·¹µå »ý¼ºÇϱâ188 timer ÇÔ¼ö: ŸÀÌ¸Ó »ý¼ºÇϱâ189 synchronized ÇÔ¼ö: ½º·¹µå µ¿±âÈÇϱâPART 5 ½Ç¹«// ÄÚƲ¸°°ú ÀÚ¹Ù ÇÔ²² »ç¿ëÇϱâ190 ÄÚƲ¸°¿¡¼ ÀÚ¹Ù ÄÚµå Á¢±ÙÇϱâ: ŸÀÔ191 ÄÚƲ¸°¿¡¼ ÀÚ¹Ù ÄÚµå Á¢±ÙÇϱâ: Null ¾ÈÀü¼º192 ÄÚƲ¸°¿¡¼ ÀÚ¹Ù ÄÚµå Á¢±ÙÇϱâ: Å°¿öµå Ãæµ¹193 ÄÚƲ¸°¿¡¼ ÀÚ¹Ù ÄÚµå Á¢±ÙÇϱâ: SAM º¯È¯194 ÄÚƲ¸°¿¡¼ ÀÚ¹Ù ÄÚµå Á¢±ÙÇϱâ: Getter/Setter195 ÄÚƲ¸°¿¡¼ ÀÚ¹Ù ÄÚµå Á¢±ÙÇϱâ: ¿¬»êÀÚ ¿À¹ö·Îµù196 ÄÚƲ¸°¿¡¼ ÀÚ¹Ù ÄÚµå Á¢±ÙÇϱâ: Ŭ·¡½º ÂüÁ¶197 ÀÚ¹Ù¿¡¼ ÄÚƲ¸° ÄÚµå Á¢±ÙÇϱâ: ÆÐÅ°Áö ·¹º§ º¯¼ö¡¤ÇÔ¼ö198 ÀÚ¹Ù¿¡¼ ÄÚƲ¸° ÄÚµå Á¢±ÙÇϱâ: ÇÁ·ÎÆÛƼ199 ÀÚ¹Ù¿¡¼ ÄÚƲ¸° ÄÚµå Á¢±ÙÇϱâ: ¼±¾ðµÈ °´Ã¼200 ÀÚ¹Ù¿¡¼ ÄÚƲ¸° ÄÚµå Á¢±ÙÇϱâ: µ¿¹ÝÀÚ °´Ã¼