์ ์ฒด ๊ธ (377) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [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.. [SonarQube] Android Project์ SonarSanner ์คํํ๊ธฐ SonarQube๋ฅผ ์ค์นํ๊ณ , ์ด์ ์ ๋ง ์ ์ ๋ถ์์ ์ํด ์ค๋นํ๋ค. docs.sonarqube.org/latest/setup/get-started-2-minutes/ Try Out SonarQube | SonarQube Docs From the zip file Download the SonarQube Community Edition zip file. As a non-root user, unzip it, let's say in C:\sonarqube or /opt/sonarqube. As a non-root user, start the SonarQube Server: # On Windows, execute: C:\sonarqube\bin\windows-x86-64\StartSona docs.sonarqub.. [Programming] ๋๋ค์ ๋๋คํจ์ ๋๋ค์ = ๋๋ค ํจ์ ๊ฐ์ ๋ฐํํ๋ ์ฝ๋ ๋ธ๋ญ. ์ต๋ช ํจ์(Anonymous function)๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค. ์ฅ์ ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๋ค. ๊ฐ๋ ์ฑ์ด ํฅ์๋๋ค. ๋ฉ๋ฆฌ์ฐ๋ ๋๋ฅผ ํ์ฉํด ๋ณ๋ ฌ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. ๋จ์ ๋จ์ฉ์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค. ๋๋ฒ๊น ์ด ๊น๋ค๋กญ๋ค. [Programming] Closure ์ฝ๊ฒ ์ด์ผ๊ธฐํด์ ๋ณ์๋ก ์ ์ฅ๋ ์ ์๋ ํจ์. ํจ์ ๋ฐ๊นฅ์ ์ ์๋ ๋ณ์๋ค์ ์ ๊ทผํ ์ ์๋ค. [Kotlin Coroutines] @ExperimentalCoroutinesApi kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-experimental-coroutines-api/ ExperimentalCoroutinesApi - kotlinx-coroutines-core ExperimentalCoroutinesApi annotation class ExperimentalCoroutinesApi (source) Marks declarations that are still experimental in coroutines API, which means that the design of the corresponding declarations has open issues which may (or m.. [Design Pattern]Producer-Consumer Pattern ์์ฐ์-์๋น์ ํจํด ๋ฐ์ดํฐ๋ฅผ ์์ฐํ๋ ์ฃผ์ฒด(producer, ์์ฐ์), ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ฃผ์ฒด(consumer, ์๋น์), ๋ฐ์ดํฐ ๋ชฉ๋ก(Channel, buffer ๋ฑ ๋ค์ํ๊ฒ ๋ถ๋ฅด๋๋ผ)์ผ๋ก ๋ถ๋ฆฌ. ๋ฐ์ดํฐ ์์ฑ, ์ฒ๋ฆฌ ๋ถ๋ถ์ ์ค๊ฐ ์ฐ๊ฒฐ ๊ณ ๋ฆฌ๋ฅผ ๋๋ ๊ฒ. ๋ฐ์ดํฐ์ ํ๋ฆ ์์ฐ์ > ๋ฒํผ(๋ฐ์ดํฐ ๋ชฉ๋ก) > ์๋น์ ์์ฐ์๊ฐ ์์ดํ ์ ์์ฐํ๊ณ ๊ฐ ์์ดํ ์ ๋ฒํผ๊ฐ ๊ฐ๋์ฐฐ ๋๊น์ง ๋ฃ๋๋ค. ๋ฒํผ์ ์ฌ์ ๊ณต๊ฐ์ด ์๊ธฐ๋ฉด ์์ฐ์๊ฐ ๋ค์ ์์ดํ ์ ์์ฐํด ๋ฒํผ์ ๋ฃ๋๋ค. ์๋น์๊ฐ ์์ดํ ์ ๋ฒํผ์์ ๊บผ๋ด ์๋นํ๊ณ , ๋ฒํผ์ ์์ดํ ์ด ์์ผ๋ฉด ๋๊ธฐํ๋ค. ๋ฐ์ดํฐ ์์ฐ ์ฃผ์ฒด์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ฃผ์ฒด๋ฅผ ๋ถ๋ฆฌํ๊ธฐ์ ์ฝ๋์ coupling์ ์ค์ธ๋ค. ์์ฐ์๋ ์๋น์์ ๋ํด ์ ๊ฒฝ ์ธ ํ์๊ฐ ์๋ค. ์๋น์๋ ์์ฐ์์ ์ ๊ฒฝ ์ธ ํ์๊ฐ ์๋ค. ๋ฉํฐ์ฐ๋ ๋ ํ์ฉ์ ์ฌ์ฉํ๋ ํจํด.. ์ด์ 1 ยทยทยท 43 44 45 46 47 48 ๋ค์