kotlin(9)
-
์์คํ ๋ฅด๋ด์์ ์ด๋ฆฐ KotlinConf 2023 ์ฐธ์ฌ ํ๊ธฐ
์ ๋ง ์ค๋๋ง์ ๊ฐ๋ฐ์ ํด์ธ ๊ตฌ์ง ์๋ฆฌ์ฆ ์ธ์ ๊ธ์ ์ด๋ค. ์ฌ์ค ์ต๊ทผ ๋ค์ด ๊ธ ์ฐ๋ ์ฌ๋ฏธ๋ฅผ ์๊ฒ ๋์ด์, ๋ค์ํ ์ฃผ์ ์ ๊ธ์ ์ฌ๋ฆฌ๊ณ ์ถ์ ๋ง์์ ์์์ง๋ง.. ๋์ ๊ฒ์ผ๋ฆ๊ณผ ๊ตฌ์ง ์๋ฆฌ์ฆ ๊ธ์ ๊ธฐ๋ค๋ฆฌ๋ ๋ถ๋ค์ด ์๋ค๋ ๊ฑธ ์๊ธฐ์ ๋ค๋ฅธ ๊ธ์ ์ฐ๊ธฐ ์ด๋ ค์ ๋ค. (์ฌ์ค ์ด ํ๊ธฐ๊ธ ์ธ์๋ ์ต๊ทผ์ ์ ๋ง ์ฌ๋ฐ๊ฒ ์ฝ์๋ ์ปค๋ฆฌ์ด ๊ด๋ จ ์ฑ ํ๊ธฐ๋ ์ฐ๋ ์ค!) ์จ๋ ์ด๋ฐ ์์ค์ ๊ฐ๋ฐ ํ์ฌ์ ์ฐธ์ฌํ๊ฒ ๋๋ ์ฌ๋ฏธ๋ ๊ฒฝํ์ ํ๊ณ , ํ๊ธฐ๊ธ์ด๋ผ ๊ธ๋ฐฉ ์ธ ๊ฒ ๊ฐ์๊ณ , ๋ ๋ค๋ฅธ ๊ฐ๋ฐ์ ๋ถ๋ค์ด ์ฝ์์ ๋ ํฅ๋ฏธ๋ก์ด ์ฃผ์ ์ผ ๊ฒ ๊ฐ์ ์ด๋ ๊ฒ ๊ธ์ ์ฐ๊ฒ ๋์๋ค. ๋ชฉ์ฐจ ์ง๋์ฃผ ๋ชฉ-๊ธ(4์ 13-14), ๋ค๋๋๋ ์์คํ ๋ฅด๋ด์์ Kotlin Conf ์ด๋ฒคํธ๊ฐ ์ด๋ ธ์๋ค. ์ด๋ฐ ํฐ ๊ฐ๋ฐ ํ์ฌ์ ์ง์ ์ฐธ์ฌํ ๊ฒ์ ์ด๋ฒ์ด ์ฒ์์ธ๋ฐ, ํํ์ง ์์ ๊ธฐํ์ธ ๋งํผ ์ฐธ์ฌ ..
2023.04.24 -
[Kotlin in Action] 10์ฅ. Annotaion ๊ณผ Reflection
์ง๋ ๊ธ(9์ฅ. ์ ๋ค๋ฆญ์ค(Generics)์ ์ด์ด Kotlin in Action ์ด๋ผ๋ ์ฑ ์ ๋ณด๋ฉด์ ๋งค์ฃผ ๊ณต๋ถํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ๊ธฐ๋กํ๋ค. ์ด๋ฒ ์ฃผ๋ 10์ฅ Annotaion ๊ณผ Reflection ์ ๋ํ ๋ด์ฉ์ด๋ค. ์ด๋ฒ ์ฑํฐ๋ ๊ฐ๋ ๋ณด๋ค๋ annotaion ๊ณผ reflection ์ด ๋ง์ด ์ฌ์ฉ๋๋ json serializer ์ธ ์ ์ดํค๋(jkid) ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ์ํ๋ ๋ด์ฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ ๊ฐ๋ ๋ง ์ ๋ฆฌํ๋ค. ๋ชฉ์ฐจ Annotaion Android Annotations is an annotation-driven framework that allows you to simplify the code in your applications and reduces the boilerplate o..
2022.02.20 -
[Kotlin in Action] 8์ฅ. ๊ณ ์ฐจํจ์์ inline function (inline ํจ์์ ์ฅ๋จ์ , ์ฌ์ฉ ์ด์ ๋ฑ)
์ง๋ ๊ธ(ํด๋์ค, ๊ฐ์ฒด, ์ธํฐํ์ด์ค)์ ์ด์ด Kotlin in Action ์ด๋ผ๋ ์ฑ ์ ๋ณด๋ฉด์ ๋งค์ฃผ ๊ณต๋ถํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ๊ธฐ๋กํ๋ค. ์ด๋ฒ ์ฃผ๋ 8์ฅ ๊ณ ์ฐจํจ์์ inline function ์ ๋ํ ๋ด์ฉ์ด๋ค. ์ฑ ๋ด์ฉ์ ์ด๋ง์ด๋งํ๊ฒ ๋ง๊ธฐ ๋๋ฌธ์.. ๋ด ๊ธฐ์ค์ผ๋ก ์๋ก ์๊ฒ ๋ ๊ฒ๋ค, ํ์์๋ ๋ชจ๋ฅด๊ณ ์ง๋์ณค๋ ๋ถ๋ถ ๋๋ ํ๋ฒ ์ง๊ณ ๋์ด๊ฐ๋ฉด ์ข์ ๋ด์ฉ๋ค ์์ฃผ๋ก ์ ๋ฆฌํ๋ค. ๋ชฉ์ฐจ ๊ณ ์ฐจ ํจ์ ์ ์ ๊ณ ์ฐจ ํจ์๋ ๋๋ค๋ ํจ์ ์ฐธ์กฐ๋ฅผ ์ธ์๋ก ๋๊ธธ ์ ์๊ฑฐ๋ ๋๋ค๋ ํจ์ ์ฐธ์กฐ๋ฅผ ๋ฐํํ๋ ํจ์. ๊ณ ์ฐจ ํจ์ ์์ ๐ list.filter { x > 0 } // ๋๋ค๋ฅผ ์ธ์๋ก ๋ฐ๋ filter ํจ์๋ ๊ณ ์ฐจํจ์ public inline fun Iterable.filter(predicate: (T) -> Boolean): List..
2022.01.09 -
[Kotlin in Action] 4์ฅ. ํด๋์ค, ๊ฐ์ฒด, ์ธํฐํ์ด์ค
์ง๋ ๊ธ(Kotlin ํจ์ ์ ์์ ํธ์ถ)์ ์ด์ด Kotlin in Action ์ด๋ผ๋ ์ฑ ์ ๋ณด๋ฉด์ ๋งค์ฃผ ๊ณต๋ถํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ๊ธฐ๋กํ๋ค. ์ด๋ฒ ์ฃผ๋ 4์ฅ ํด๋์ค/๊ฐ์ฒด/์ธํฐํ์ด์ค ์ ๋ํ ๋ด์ฉ์ด๋ค. ์ฑ ๋ด์ฉ์ ์ด๋ง์ด๋งํ๊ฒ ๋ง๊ธฐ ๋๋ฌธ์.. ๋ด ๊ธฐ์ค์ผ๋ก ์๋ก ์๊ฒ ๋ ๊ฒ๋ค, ํ์์๋ ๋ชจ๋ฅด๊ณ ์ง๋์ณค๋ ๋ถ๋ถ ๋๋ ํ๋ฒ ์ง๊ณ ๋์ด๊ฐ๋ฉด ์ข์ ๋ด์ฉ๋ค ์์ฃผ๋ก ์ ๋ฆฌํ๋ค. ๋ชฉ์ฐจ Interface ์ฝํ๋ฆฐ ์ธํฐํ์ด์ค ํน์ง ์๋ฐ์ ๋ค๋ฅด๊ฒ, ์ถ์ ๋ฉ์๋ ๋ฟ๋ง ์๋๋ผ ๊ตฌํ์ด ์๋ ๋ฉ์๋๋ ์ ์ํ ์ ์๋ค. ๋จ, ์ธํฐํ์ด์ค์๋ ์ํ๋ฅผ ์ ์ฅํ ์ ์๋ค. ์ฆ, ํ๋กํผํฐ์ ๊ฐ์ด ์ ์ฅ๋ ์ ์๋ค. ๊ทธ๋ฌ๋, ํ๋กํผํฐ์ ๊ฒํฐ๋ฅผ ๊ตฌํํ ์๋ ์๋ค. ์ด๋ ์ํ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ์๋, ํด๋น ํ๋กํผํฐ๊ฐ ํธ์ถ๋ ๋๋ง๋ค ํธ์ถ๋๋ ๊ฒํฐ ํจ์์ด๊ธฐ ๋๋ฌธ. in..
2021.11.03 -
[Kotlin in Action] 3์ฅ. ํจ์ ์ ์์ ํธ์ถ
์์ ๋ถํฐ ๊ฐ์ด ๊ณต๋ถํ๋ ๋ถ๋ค๊ณผ ์ฃผ๋ง์ ์คํฐ๋๋ฅผ ํ๊ณ ์๋ค. ๋ฒ์จ ์คํฐ๋๋ฅผ ํ์ง 2๋ ์ ๋ ๋ ๊ฒ ๊ฐ๋ค. ์คํฐ๋ ์ฃผ์ ๋ ๋ค์ํ๋๋ฐ, React-Native, ์๋ฃ๊ตฌ์กฐ, ์๋ฒ ๋๋ OS ๊ตฌ์ถ, ์๋๋ก์ด๋ ๋ฑ๋ฑ ํ๋์ ์ฃผ์ ๊ฐ ๋๋๋ฉด ๋ค์์ ํด๋ณด๊ณ ์ถ์ ์ฃผ์ ๋ฅผ ์ ํด์ ํ๋ ์์ด๋ค. ์ด๋ฒ์๋ Spring Boot ๋ฅผ ๊ณต๋ถํด๋ณด๊ธฐ๋ก ํ๋๋ฐ, ๊ทธ ์ ์ 2๊ฐ์ ์ ๋ kotlin ๊ธฐ์ด๋ฅผ ๋ค์ง๊ณ ๊ฐ๋ ค ํ๋ค! ๊ทธ๋์ Kotlin in Action ์ด๋ผ๋ ์ฑ ์ ๋ณด๋ฉด์ ๋งค์ฃผ ๊ณต๋ถํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ๊ธฐ๋กํ๋ค. ๋ชฉ์ฐจ ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค๊ธฐ ์ด๋ฆ ๋ถ์ธ ์ธ์ (Named arguments) ์ฝํ๋ฆฐ์ผ๋ก ์์ฑํ ํจ์๋ฅผ ํธ์ถํ ๋๋ ํจ์์ ์ ๋ฌํ๋ ์ธ์(parameter) ์ค ์ผ๋ถ ๋๋ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ช ์ ๋ช ์ํ ์ ์๋ค. ์ด๋ฅผ ํตํด ํจ์..
2021.10.09 -
[Kotlin] static, object, companion object ์ฐจ์ด
๋ชฉ์ฐจ ์ฐ๋ฆฌ๋ ๋ณดํต kotlin์์ java์ static ๋ณ์ ๋๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด object ํค์๋ ๋๋ companion object๋ฅผ ์ฌ์ฉํ๋ค. ์๋์ฒ๋ผ ๋ง์ด๋ค. ์๋์ ๊ฐ์ด object ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ object declaration์ด๋ผ๊ณ ํ๋ค. object ObjectTest { const val CONST_STRING = "1" fun test() {} } class CompanionObjectTest { companion object { const val CONST_TEST = 2 fun test() { } } } kotlin์์๋ static ์ด๋ ๊ฒ์ด ์๊ณ ์์ ๊ฐ์ด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด static ์ด๋ค ๋ผ๊ณ ์คํดํ ์ ์๋ค. ๋ ์ญ์ ์ด๋ฒ ๊ณต๋ถ๋ฅผ ํตํด ์ ํํ ์๊ธฐ ์ ๊น์ง..
2021.06.27