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

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

(341)
[Design Pattern] Delegation Pattern en.wikipedia.org/wiki/Delegation_pattern Delegation pattern From Wikipedia, the free encyclopedia Jump to navigation Jump to search In software engineering, the delegation pattern is an object-oriented design pattern that allows object composition to achieve the same code reuse as inheritance. In delegation, an obj en.wikipedia.org ์ƒ์†๊ณผ ๊ฐ™์ด ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋„๋ก ํ•˜๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ๋””์ž์ธ ํŒจํ„ด. ๋‘ ๊ฐœ์˜ ๊ฐ์ฒด(์ˆ˜์‹  ๊ฐœ์ฒด,..
[Kotlin] Delegation kotlinlang.org/docs/delegation.html#overriding-a-member-of-an-interface-implemented-by-delegation Delegation - Help | Kotlin kotlinlang.org Delegation pattern ์€ ์ƒ์†์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ์— ๋Œ€์ฒดํ•˜๊ธฐ ์ข‹๊ณ , Kotlin์€ ๋ณด์ผ๋Ÿฌ์ฝ”๋“œ ์—†์ด ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์›ํ•œ๋‹ค. -> Delegation pattern ํ™•์ธ Derived ํด๋ž˜์Šค๋Š” ์ง€์ •ํ•œ ๊ฐ์ฒด(์—ฌ๊ธฐ์„œ๋Š” BaseImpl)๋กœ ๋ชจ๋“  public ๋ฉค๋ฒ„๋“ค์„ ์œ„์ž„ํ•ด์„œ Base ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. interface Base { fun print() } class BaseImpl(val x: Int) : Base { override fun print..
[Programming] Backpressure medium.com/@jayphelps/backpressure-explained-the-flow-of-data-through-software-2350b3e77ce7 Backpressure explained — the flow of data through software Backpressure is something nearly every software engineer will have to deal with at some point, and for some it’s a frequent problem. But… medium.com ์ดํ•ดํ•œ ๋ฐ”๋ฅผ ์ •๋ฆฌ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ชฉ์ ์€ ์ธํ’‹ ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ•˜๋Š” ์•„์›ƒํ’‹ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. Backpressure๋Š” ์ธํ’‹ ๋ฐ์ดํ„ฐ๋ฅผ ์•„์›ƒํ’‹ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ๊ณผ์ •์— ๋ชจ์ข…์˜ ..
[Kotlin Coroutines] Channels kotlinlang.org/docs/channels.html#channel-basics Channels - Help | Kotlin kotlinlang.org kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/ Channel - kotlinx-coroutines-core Channel Channel is a non-blocking primitive for communication between a sender (via SendChannel) and a receiver (via ReceiveChannel). Conceptually, a channel is similar to Java’..
[Android] java.lang.IllegalStateException: Can't access the Fragment View's LifecycleOwner when getView() is null i.e., before onCreateView() or after onDestroyView() ๋กœ๊ทธ ํ™•์ธ java.lang.IllegalStateException: Can't access the Fragment View's LifecycleOwner when getView() is null i.e., before onCreateView() or after onDestroyView() ํ”„๋ž˜๊ทธ๋จผํŠธ์˜ onCreate() ์•ˆ์—์„œ getViewLifeCycleOwner() ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ๋ฐœ์ƒํ•œ ์ด์Šˆ์ด๋‹ค. 1. Fragment.java์˜ getViewLiveCycleOwner()๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ํ™•์ธํ–ˆ๋‹ค. // This is initialized in performCreateView and unavailable outside of the // onCreateView/onDestroyView lifecycle..
[Kotlin Coroutines] ObsoleteCoroutinesApi annotation class ObsoleteCoroutinesApi ์ฝ”๋ฃจํ‹ด api์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋งˆํฌ ์„ ์–ธ. ํ•ด๋‹น ์„ ์–ธ์˜ ๋””์ž์ธ์— ์•Œ๋ ค์ง„ ์‹ฌ๊ฐํ•œ ๊ฒฐํ•จ์ด ์žˆ๊ณ , ๋ฏธ๋ž˜์— ์žฌ์„ค๊ณ„๋  ๊ฒƒ์ด๋‹ค. ๋Œ€๋žต์ ์œผ๋กœ ๋งํ•˜๋ฉด, ์ด ์„ ์–ธ์€ ๋ฏธ๋ž˜์— deprecated๋  ๊ฒƒ์ด๋‚˜ ์•„์ง ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์—†๊ธฐ์— ๋‹น์žฅ deprecated ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. @ObsoleteCroutinesApi
[Android] AndroidManifest <receiver> developer.android.com/guide/topics/manifest/receiver-element?hl=ko | Android ๊ฐœ๋ฐœ์ž | Android Developers broadcast receiver(BroadcastReceiver ์„œ๋ธŒํด๋ž˜์Šค)๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์„ฑ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. broadcast receiver๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ๋„ ์‹œ์Šคํ…œ์ด๋‚˜ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ธŒ developer.android.com ... ... ... ... ... broadcast receiver(BroadcastReceiver ์„œ๋ธŒํด๋ž˜์Šค)๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ component๋กœ ์„ ์–ธํ•œ๋‹ค. broadcast receiver๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๊ณ  ์žˆ์ง€ ์•Š์„ ๋–„์—๋„ ์‹œ..
[Android] android.intent.action.MY_PACKAGE_REPLACED developer.android.com/reference/android/content/Intent#ACTION_MY_PACKAGE_REPLACED Intent | Android ๊ฐœ๋ฐœ์ž | Android Developers developer.android.com android.content.Intent public static final String ACTION_MY_PACKAGE_REPLACED ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์•ก์…˜: ๊ธฐ์กด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์œ„์— ์ƒˆ ๋ฒ„์ „์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„ค์น˜๋˜์—ˆ์„ ๋•Œ, ๊ต์ฒด๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๊ฒŒ ๋ณด๋‚ด์ง„๋‹ค. ์ถ”๊ฐ€๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์—†๋‹ค. ์ธํ…ํŠธ ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ์ˆ˜์‹ ํ•œ๋‹ค. protected ์ธํ…ํŠธ๋กœ ์‹œ์Šคํ…œ์—์„œ๋งŒ ๋ฐœ์†ก๋œ๋‹ค. ์ƒ์ˆ˜ ๊ฐ’: android.intent.action.MY_PACKAGE_REPLACED e..