๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋นˆ ๊ตฌ๋ฉ ์ฑ„์šฐ๊ธฐ

(341)
[Programming] ๋ฉฑ๋“ฑ(ๅ†ช็ญ‰, idempotent) ko.wikipedia.org/wiki/%EB%A9%B1%EB%93%B1%EB%B2%95%EC%B9%99 ๋ฉฑ๋“ฑ๋ฒ•์น™ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „ ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ๋ฉฑ๋“ฑ๋ฒ•์น™(ๅ†ช็ญ‰ๆณ•ๅ‰‡) ๋˜๋Š” ๋ฉฑ๋“ฑ์„ฑ(ๅ†ช็ญ‰ๆ€ง, ์˜์–ด: idempotent)์€ ์ˆ˜ํ•™์ด๋‚˜ ์ „์‚ฐํ•™์—์„œ ์—ฐ์‚ฐ์˜ ํ•œ ์„ฑ์งˆ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์œผ๋กœ, ์—ฐ์‚ฐ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ ์šฉํ•˜๋”๋ผ๋„ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ ko.wikipedia.org ๋ฉฑ๋“ฑ๋ฒ•์น™, ๋ฉฑ๋“ฑ์„ฑ ์—ฐ์‚ฐ์„ ์—ฌ๋Ÿฌ๋ฒˆ ์ ์šฉํ•ด๋„ ๊ฒฐ๊ณผ๋Š” ๊ฐ™์€ ์„ฑ์งˆ ๋ฉฑ๋“ฑ์„ฑ์ด ์žˆ๋Š” ํ•จ์ˆ˜๋Š” ๋ฉฑ๋“ฑ ํ•จ์ˆ˜(idempotent function)๋ผ๊ณ  ๋ถ€๋ฆ„ ๋‹จํ•ญ์—ฐ์‚ฐ ๋‹จํ•ญ์—ฐ์‚ฐ f, ์–ด๋–ค ์ง‘ํ•ฉ S์˜ ๋ชจ๋“  ์›์†Œ๋Š” x f(f(x)) = f(x) ์ดํ•ญ์—ฐ์‚ฐ ์ดํ•ญ์—ฐ์‚ฐ โ˜…, ์–ด๋–ค ์ง‘ํ•ฉ S์˜ ๋ชจ๋“  ์›์†Œ x xโ˜…x = x ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฉฑ๋“ฑ์„ฑ ํ•จ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ํ˜ธ์ถœํ•ด..
[Library] Moshi Converter github.com/square/retrofit/tree/master/retrofit-converters/moshi square/retrofit A type-safe HTTP client for Android and the JVM. Contribute to square/retrofit development by creating an account on GitHub. github.com ์˜ˆ์ œ private fun getRetrofit() = Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(MoshiConverterFactory.create()) .build() Gson ๋ณด๋‹ค Moshi๊ฐ€ ๋‚˜์€ ์  : www.reddit.com/r/androiddev/..
[Java] Class.java public boolean isAssignableFrom(Class<?> cls) java.lang.Class public boolean isAssignableFrom(Class cls) ํ•ด๋‹น ํด๋ž˜์Šค(๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค)์˜ Class object ๊ฐ€ ํŒŒ๋ผ๋ฏธํ„ฐ cls(ํด๋ž˜์Šค ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค) Class์™€ ๋™์ผํ•˜๊ฑฐ๋‚˜ cls์˜ superclass ๋˜๋Š” superinterface์ผ ๊ฒฝ์šฐ true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์•„๋‹ ๊ฒฝ์šฐ false ๋ฐ˜ํ™˜. ์ฆ‰, ํ•ด๋‹น ํด๋ž˜์Šค/์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํด๋ž˜์Šค/์ธํ„ฐํŽ˜์Šค์™€ ๊ฐ™๊ฑฐ๋‚˜, ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํด๋ž˜์Šค์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค/์ธํ„ฐํŽ˜์ด์Šค์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜. {์ž์‹ ํด๋ž˜์Šค}.isAssignableFrom({์ž์‹ ํด๋ž˜์Šค}) -> true {์ž์‹ ํด๋ž˜์Šค}.isAssignableFrom({๋ถ€๋ชจ ํด๋ž˜์Šค}) -> false {๋ถ€๋ชจ ํด๋ž˜์Šค}.isAssignableFrom({์ž์‹ ํด๋ž˜์Šค}) -> fals..
[Kotlin] ::class.java ์ฝ”ํ‹€๋ฆฐ์—์„œ ์ž๋ฐ” ๋ฆฌํ”Œ๋ ‰์…˜ ์‚ฌ์šฉํ•˜๋„๋ก ํ•จ. kotlinlang.org/docs/java-interop.html#java-reflection
[Android ์‚ฝ์งˆ ๊ตํ›ˆ] RecyclerView์— RxJava๋Š” ์“ฐ์ง€ ๋ง์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ์˜ ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ์— ์—ฐ์†๋˜๋Š” ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ๋ง‰๊ณ ์ž RxJava์˜ throttleFirst๋ฅผ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. (์ €๋Š” ์ด ์ž‘์—…์ด RxJava์˜ ์‘์šฉ์— ์ œ๊ฐ€ ํ•œ ๋ฐœ์ง ๋” ๋‚˜์•„๊ฐ”๋‹ค๋Š” ์ƒ๊ฐ์— ์‚ฌ๋ฌด์‹ค์—์„œ ๋‚ด์  ๊ธฐ์จ์„ ๋ˆ„๋ ธ์–ด์š”.) ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋„ ์žŠ์ง€ ๋ง๊ณ  ๋ง‰์•„์•ผ์ง€๐Ÿ˜‰ ์ด๋Ÿฌ๊ณ  RecyclerView์—์„œ RxJava์˜ dispose๋ฅผ ์ง„ํ–‰ํ•  ์ ๋‹นํ•œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‚˜ ๊ตฌ๊ธ€์—๊ฒŒ ๋ฌผ์–ด๋ดค์Šต๋‹ˆ๋‹ค. StackOverFlow์—์„œ ์–ด๋Œ‘ํ„ฐ ์•ˆ์˜ onViewDetachedFromWindow๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ธ€์„ ํ™•์ธํ–ˆ๊ตฌ์š”. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์งฐ์–ด์š”. override fun onViewDetachedFromWindow(holder: RecyclerView.ViewHolder) { if (holder is ViewHolder) {..