
μ½νλ¦°μ μ£Όμ νΉμ± μ½νλ¦°μ λ€μ€ ν¨λ¬λ€μ μΈμ΄μ΄λ€. μ μ νμ μ§μ μΈμ΄λ‘μ¨ λ°νμ λμ€μ΄ μλ 컀νμΌ μμ μ μ€λ₯λ₯Ό μ‘μλΌ μ μλ€. κ°μ²΄ μ§ν₯ μΈμ΄μ ν¨μν μΈμ΄μ μ‘°ν©μΌλ‘ λ κ°λ ₯ν μΆμνλ₯Ό μ μ©ν μ μλ€. λΉλκΈ° μ½λλ₯Ό μμ±ν μ μλ κ°λ ₯ν λ°©λ²μ μ§
1. κΈ°λ³Έ μμ : ν¨μμ λ³μ νμ μ μΈ μλ΅, λΆλ³ λ°μ΄ν° μ¬μ©μ κΆμ₯νλ μ΄μ , μ λΆλ³ λ°μ΄ν°κ° λ μ’μμ§ μ΄ν΄λ³Έλ€. κ³ μ μ μΈ μμ : Hello World! ν¨μ μ μΈ β fun ν€μλ μ¬μ© ν¨μλ₯Ό λͺ¨λ μ½νλ¦° νμΌμ μ΅μμμ μ μν μ μμ β ν΄λμ€

1. μ½νλ¦°μμ 컬λ μ λ§λ€κΈ° μ΄μ μκ°μμ setOf ν¨μλ₯Ό μ¬μ©ν΄ μ§ν©μ λ§λλ λ°©λ²μ μ¬μ©ν μ μ΄ μμλ€. λΉμ·ν λ°©λ²μΌλ‘ 리μ€νΈμ λ§΅μ λ§λ€ μ μλ€. μ¬κΈ°μ mapμ λ§λ€ λ μ¬μ©ν toλ μΈμ΄κ° μ 곡νλ νΉλ³ν ν€μλκ° μλλΌ μΌλ° ν¨μμ΄λ€. μ¬κΈ°μ

ν΄λμ€ κ³μΈ΅ μ μ λ°©μ, κ°μμ±κ³Ό μ κ·Ό λ³κ²½μ, sealed λ³κ²½μλ₯Ό μ΄ν΄λ΄ λλ€. μ½νλ¦° μΈν°νμ΄μ€ μ½νλ¦° μΈν°νμ΄μ€μλ μΆμ λ©μλ λΏλ§ μλλΌ κ΅¬νμ΄ μλ λ©μλλ μ μν μ μλ€. λ€λ§ μΈν°νμ΄μ€μλ μλ¬΄λ° μνλ λ€μ΄κ° μ μλ€. clickμ΄λΌλ μΆμ λ©μλκ° μλ μΈν°νμ΄μ€λ₯Ό μ μν μ½λλ€. μ΄ μΈν°νμ΄μ€λ₯Ό ꡬννλ λͺ¨λ λΉμΆμ ν΄λμ€λ c...
μ½νλ¦°μ μ£Ό μμ±μμ λΆ μμ±μλ₯Ό ꡬλΆνλ€. λν μ΄κΈ°ν λΈλ‘μ ν΅ν΄ μ΄κΈ°ν λ‘μ§μ μΆκ°ν μ μλ€. ν΄λμ€ μ΄κΈ°ν: μ£Ό μμ±μμ μ΄κΈ°ν λΈλ‘ μ΄ μμ μ μ¬μ©λ constructorμ init ν€μλμ λ»μ μμ보μ. constructorλ μ£Ό μμ±μλ λΆ μμ±μ μ μλ₯Ό μμν λ μ¬μ©νλ€. init ν€μλλ μ΄κΈ°ν λΈλ‘μ μμνλ€. μ΄κΈ°ν λΈλ‘...
λͺ¨λ ν΄λμ€κ° μ μν΄μΌ νλ λ©μλ μλ°μ μ½νλ¦°μ λͺ¨λ ν΄λμ€λ toString, equals, hashCodeλ₯Ό μ€λ²λΌμ΄λν΄μΌ νλ€. κ°κ°μ΄ μ΄λ€ λ©μλμΈμ§ μ΄ν΄λ³΄κ³ μ½νλ¦°μ΄ μ΄λ»κ² μ΄λ° λ©μλλ₯Ό μλμΌλ‘ μμ±ν΄ μ£Όλμ§ μμ보μ. λ¬Έμμ΄ νν: toString() μ£Όλ‘ λλ²κΉ κ³Ό λ‘κΉ μ νμ©νλ λ©μλλ‘, μΈμ€ν΄μ€μ λ¬Έμμ΄ ννμ λ°ννλ€. κΈ°...
object ν€μλλ ν΄λμ€λ₯Ό μ μνλ λμμ μΈμ€ν΄μ€λ₯Ό μμ±νλ€. object ν€μλλ₯Ό μ¬μ©νλ μ¬λ¬κ°μ§ μν©μ λ€μκ³Ό κ°λ€. κ°μ²΄ μ μΈ : μ±κΈν΄μ μμ±νλ ν κ°μ§ λ°©λ²μ΄λ€. λλ° κ°μ²΄(companion object) : μ΄λ€ ν΄λμ€μ κ΄λ ¨μ΄ μμ§λ§ νΈμΆνκΈ° μν΄ κ·Έ ν΄λμ€μ κ°μ²΄κ° νμνμ§λ μμ λ©μλμ ν©ν 리 λ©μλλ₯Ό λ΄μ λ μ°μΈλ€. κ°μ²΄ ...
ν¨μμ μλͺ»λ μλ―Έμ κ°μ μ λ¬νλ κ²μ λ°©μ§νκΈ° μν΄ ν΄λμ€μ κ°μ²΄λ₯Ό νλΌλ―Έν°λ‘ μ λ¬ν μ μλ€. νμ§λ§ μ΄ λ°©λ²μ ν¨μλ₯Ό νΈμΆν λλ§λ€ κ°μ²΄λ₯Ό μμ±νλ€. ν¨μλ₯Ό μ무 λ§μ΄ νΈμΆνλ€λ©΄ κ°λΉμ§ 컬λ ν°μ μν΄ μ κ±°λΌμΌ νλ κ°μ²΄λ₯Ό μμμ΄ λ§μ΄ λ§λ€κ² λλ€. λ°λΌμ μ±λ₯ μ΄μκ° λ°μν μ μλ€. μ΄λ΄ λ μΈλΌμΈ ν΄λμ€λ₯Ό μ¬μ©νλ©΄ μ±λ₯μ ν¬μνμ§ μκ³ ν...

λλ€μ μ μ©μ±κ³Ό μκΉμΈμ½λμμ μΈλ ¨μ λμμ λ³μμ μ μ₯νκ±°λ λ€λ₯Έ ν¨μμ μ μ₯ν΄μΌ νλ κ²½μ°κ° λλ¬ μμμ΄λ²€νΈ λ°μ μ νΉμ νΈλ€λ¬ μ€νλ°μ΄ν° ꡬ쑰μ λͺ¨λ μμμ νΉμ μ°μ° μ μ©μμ μλ°μμλ μμ κ²½μ°λ€μ μ΅λͺ λ΄λΆ ν΄λμ€λ₯Ό μ¬μ©νμμ½λλ₯Ό ν¨μμ λκΈ°κ±°λ λ³μμ μ
κ°μ μ½νλ¦°μ μλ° APIμ μμ ν νΈνλ¨ μλ° 8 μ΄μ μλ onClickListener μΈν°νμ΄μ€ ꡬνμ μν΄ μ΅λͺ ν΄λμ€ μΈμ€ν΄μ€λ₯Ό setOnClickListenerμ μ λ¬ν΄μΌ νμ μλ° 8 μ΄νμλ μ΄λμ λ κ°μνκ° κ°λ₯νμ μ½νλ¦°μμλ λ¨μν λλ€λ§ μ λ¬νλ©΄ λ¨ onClickListener μΈν°νμ΄μ€ μμ μΆμ λ©μλκ° λ¨ νλλΏμ΄μ΄μ λλ€ ...
κ°μ ν¨μν μΈν°νμ΄μ€μ λν΄ ν¨μ νλΉμ μ¬μ©ν΄ νλμ ννν λκ° μμ£Ό μμ νμ λ³λͺ μ ν΅ν΄ μ΄ν΄νκΈ° μ’μ μ΄λ¦μ λΆμ¬νκΈ° fun interfaceλ₯Ό μ¬μ©ν΄ ν¨μν μΈν°νμ΄μ€λ₯Ό μ μν μ μμ μ½νλ¦°μ ν¨μν μΈν°νμ΄μ€ β μ νν νλμ μΆμ λ©μλλ§ ν¬ν¨
κ°μ with, apply, also ν¨μμ λν΄ μμλ³Έλ€ μμ κ°μ²΄ μ§μ λλ€ β μμ κ°μ²΄λ₯Ό λͺ μνμ§ μκ³ λλ€ λ³Έλ¬Έ μμμ λ€λ₯Έ κ°μ²΄μ λ©μλλ₯Ό νΈμΆ with ν¨μ μ΄λ€ κ°μ²΄μ μ΄λ¦μ λ°λ³΅νμ§ μκ³ κ·Έ κ°μ²΄μ λν΄ λ€μν μ°μ°μ μνν μ μκ² ν΄μ€ withλ₯Ό μ¬μ©ν 리νν λ§ μΌλ° μ½λ resultμ λν΄ μ¬λ¬ λ©μλλ₯Ό νΈμΆνλ©΄μ κ°μ²΄μ μ΄...
ν¨μν νλ‘κ·Έλλ° β 컬λ μ κ΄λ ¨ μμ μ μ¬λ¬ μ₯μ μ μ 곡νμ€ λΌμ΄λΈλ¬λ¦¬ μ 곡 ν¨μ μ¬μ©λλ€λ₯Ό ν΅ν ν¨μ λμ 컀μ€ν 컬λ μ μ μμλ₯Ό κ±Έλ¬λ΄κΈ°μ»¬λ μ μ κ° μμλ₯Ό λ€λ₯Έ ννλ‘ λ³ν컬λ μ μ μννλ©΄μ μ£Όμ΄μ§ λλ€κ° trueλ₯Ό λ°ννλ μμλ₯Ό μ μ₯ν μλ‘μ΄ μ»¬λ μ λ°νλ°νλ

map, filterμ μ°μμ νΈμΆ β κ²°κ³Ό 컬λ μ μ μ¦μ μμ±μ»¬λ μ ν¨μ μ°μ μ¬μ© β λ§€ λ¨κ³λ§λ€ κ³μ° μ€κ° κ²°κ³Όλ₯Ό μλ‘μ΄ μ»¬λ μ μ μμλ‘ μ μ₯μνμ€ β μ€κ° μμ 컬λ μ μ μ¬μ©νμ§ μκ³ μ°μ μ°μ°μ μ§ννλ λ°©λ²μ μ 곡μνμ€ β Sequence μΈν°νμ΄μ€μμ μμ
NPE(NullPointException)μ€λ₯λ₯Ό νΌν μ μκ² λλ μ½νλ¦° νμ μμ€ν μ νΉμ±μ½νλ¦°μ ν¬ν¨ν μ΅μ μΈμ΄ β Nullμ λν μ²λ¦¬λ₯Ό μ€ν μμ μμ μ»΄νμΌ μμ μΌλ‘ λκΉNullμ΄ λ μ μλμ§ μ¬λΆλ₯Ό νμ μμ€ν μ μΆκ°μ»΄νμΌλ¬κ° μ¬λ¬ μ€λ₯λ₯Ό μ»΄νμΌ μ 미리
null κ²μ¬μ λ©μλ νΈμΆμ ν μ°μ°μΌλ‘ μνstr?.uppercase() == if (str != null) str.uppercase() else nullνΈμΆνλ €λ κ°μ΄ nullμ΄ μλλΌλ©΄ μΌλ° λ©μλ νΈμΆμ²λΌ μλνΈμΆνλ €λ κ°μ΄ nullμ΄λΌλ©΄ null λ°νμμ ν
κ°μ²΄λ₯Ό μΌλ¨ μμ±ν ν λμ€μ μ΄κΈ°ννλ νλ μμν¬λ€μ΄ λ§μμλλ‘μ΄λ, JUnit λ±λ±β¦μ½νλ¦°μλ ν΄λμ€μμ nullμ΄ λ μ μλ νλ‘νΌν°λ₯Ό μμ±μκ° μλ νΉλ³ν λ©μλμμ μ΄κΈ°νν λ°©λ²μ΄ μμνλ‘νΌν°λ₯Ό nullμ΄ λ μ μλ νμ μΌλ‘ μ μΈνλ©΄ λͺ¨λ νλ‘νΌν° μ κ·Όμ

μλ°μ νμ μμ€ν μ μ½νλ¦°μ null κ°λ₯μ±μ μ§μνμ§ μμλͺ¨λ κ°μ μΈ λλ§λ€ null κ²μ¬λ₯Ό ν΄μ€μΌ νλκ°?@Nullable μ΄λ Έν μ΄μ μ΄ λΆμ μ½λ == μ½νλ¦°μ nullμ΄ λ μ μλ νμ λ κ°λ₯μ± μ΄λ Έν μ΄μ μ΄ μλ κ²½μ° μλ°μ νμ μ μ½νλ¦°μ νλ«νΌ νμ μ΄ λ¨
μ½νλ¦° β μμ νμ κ³Ό λνΌ νμ μ ꡬλΆνμ§ μμκ·Έ μ΄μ μ μλ μ리Object, void λ±μ μλ° νμ κ³Ό μ½νλ¦° νμ μ λμ κ΄κ³μμ νμ β κ°μ΄ μ§μ λ€μ΄κ°μ°Έμ‘° νμ β λ©λͺ¨λ¦¬ μμ κ°μ²΄ μμΉκ° λ€μ΄κ°μμ νμ μ κ°μ λν λ©μλλ₯Ό νΈμΆν μ μμμμ νμ μ λ

μΈμλ‘ μ°μΈ νμ μλ λ¬Όμν( ? )λ₯Ό λΆμ΄λ©΄ nullμ μ μ₯ν μ μμlist<Int?> β Int? νμ μ μ μ₯ν μ μμInt λλ nullμ μ μ₯ν μ μμList<Int?>리μ€νΈ μ체λ νμ nullμ΄ μλ리μ€νΈμ λ€μ΄κ°λ κ° μμλ nullμ΄ λ
μλ° β κΈ°λ³Έ νμ μ λν΄μ λ§ μ°μ μ°μ°μλ₯Ό μ¬μ©ν μ μμString κ°μ λν΄ + μ°μ°μλ₯Ό μ¬μ©ν μ μμν΄λμ€μ λ©μλλ₯Ό νΈμΆνλκ² λ³΄λ€ μ°μ μ°μ°μλ₯Ό μ¬μ©νλ νΈμ΄ νΈν λκ° μμBigInteger ν΄λμ€μμ addλ₯Ό νΈμΆνλκ² λ³΄λ€ + μ°μ°μ μ¬μ©νλ νΈμ΄

μ½νλ¦°μ κΈ°λ³Έ νμ λΏλ§ μλλΌ κ°μ²΄μ λν΄ λΉκ΅ μ°μ°μ μνν μ μμμλ°μμλ equalsλ compareToλ₯Ό νΈμΆν΄μΌ ν¨μ½νλ¦°μμ μ°μ μ°μ°μλ₯Ό μ¬μ©νμ¬ μ½λλ₯Ό κ°μν ν μ μμ== μ°μ°μ β equals λ©μλλ‘ μ»΄νμΌκ΄λ‘λ₯Ό μ μ©ν κ²!= μ°μ°μλ equal
컬λ μ μμ κ°μ₯ μμ£Ό μ°λ μ°μ°μΈλ±μ€λ‘ μμλ₯Ό μ½κ±°λ μ°κΈ°μ΄λ€ κ°μ΄ 컬λ μ μ μν΄ μλμ§ κ²μ¬μ΄ μ°μ°λ€μ μ°μ°μ ꡬ문μΌλ‘ μ¬μ©ν μ μμμΈλ±μ€ μ κ·Ό β collectionindexμμκ° μ»¬λ μ μ΄λ λ²μμ μν΄ μλμ§ κ²μ¬ β in μ°μ°μμ½νλ¦°μ μΈλ±μ€ μ κ·Ό μ°μ°μ β

ꡬ쑰 λΆν΄λ₯Ό μ¬μ©νλ©΄ 볡ν©μ μΈ κ°μ λΆν΄ν΄μ λ³λμ μ¬λ¬ μ§μ λ³μλ₯Ό νκΊΌλ²μ μ΄κΈ°νν μ μμμΌλ° λ³μ μ μΈκ³Ό λΉμ·ν΄ 보μ΄μ§λ§ = μΌμͺ½μ μ¬λ¬ λ³μλ₯Ό κ΄νΈλ‘ λ¬Άμꡬ쑰 λΆν΄ μ μΈμ κ΄λ‘λ₯Ό μ¬μ©ν¨ β componenN μ΄λΌλ ν¨μλ₯Ό νΈμΆdata ν΄λμ€μ μ£Ό μμ±μμ λ€

νλ‘νΌν° μ κ·Όμ λ‘μ§μ λ§€λ² μ¬κ΅¬νν νμ μμ΄ μ½κ² ꡬνν μ μμμμ μ κ°μ νλκ° μλ DB ν μ΄λΈ, λΈλΌμ°μ μΈμ , λ§΅ λ±μ μ μ₯ν μ μμμμ β μμ μ λμ°λ―Έ κ°μ²΄κ° μ²λ¦¬νλλ‘ λ§‘κΈ°λ λμμΈ ν¨ν΄λμ°λ―Έ κ°μ²΄ = μμ κ°μ²΄λμ°λ―Έ κ°μ²΄λ₯Ό μ§μ μμ±ν μλ μμ§λ§
κ³ μ°¨ ν¨μ β λ€λ₯Έ ν¨μλ₯Ό μΈμλ‘ λ°κ±°λ λ°ννλ ν¨μλλ€ or ν¨μ μ°Έμ‘°λ₯Ό ν΅ν΄ ν¨μλ₯Ό κ°μΌλ‘ ννν μ μμμ΄λ₯Ό ν΅ν΄ ν¨μλ₯Ό μΈμλ‘ λκΈ°κ±°λ λ°ν λ°λ κ²μ΄ κ°λ₯filter ν¨μλ κ³ μ°¨ ν¨μμλλ€λ₯Ό μΈμλ‘ λ°κΈ° λλ¬Έμ΄μ κ³ μ°¨ ν¨μλ₯Ό μ μνλ λ°©λ²μ μμλ³Έλ€. κ³ μ°¨
λλ€ β μ΅λͺ ν΄λμ€λ‘ μ»΄νμΌλλ€μλ§λ€ μλ‘μ΄ ν΄λμ€κ° μκΉλλ€κ° λ³μλ₯Ό μΊ‘μ²ν κ²½μ° νΈμΆν λλ§λ€ μλ‘μ΄ κ°μ²΄κ° μκΉκ°μ κΈ°λ₯μ νλ μ½λλ₯Ό μ§μ μ€ννλ κ²λ³΄λ€ ν¨μ¨μ±μ΄ λ¨μ΄μ§inline λ³κ²½μλ₯Ό ν΅ν΄ μ μΈinline λ³κ²½μκ° μ μΈλ ν¨μλ₯Ό νΈμΆνλ©΄ μ»΄νμΌλ¬λ κ·Έ

λλ€ μμμ return β κ·Έ λλ€λ₯Ό νΈμΆν ν¨μμ μ€νμ΄ μ’ λ£λκ³ λ°νλ¨returnμ΄ μ μΈλ λλ€λ₯Ό νΈμΆν ν¨μλ₯Ό λ°ννκ² λ§λλ return λ¬Έμ βλΉλ‘컬 returnβμ΄λΌκ³ ν¨returnμ΄ λ°κΉ₯ λΈλ‘μ λ°νμν€λ κ²½μ° β μΈλΌμΈ ν¨μμμλ§ κ°λ₯λλ€μμλ λ‘컬 r
μ λ€λ¦μ€λ₯Ό μ¬μ©ν΄ νμ νλΌλ―Έν°λ₯Ό λ°λ νμ μ μ μν μ μμμ λ€λ¦ ν΄λμ€μ ꡬ체μ μΈ νμ μ λκΈ°λ©΄ νμ μ μΈμ€ν΄μ€ν ν μ μμμ»΄νμΌλ¬λ μλμΌλ‘ authorμ νμ μ΄ Listμμ μΆλ‘ ν¨λΉ 리μ€νΈλ₯Ό μ μν λλ νμ μΈμλ₯Ό λͺ μν΄μ€μΌ ν¨νμ νλΌλ―Έν°λ₯Ό λ°μνΈμΆ μ ꡬ
JVMμ μ λ€λ¦μ€ β νμ μκ±°λ₯Ό μ¬μ©ν΄ ꡬνμ€ν μμ μ μ λ€λ¦ ν΄λμ€μ μΈμ€ν΄μ€μ νμ μΈμ μ λ³΄κ° λ€μ΄μμ§ μλ€λ μλ―Ένμ μκ±°λ μ΄λ€ μν₯μ λ―ΈμΉλκ°?ν¨μλ₯Ό inlineμΌλ‘ μ μΈν΄ μ μ½μ μ°ννλ λ°©λ²μ€μ²΄νλ νμ νλΌλ―Έν°νμ κ²μ¬μ μΊμ€ν μ½νλ¦°μ νμ μΈμ μ 보

λ³μ± β κΈ°μ νμ μ΄ κ°κ³ νμ μΈμκ° λ€λ₯Έ νμ μ κ΄κ³λ₯Ό μ€λͺ νλ κ°λ λ³μ±μ μ νμ©νλ©΄ νμ μμ μ±μ 보μ₯νλ APIλ₯Ό λ§λ€ μ μμμ΄λ€ ν¨μκ° λ¦¬μ€νΈμ μμλ₯Ό μΆκ°νκ±°λ λ³κ²½νλ€λ©΄ νμ λΆμΌμΉκ° μκΈΈ μ μμ΄ Any νμ μ String νμ μ λκΈΈ μ μμμμλ₯Ό

μ΄λ Έν μ΄μ μ¬μ©μ ν΅ν΄ μ μΈμ μΆκ°μ μΈ λ©ν λ°μ΄ν°λ₯Ό μ°κ΄μν¬ μ μμμ΄λ Έν μ΄μ μ€μ λ°©μμ λ°λΌ μμ€μ½λ, μ»΄νμΌλ ν΄λμ€ νμΌ, λ°νμμ λν΄ μλνλ λꡬλ₯Ό ν΅ν΄ λ©νλ°μ΄ν°μ μ κ·Όν μ μμμ΄λ Έν μ΄μ μ μ© λ°©λ² β @μ μ΄λ Έν μ΄μ μ΄λ¦μ μ μΈ μμ μμ±ν¨μ, ν΄λ