9๊ธฐ์ ์ฐ์ปดํท ์ธ๋ฐ์ฑ Start!์ธํผ ์ ๊ณผ ํ ๋ฐ์ ๋๋ ๋ค์ ๋ณด๋ด๊ณ ์๋ค.์์ ๋ง ๋ค์ด๋ 9-6์๋ผ ๋นก์ธ๋ค.. ํ์ง๋ง ์ค์ํ๊ฑด ๊บพ์ด์ง ์๋ ๋ง์!!์ ์ ๋ฒ์ฃผ๊ฐ ์ธํผ 9๊ธฐ ์ ํ์ ๋ ์ด์๋ค! ์ ํ์ ๊ธฐ๋ ์ผ๋ก ์ฐ์ปดํคํธ๋ฅผ ๋ฐ์๋ค.์ง์ํ๋ฉด์ ์ ๋ฒ๊ธฐ์์ ์ฐ์ปดํท๋ค์ ๋ดค์ด์ ๊ธฐ๋ํ์๋๋ฐ
๋ถํ ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ ์ ์๋ค.๋ฐฐ๋ญ์ ๋ด์ ์ ์๋ ์ฉ๋์ด ์์ผ๋ฉด, A,B,C ๋ฌผ๊ฑด ์ค ๋ฌด๊ฒ ๋น ๊ฐ์น๊ฐ ์์๋ก ์ ๋ ฌ์ ํ๋ค.๊ฐ์น๊ฐ ํฐ ๋ฌผ๊ฑด๋ถํฐ ๋ฃ๊ณ ๋จ์ ์ฉ๋์ ์๋ผ์ ๋ด์์ฃผ๋ฉด ๋๋ค.Q . ์ด ๊ฐ๋ฐฉ์ ์ฉ๋์ด 8์ผ ๋ ์ต๋ ๊ฐ์น๋?A . ๋ฌด๊ฒ๋น
Java SE๋ ์๋ฐ์ ํ์ค์์ด๋ค. ์๋ฐ๋ผ๋ ์ธ์ด๊ฐ ์ด๋ ํ ๋ฌธ๋ฒ์ ์ธ ๊ตฌ์ฑ์ ๊ฐ์ก๋์ง์ ๊ฐ์ ๊ฒ๋ค์ ์ ์ํ๊ณ ์๋ค. ์ด๊ฒ์ ๊ตฌ์ฒด์ ์ธ ์ํํธ์จ์ด๊ฐ ์๋๊ณ ๊ทธ ์ํํธ์จ์ด์ ์ค๊ณ๋๋ผ๊ณ ํ ์ ์๋ค. ์ํํธ์จ์ด์์๋ ์ค๊ณ๋๋ผ๋ ํํ ๋์ ์ ๋ช ์ธ์(spec, specificati
pโง(pโจq)์ p์ ๋ช ์ ๋ ๋๋ฑํ๋ค.(pโง~q)โจ(pโงq)= pโง(~qโจq) = pโงT= p(pโจ~q)โง(~pโจ~q)= (pโง~p)โจ~q= Fโจ~q= ~qโ: ์ ์ฒด ํ์ ์โ: ์กด์ฌ ํ์ ์๋์ ํด์ ์์ธ์ฐพ๊ฑฐ๋ ํจ์ ๊ทธ๋ ค์ ํ๋ณํ๋ฉด ๋๋ค.๊ฑฐ์ง (0<x<1)์ฐธ์ฐธ
Soft ๋ก์ง์ ์ง๊ด์ ์ผ๋ก ์๊ฐ๋๊ธฐ ๋๋ฌธ์ Hard ๋ก์ง์ ์ ์๊ฐํด์ผ ํจ๋ช ์ ์๊ฐ์ ์ฐธ & ๊ฒฐ๋ก ์ฐธ = ๋ช ์ ์ฐธ๊ฐ์ ์ฐธ & ๊ฒฐ๋ก ๊ฑฐ์ง = ๋ช ์ ๊ฑฐ์ง๊ฐ์ ๊ฑฐ์ง = ๋ช ์ ๋ฌด์กฐ๊ฑด ์ฐธ์ญ: ๊ฒฐ๋ก , ๊ฐ์ ์ด: ~๊ฐ์ ,~๊ฒฐ๋ก ๋์ฐ: ~๊ฒฐ๋ก ,~๊ฐ์ ์ง๋ฆฌํP(1)์ด ์ฐธ์ด๊ณ , P(n)->p(
๊ด๊ณํ๋ฐ์ดํฐ๋ฒ ์ด์ค (ex.SQLite) SharedPreferences : Key-Value ํํ SharedPreferences ์ ์ฅํ๋ ค๋ ํค-๊ฐ collection์ด ์์ ๊ฒฝ์ฐ SharedPreferencesf๋ฅผ ์ด์ฉํ๋ค. Handler ์๋ก์ด ๊ณต์ ํ๊ฒฝ์ค
Flow : ์์ฐจ์ ์ผ๋ก ๊ฐ์ ๋ฐฐ์ถํ๋ ๋น๋๊ธฐ ๋ฐ์ดํฐ ์คํธ๋ฆผ suspend ํจ์๋ 1๊ฐ์ ๊ฐ์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๋น๋๊ธฐ๋ก ์ฌ๋ฌ๊ฐ์ ๊ฐ์ ๊ณ์ฐํ์ฌ์ผ ํ ๋ Flow๋ฅผ ์ฌ์ฉํ๋ค. ์ฝ๋ฃจํด์ ๊ธฐ๋ฐ์ผ๋ก ๋น๋๋๋ฉฐ, CoroutineScope์์์ ๋์ํ๋ค. suspend ๊ฐ๋ฅํ
Navigaton์ Argument์ธ Safe Args๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํด๋ณด์! 1. ์์กด์ฑ ์ถ๊ฐ ํ๋ก์ ํธ์ Build.gradle id 'androidx.navigation.safeargs.kotlin' version '2.5.3' apply false app
Room ๋ผ์ด๋ธ๋ฌ๋ฆฌ : SQLite์ ์ถ์ํ ๋ ์ด์ด๋ฅผ ์ ๊ณตํ์ฌ SQLite๋ฅผ ์๋ฒฝํ ํ์ฉํ๋ฉด์ ๋ ๊ฒฌ๊ณ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์ธ์ค๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฑ์ ์คํํ๋ ๊ธฐ๊ธฐ์์ ์ฑ ๋ฐ์ดํฐ์ ์บ์๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ฑ์ ๋จ์ผ ์ ๋ณด ์์ค๋ก ์ ๊ณต๋๋ ์ด ์บ์๋ฅผ
๊ทธ๋ฅ ๋น ๋ฅธ ์ทจ์ ์ ๋ชฉํ๋ก ํ๊ณ ์๋ ๋๋ ๊ณต๊ณ ๋ฅผ ๋ณด๊ณ ์ง์์๋ฅผ ๋ด๊ธฐ ๊ธ๊ธํ๊ณ ..์ด๋ค ๊ธฐ์ ์์ ์ง์์๋ฅผ ์ธ์๊น๊ฒ ๋ณด์ จ๋ค๋ฉฐ (์ฌ๊ธฐ ์ด์ฌํ ์ฐ๊ธด ํ์) ๋ฉด์ ์ ๋ดค์๋๋ฐ๊ฑฐ์ ์ธ์ ์ฒซ ๋ฉด์ ์ด๋ผ ๋๋ฌด ๊ธด์ฅํ ํ์ ใ ใ ใ ๋ฌด์จ ๋ง์ ํ๋์ง๋ ๋ชจ๋ฅด๊ฒ ๊ณ ,, ๋ณด๊ณ ๋์ค๋ฉด์๋ ๋ถํฉ์ ํ์ค
Activity๋ก data๋ฅผ ์ ๋ฌํ๋ ๊ฒฝ์ฐ Intent๋ฅผ ์ฌ์ฉ ๋จผ์ ์ ๋ฌํ ๊ธฐ๋ณธ ๋ฆฌ์คํธ๋ฅผ ์์ฑํด์ค๋ค. Intent ์์ฑ ์ context๋ this๋ก ๋ฐ์์ฃผ๊ณ , ์ด๋ํ ์กํฐ๋นํฐ๋ฅผ ์ง์ ํ๋ค. Activity -> Activity Fragment -> Activ
์ต๋ช ํจ์ anonymous fun์ return,break,continue๊ฐ ์ฌ์ฉ๊ฐ๋ฅํ๋คํ์ง๋ง ๋๋ค์์์๋ ์ฌ์ฉํ๊ธฐ ์ด๋ ต๊ณ ๋ผ๋ฒจํ๊ธฐ๋ฒ๊ณผ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋ค๋ถ๊ธฐ์์ด ์ฒ๋ฆฌํ๋คํจ์๊ฐ ํธ์ถ๋๋ ๊ณณ์ ๋ด์ฉ์ ๋ชจ๋ ๊ทธ๋๋ก ๋ณต์ฌํ๋ค (์ ํ์ํจ)๋จ์ ์ ์ฝ๋๊ฐ ๋ณต์ฌ๋๋ฏ๋ก ๋ง์ ํจ์์
์ ์ธ์๋ฃํ ์๋ตval multi = {a:Int, b:Int -> a\*b}์ ์ธ์๋ฃํ ์๋ ๋๋คval multi: (a: Int, b: Int) -> Int = { a, b -> a \* b }๋๋ค์์ด ํ ๋น๋ ๋ณ์๋ ํจ์์ฒ๋ผ ์ฌ์ฉ๊ฐ๋ฅ result = multi(10,
BottomNavigationView ๋ก ํ๋ฉด ์ ํ์ ํ๊ณ ์์๋๋ฐ ํ ๋ฉ๋ด์์ ๋ค๋ฅธ ํ๋๊ทธ๋จผํธ๋ฅผ ๋์ธ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ๋จ๋ฐ ๋ฉ๋ด๋ก ๋๋ ธ์ ๋ ํ๋๊ทธ๋จผํธ์ ์ ํ์ ์ ์๋ํ์ง๋งํ๋จ๋ฐ์ ์์ด์ฝ์ด ์์ง์ด์ง ์๊ณ ! ๊ทธ๋๋ก์ธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค.ํ๋์ ํ๋๊ทธ๋จผํธ์์์ ๋ค๋ฅธ ํ๋๊ทธ
Adapter๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ๋ ์ด์์์ ์ง์ ์ฐ๊ฒฐํด์ฃผ๋ ํด๋์ค์ด๋ค.ListAdapter๋ DiffUtil์ ์ด์ฉํ์ฌ ๋ฆฌ์คํธ๋ฅผ ์ ๋ฐ์ดํธํ๋ ์ด๋ํฐ์ด๋ค.getCurrentList() : ํ์ฌ ๋ฆฌ์คํธ๋ฅผ ๋ฐํํ๋ค.onCurrentListChanged() : ๋ฆฌ์คํธ๊ฐ ์ ๋ฐ์ด
์๋๋ก์ด๋๋ฅผ ๊ตฌ์ฑํ๋ 4๋ Component๋ฅผ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณด์.Activity : ํ๋ฉด๊ตฌ์ฑService : ํ๋ฉด์ด ์๊ณ , ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์ฉ์ดBroadcast Receiver : ์ฑ ๋๋ ๊ธฐ๊ธฐ๊ฐ ๋ฐ์กํ๋ ๋ฐฉ์ก ์์ Content Provider : ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ
๋น๋๊ธฐ๋ผ๋ฉด ๋ง์ด ์ ํ์ AsyncTask, ์ฝ๋ฃจํด, Rxjava๊ฐ ์๋๋ฐ, ์ค๋์ Coroutine ์ ๋ํ์ฌ ์์๋ณด์!๊ตฌ๊ธ์์ AsyncTask๊ฐ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฑ์ ๋ฌธ์ ๋ก deprecated๋์ด์ ์ฝ๋ฃจํด์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค๊ณ ํ๋ค.ํน์ง1\. Heap ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต
์๋ฐ์์ ์ฑ๊ธํค์ ์์ฑํ๋ ค๋ฉด ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.synchronized์ getInstanceํจ์, ๊ทธ๋ฆฌ๊ณ ์ด๋ ํด๋์ค๋ฅผ ์ด์ฉํ์ฌ ์ค๋ ๋์ธ์ดํํ๊ฒ ๋ง๋ ๋ค.์ฝํ๋ฆฐ์์ ์ฑ๊ธํค์ผ๋ก ๊ตฌํํด๋ณด์@Volatile : ๋ณ์์ ๊ฐ์ด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์๋ง ์ ์ฌ๋์ด, ์ค๋ ๋ ๋๊ธฐํ ๋ฌธ์ ๋ฅผ
์๋๋ก์ด๋์์ HTTP ํต์ ์ ํ๊ธฐ ์ํด์๋ 2๊ฐ์ง ๋ฐฉ์์ด ์๋ค.Socket ์ฐ๊ฒฐํด๋ผ์ด์ธํธ์ ์๋ฒ์ ์๋ฐฉํฅ ํต์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ํฉ์ด ํ์ํ ๊ฒฝ์ฐ (์คํธ๋ฆฌ๋ฐ, ์จ๋ผ์ธ ๊ฒ์)HTTP ์ฐ๊ฒฐํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒฝ์ฐ์๋ง ์๋ฒ๊ฐ ์๋ตํ๋ ๋จ๋ฐฉํฅ ํต์ ์ค์๊ฐ
์๋๋ก์ด๋ ์คํ๋์ค์์๋ง Gson์ ์จ๋ณด๋ค๊ฐ ์ธํ ๋ฆฌ์ ์ด์์ ์ธ ์ผ์ด ์๊ฒจ ์์ฑํ๋ ๊ธ! https://mvnrepository.com/artifact/com.google.code.gson/gson ์์ ์ํ๋ ๋ฒ์ ์ gson .jar ํ์ผ์ ๋ค์ด ๋ฐ์ ์ธํ ๋ฆฌ์ ์ด