header-img
Info :
๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 42
[Android] Data Binding
2023.04.15
๋ฉด์ ‘๊ธฐ๋ก์šฉ Data Binding ์ •๋ฆฌ Data Binding์€ xml ํŒŒ์ผ์— data๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ฒƒ์œผ๋กœ MVVM ํŒจํ„ด์„ ๊ตฌํ˜„ํ•  ๋•Œ LiveData์™€ ํ•จ๊ป˜ ๊ฑฐ์˜ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋จ. ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์˜ ์žฅ์ ์€ ๊ธ€๋ฃจ ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ. ๋ ˆ์ด์•„์›ƒ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋“ค์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ. ๋‚ด๊ฐ€ ์‚ฌ์šฉํ–ˆ๋˜ ๋ถ€๋ถ„ // ... // ... ์ „์ฒด๋ฅผ ํƒœ๊ทธ๋กœ ๊ฐ์‹ธ์ฃผ๊ณ  ํƒœ๊ทธ ์‚ฌ์ด์— ํƒœ๊ทธ๋กœ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์— ํ•„์š”ํ•œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์คŒ. ๋‚˜๋Š” viewmodel์„ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์— ํ•„์š”ํ•œ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด์–ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์คŒ. class MainActivity : BaseActivity(R.layout.activity_main) { override val viewModel by viewModels..
list_img
[Android] MVVM
2023.04.13
๋ฉด์ ‘์ค€๋น„์šฉ MVVM - Android ์ •๋ฆฌ (๋งจ ์•„๋ž˜์˜ ๋ ˆํผ๋Ÿฐ์Šค๋“ค์„ ๊ผญ ํ™•์ธํ•ด์ฃผ์„ธ์š”.) MVC ๊ตฌ์„ฑ : Model, View(์œ ์ €๊ฐ€ ๋ณด๊ณ ์žˆ๋Š” ํ™”๋ฉด), Controller ํ๋ฆ„ : Controller์—์„œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ → ์ด๋ฒคํŠธ์— ๋”ฐ๋ผ Model ์—…๋ฐ์ดํŠธ๋ฅผ ์š”์ฒญ → View์— ์ „๋‹ฌ → View๋Š” Model์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›์•„์„œ ๊ฐฑ์‹  View, Controller์— ๋กœ์ง์ด ์ดํ•ฉ๋˜์–ด ์žˆ์–ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์ด ์‰ฝ์ง€ ์•Š์Œ. ๋˜ํ•œ ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ์— ํŠน์ • ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•ด๋„ ์–ด๋ ค์›€์ด ์žˆ์Œ. MVP ๊ตฌ์„ฑ : Model, View, Presenter(View์—์„œ ์š”์ฒญํ•œ ์ •๋ณด๋ฅผ Model๋กœ๋ถ€ํ„ฐ ๊ฐ€๊ณตํ•˜์—ฌ ๋ทฐ๋กœ ์ „๋‹ฌ) ํ๋ฆ„ : ์‚ฌ์šฉ์ž์˜ ์•ก์…˜์„ View๋กœ๋ถ€ํ„ฐ ๋ฐ›์Œ → View๋Š” ๋ฐ›์€ ์ด๋ฒคํŠธ๋ฅผ Presenter๋กœ ๋„˜๊น€ → P..
list_img
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฆฌ์†Œ์Šค
2023.04.07
bitmap ๋ฐฉ์‹ ์ข…๋ฅ˜ mdpi : ์ดˆ์ฐฝ๊ธฐ๋กœ 1px = 1dp์ž„ hdpi : 1.5px = 1dp xhdpi : 2px = 1dp xxhdpi : 3px = 1dp xxxhdpi : 4px = 1dp ํ•ด์ƒ๋„์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ cpu์˜ ๋…ธ๋™ ๊ฐ•๋„๊ฐ€ ๋‹ฌ๋ผ์ง ๋งŒ์•ฝ xxxhdpi์˜ ํ•ด์ƒ๋„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ xxxhdpi์˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ๋ฉด xxhdpi, xhdpi, hdpi, mdpi ์ˆœ์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์•„๊ฐ€๋ฉด์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋จ ๋น„ํŠธ๋งต์€ ์šฉ๋Ÿ‰์ด ํฐ ๋Œ€์‹  ํ’ˆ์งˆ์ด ์ข‹์Œ, ๊ทธ๋Ÿฌ๋‚˜ xxxhdpi์˜ ํ•ด์ƒ๋„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ๋˜๋Š”๋ฐ ์—†์–ด์„œ mdpi๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ pixel์ด ์ฐŒ๊ทธ๋Ÿฌ๋“œ๋Š” ๋‹จ์ ์ด ์กด์žฌ vector svg ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ํŒŒ์ผ๋กœ xml code๋กœ ์ด๋ฃจ์–ด์ง ๋Œ€์ฒด๋กœ ์šฉ๋Ÿ‰์ด ์ž‘์Œ ์–ด๋–ค ํฌ๊ธฐ์—๋„ ์ƒ๊ด€ ์—†์Œ (ํฌ๊ธฐ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š์Œ) →..
list_img
[Android] AOS ART, Garbage Collector ๋ฐฉ์‹
2023.04.07
Android Linux ๊ธฐ๋ฐ˜ ART(Android Runtime)์ด java๋กœ ๋Œ์•„๊ฐ€๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ๋…๋„ Java ๋ฐฉ์‹์„ ์‚ฌ์šฉ ART? ART๋Š” Android 5.0 (API ๋ ˆ๋ฒจ 21) ์ด์ƒ์ด ์‹คํ–‰๋˜๋Š” ๊ธฐ๊ธฐ์˜ ๊ธฐ๋ณธ ๋Ÿฐํƒ€์ž„. ์ด ๋Ÿฐํƒ€์ž„์€ Android ํ”Œ๋žซํผ๊ณผ ์•ฑ์˜ ์„ฑ๋Šฅ, ์œ ์—ฐ์„ฑ์„ ๊ฐœ์„ ํ•˜๋Š” ์ˆ˜๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณต. ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋˜ Dalvik VM์˜ ํ•œ๊ณ„์ ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ ๊ฐœ๋ฐœ๋œ ๋Ÿฐํƒ€์ž„ ART์˜ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(GC) ๊ฐœ์„  GC๋Š” ๋ฆฌ์†Œ์Šค ์ง‘์•ฝ์ ์ด๋ฏ€๋กœ ์•ฑ ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œ์ผœ ํ™”๋ฉด ๋Š๊น€, UI ์‘๋‹ต์„ฑ ๋ถ€์กฑ ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ์ผ์–ด๋‚จ. ART์—์„œ๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ๋ฐ ์กฐ๊ฐํ™”๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋™์‹œ ๋ณต์‚ฌ, ๋‹จ์ผ GC ์ผ์‹œ์ค‘์ง€๊ฐ€ ์žˆ๋Š” ๋™์‹œ ์‹คํ–‰ ์„ค๊ณ„… ๋“ฑ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ GC๋ฅผ ๊ฐœ์„  ART ๋ฐฉ์‹? m..
list_img
[etc] vi editor ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด
2023.04.07
vi editor ํŒŒ์ผ ์—ด๊ธฐ vi example.txt //์ผ๋ฐ˜ ์—ด๊ธฐ open -a Sublime\ Text example.txt //GUI ๊ธฐ๋ฐ˜ ์—๋””ํ„ฐ๋กœ ์—ด๊ธฐ //ํŒ! ์•„๋ž˜์™€ ๊ฐ™์ด alias๋ฅผ ๋งŒ๋“ค์–ด๋‘๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•จ alias sublime='open -a Sublime\ Text' vi ํŒŒ์ผ ์ €์žฅ ๋ฐ ์ข…๋ฃŒ ํŽธ์ง‘ ๋ชจ๋“œ > ESC > :wq (์ €์žฅ ํ›„ ์ข…๋ฃŒ) :w ์ €์žฅ :q ์•„๋ฌด ์ˆ˜์ • ์ž‘์—… ํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์ด์ „์— :w๋กœ ์ €์žฅํ•œ ํ›„ ์ข…๋ฃŒํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ :wq ์ €์žฅ ํ›„ ์ข…๋ฃŒ :q! ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์ข…๋ฃŒ line number :set number :set nonumber //number ๋‹ค์‹œ ๊ฐ์ถ”๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ํŽธ์ง‘ ๋ชจ๋“œ (Insert Mode, Edit Mode) ํŽธ์ง‘ ๋ชจ๋“œ์˜ ์ตœํ•˜๋‹จ๋ถ€์—๋Š” “ํŒŒ์ผ ์ด๋ฆ„” ๋ผ์ธ์ˆ˜,..
[iOS] xcode์—์„œ ํ•˜์œ„ ํด๋” ๋ณด์ด์ง€ ์•Š๋Š” ๋ฌธ์ œ
2023.04.07
A. ๋ฌธ์ œ ์ƒํ™ฉ xcode์—์„œ git์œผ๋กœ ๋‹ค๋ฅธ branch์˜ ์ž‘์—…์‚ฌํ•ญ pullํ•œ ํ›„ workspace๋ฅผ ์—ฌ๋‹ˆ project navigator์— ํด๋” ๋‚ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ž‘์—…ํ•œ ํŒŒ์ผ์ด ๋ณด์ด์ง€ ์•Š์•˜์Œ. ํŒŒ์ธ๋”์—์„œ ํด๋” ํ™•์ธํ•œ ๊ฒฐ๊ณผ ์ œ๋Œ€๋กœ pull๋„ ๋๊ณ  ํŒŒ์ผ๋„ ์กด์žฌํ–ˆ์Œ. B. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• project navigator์— ๋ˆ„๋ฝ๋œ ํ•˜์œ„ ํด๋”๋“ค์„ ๋“œ๋ž˜๊ทธํ•ด์„œ ๋„ฃ๊ณ  added folders๋ฅผ create groups๋กœ ์„ค์ •ํ•ด์„œ ๋„ฃ์–ด์ฃผ๋ฉด ๋จ. ์•„๋‹ˆ๋ฉด project navigator ์šฐํด๋ฆญ → add files to “…” ์„ ํƒ → ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ํด๋” ๋„ฃ๊ณ  ์˜ต์…˜์„ ๋˜‘๊ฐ™์ด create groups๋กœ ์„ค์ •. ๊ทธ๋ฆฌ๊ณ  add ํ•ด์ฃผ๋ฉด ์ž˜ ๋“ค์–ด๊ฐ€ ์žˆ์Œ.