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

Study

(66)
Git, GitHub๋ž€? Git ์†Œ๊ฐœ ๋„๊ตฌ ๊ฐœ์š” - ๋ฒ„์ „ ๊ด€๋ฆฌ์˜ ๋Œ€ํ‘œ ๋„๊ตฌ ๋ชฉ์ : ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ - ์‚ฐ์ถœ๋ฌผ์˜ ๋ฌด๊ฒฐ์„ฑ ํ™•๋ณด - ์†Œ์Šค์ฝ”๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ - ํŒŒ์ผ ๋ณ€๊ฒฝ ์ด๋ ฅ ๊ด€๋ฆฌ - ์™œ ์ด๋ ‡๊ฒŒ ์ˆ˜์ •ํ–ˆ๋Š”์ง€ ํ™•์ธ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• - ๋ณ„๋„์˜ ์ €์žฅ์†Œ ์šด์˜ ์„œ๋ฒ„ ์‚ฌ์šฉ - Git: GitHub, Bitbucket, Gitlab, Gitblit - ํด๋ผ์ด์–ธํŠธ๋Š” Core๋‚˜ ๋ณ„๋„์˜ ํ™•์žฅ ๋„๊ตฌ ์‚ฌ์šฉ - Eclipse/Intelli J ๊ณ„์—ด/Vs Code ํ”Œ๋Ÿฌ๊ทธ์ธ: ๊ธฐ๋ณธ ํฌํ•จ Git ๊ฐœ์š” ์—ญ์‚ฌ - 2005๋…„ ๋ฆฌ๋ˆ„์Šค ํ† ๋ฐœ์ฆˆ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ๋ฐœ - ํ˜„์žฌ GitHub์—์„œ ์šด์˜ ์‚ฌ์šฉ ์ฃผ์ฒด - ๋ฆฌ๋ˆ…์Šค, Git์„ ํฌํ•จํ•˜์—ฌ ์ฃผ์š” ์˜คํ”ˆ์†Œ์Šค๋Š” Git(GitHub) ์‚ฌ์šฉ - ํšŒ์‚ฌ์˜ ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ๋Š” Git์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ถ”์„ธ Git ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜ - ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋™์ผํ•œ ..
[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 14. DB ํ”„๋กœ์ ํŠธ - ์ˆ˜๊ฐ•์ƒ ์ •๋ณด ๊ด€๋ฆฌ DB ํ”„๋กœ์ ํŠธ ์ˆ˜๊ฐ•์ƒ ์ •๋ณด ๊ด€๋ฆฌ ์ฃผ์š” ๊ตฌ์„ฑ - ์ด 4๊ฐœ์˜ ํ™”๋ฉด์œผ๋กœ ๊ตฌ์„ฑ๋จ - ์•ฑ์„ ์†Œ๊ฐœํ•˜๋Š” ๋ฉ”์ธ ํ™”๋ฉด - ์ˆ˜๊ฐ•์ƒ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ํ™”๋ฉด - ๊ฐœ๋ณ„ ์ˆ˜๊ฐ•์ƒ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ™”๋ฉด - ๋ชจ๋“  ์ˆ˜๊ฐ•์ƒ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ™”๋ฉด - SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉ - ์ถœ๋ ฅํ•ด์•ผ ํ•  ๋ฐ์ดํ„ฐ ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ ๋™์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์„ค์ •ํ•จ ํŒŒ์ผ ํŽธ์ง‘ ์ˆœ์„œ - ๋ฉ”์ธ์•กํ‹ฐ๋น„ํ‹ฐ - MainActivity.kt / activity_main.xml / menu_main.xml - ์ˆ˜๊ฐ•์ƒ ๋“ฑ๋ก ์•กํ‹ฐ๋น„ํ‹ฐ - PersonnelReg.kt / activity_personnel_reg.xml/menu_personnel_reg.xml - ์ˆ˜๊ฐ•์ƒ ์ •๋ณด ์•กํ‹ฐ๋น„ํ‹ฐ - PersonnelInfo.kt / activity_personnel_info.xml ..
[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 13. DB ํ”„๋กœ์ ํŠธ - ๊ทธ๋ฃน ๊ด€๋ฆฌ DB ํ”„๋กœ์ ํŠธ ๊ทธ๋ฃน ๊ด€๋ฆฌ [์ฐธ๊ณ ] ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฐฉ๋ฒ• ์„ค๋ช… ๊ณต์œ  ํ”„๋ ˆํผ๋Ÿฐ์Šค(Shared Preferences) ํ‚ค-๊ฐ’ ์Œ(key-value pair)์œผ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋‚ด๋ถ€ ์ €์žฅ(Internal Storage) ๋‚ด๋ถ€ ์ €์žฅ์†Œ์— ์ €์žฅ ์™ธ๋ถ€ ์ €์žฅ(External Storage) ์™ธ๋ถ€ ์ €์žฅ์†Œ์— ์ €์žฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Database) ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ(Network Connection) ๋ฐ์ดํ„ฐ๋ฅผ ๋„คํŠธ์›Œํฌ ์„œ๋ฒ„์— ์ €์žฅ - ๋‚ด๋ถ€ ์ €์žฅ์†Œ์˜ ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ ์ œ๊ฑฐํ•˜๋ฉด ํŒŒ์ผ๋„ ๊ฐ™์ด ์ œ๊ฑฐ๋จ - ์™ธ๋ถ€์ €์žฅ: SD์นด๋“œ ๊ฐ™์€ ์™ธ๋ถ€ ์ €์žฅ์†Œ ํ•„์š”. ๋ชจ๋“  ์•ฑ๋“ค์ด ๋‹ค ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ(๊ณต์œ  ํ•„์š”ํ•œ ํŒŒ์ผ์— ์ ํ•ฉ) - ๋‚ด๋ถ€์™€ ์™ธ๋ถ€๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฐ€์žฅ ํฐ ํŠน์ง•: permission - ๋‚ด๋ถ€: permissio..
[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 12. ์‹ค์ „ํ”„๋กœ์ ํŠธ(5) - ์‹ค๋กœํฐ ์‹ค์ „ ํ”„๋กœ์ ํŠธ ์‹ค์Šต - ์†์ „๋“ฑ ์ฃผ์š”๊ตฌ์„ฑ - ๊ฐ€๋กœํ™”๋ฉด์œผ๋กœ ๊ณ ์ •๋œ ํ•œ ์•กํ‹ฐ๋น„ํ‹ฐ์— ๋„, ๋ ˆ, ๋ฏธ, ํŒŒ, ์†”, ๋ผ, ์‹œ, ๋„ ์ŒํŒ์ด ์žˆ์Œ - ์ŒํŒ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ์Œ์ด ์žฌ์ƒ๋จ - ์ŒํŒ์€ ํ…์ŠคํŠธ ๋ทฐ ์†์„ฑ์„ ์ˆ˜์ •ํ•˜๊ณ , ์†Œ๋ฆฌ๋Š” SoundPool ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฌ์ƒํ•จ - SoundPool์€ ์•ˆ๋“œ๋กœ์ด๋“œ 5.0๋ถ€ํ„ฐ ์‚ฌ์šฉ๋ฒ•์ด ๋‹ฌ๋ผ์ง - ๊ตฌ ๋ฒ„์ „๊ณผ ์‹  ๋ฒ„์ „๊ธฐ๊ธฐ์—์„œ ๋ชจ๋‘ ์ž˜ ๋™์ž‘ํ•˜๋„๋ก ๋ฒ„์ „ ๋ถ„๊ธฐ๋ฅผ ์ ์šฉํ•จ 1. ๋ ˆ์ด์•„์›ƒ ์ž‘์„ฑ ๊ฐ€๋กœ ๋ชจ๋“œ๋กœ ๊ณ ์ •ํ•˜๊ธฐ ๋ฐฉ๋ฒ•1) MainActivity.kt class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // ํ™”๋ฉด์ด ๊ฐ€๋กœ ๋ชจ๋“œ๋กœ ๊ณ ์ •๋˜๊ฒŒ ํ•˜๊ธฐ ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ• //requestedOr..
[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 11. ์‹ค์ „ํ”„๋กœ์ ํŠธ(4) - ์†์ „๋“ฑ / + ์„œ๋น„์Šค ์‹ค์ „ ํ”„๋กœ์ ํŠธ ์‹ค์Šต - ์†์ „๋“ฑ ์ฃผ์š”๊ตฌ์„ฑ - ์†์ „๋“ฑ ์•ฑ์„ ์•ฑ๊ณผ ์œ„์ ฏ์œผ๋กœ ๊ตฌ์„ฑ - ์•ฑ๊ณผ ์œ„์ ฏ ๋ชจ๋‘ ์†์ „๋“ฑ์„ ์ผœ๊ณ  ๋„๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋งŒ์„ ์ œ๊ณตํ•˜๊ณ  ํ•ต์‹ฌ ๊ธฐ๋Šฅ์€ ์„œ๋น„์Šค์—์„œ ์ˆ˜ํ–‰ โ€ป ์†์ „๋“ฑ ๊ธฐ๋Šฅ์€ ๊ฐ€์ƒ๊ธฐ๊ธฐ๋กœ ๋ถˆ๊ฐ€! ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์™€ ํœด๋Œ€ํฐ ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ• https://curryyou.tistory.com/375 1. ์†์ „๋“ฑ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์†์ „๋“ฑ ๊ธฐ๋Šฅ์„ Torch ํด๋ž˜์Šค ์ž‘์„ฑ - ์†์ „๋“ฑ ๊ธฐ๋Šฅ์„ ๋ณ„๋„์˜ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•ด์„œ Torch ํด๋ž˜์Šค๋ฅผ ์ƒˆ๋กœ ์ž‘์„ฑ โ‘  ํ”„๋กœ์ ํŠธ ์ฐฝ์˜ ํŒจํ‚ค์ง€๋ช…์—์„œ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์„ ํ•˜์—ฌ New → Kotlin File/Class๋ฅผ ํด๋ฆญํ•˜๋ฉด ํŒŒ์ผ ์ข…๋ฅ˜์™€ ์ด๋ฆ„์„ ๊ฒฐ์ •ํ•˜๋Š” ํ™”๋ฉด์ด ํ‘œ์‹œ โ‘ก ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ Torch๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ข…๋ฅ˜๋Š” Class๋ฅผ ์„ ํƒํ•˜์—ฌ OK๋ฅผ ํด๋ฆญ โ‘  ์ด ํด๋ž˜์Šค๋Š” ํ”Œ๋ž˜์‹œ๋ฅผ ์ผœ๋Š” flashOn( ) ..
[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 10. ์‹ค์ „ํ”„๋กœ์ ํŠธ(3) - ์ „์ž์•ก์ž ์‹ค์ „ ํ”„๋กœ์ ํŠธ ์‹ค์Šต - ์ „์ž ์•ก์ž ์ฃผ์š”๊ตฌ์„ฑ - ํ”„๋ž˜๊ทธ๋จผํŠธ๋ผ๋Š” UI ์กฐ๊ฐ์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ํ”„๋ž˜๊ทธ๋จผํŠธ๋“ค์„ ์ขŒ์šฐ๋กœ ์Šฌ๋ผ์ด๋“œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ทฐํŽ˜์ด์ €ViewPager๋ฅผ ์‚ฌ์šฉ - ์‚ฌ์ง„์ด๋ฏธ์ง€ ๋กœ๋”ฉ์— Glide ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉ - timer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ์Šฌ๋ผ์ด๋“œ ๋˜๊ฒŒ ํ•จ 1. ํ”„๋กœ๋ฐ”์ด๋” ์‚ฌ์šฉ ์ฝ˜ํ…์ธ  ํ”„๋กœ๋ฐ”์ด๋” - ์•ฑ์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ ๋‹ค๋ฅธ ์•ฑ์— ํ—ˆ์šฉํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ - ํ”„๋กœ๋ฐ”์ด๋”๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์ง„ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ์ˆœ์„œ โ‘  ์‚ฌ์ง„ ๋ฐ์ดํ„ฐ๋Š” ์™ธ๋ถ€ ์ €์žฅ์†Œ์— ์ €์žฅ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์™ธ๋ถ€ ์ €์žฅ์†Œ ์ฝ๊ธฐ ๊ถŒํ•œ์„ ์•ฑ์— ๋ถ€์—ฌ โ‘ก ์™ธ๋ถ€ ์ €์žฅ์†Œ ์ฝ๊ธฐ ๊ถŒํ•œ์€ ์œ„ํ—˜ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ ์ค‘์— ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ํ—ˆ์šฉํ•˜๋„๋ก ํ•จ โ‘ข contentResolver ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ Cursor ๊ฐ์ฒด๋กœ ๊ฐ€์ง€๊ณ  ์˜ด ์•ˆ๋“œ๋กœ์ด๋“œ 4๋Œ€ ์ปดํฌ๋„ŒํŠธ - ์•กํ‹ฐ๋น„ํ‹ฐ: ํ™”๋ฉด..
[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 9. ์‹ค์ „ํ”„๋กœ์ ํŠธ(2) - ์Šคํ†ฑ์›Œ์น˜ ์‹ค์ „ ํ”„๋กœ์ ํŠธ ์‹ค์Šต - ์Šคํ†ฑ ์›Œ์น˜ ์ฃผ์š”๊ตฌ์„ฑ - ๋น ๋ฅด๊ฒŒ ๊ณ„์‚ฐํ•˜๋ฉด์„œ UI๋ฅผ ๊ฐฑ์‹  - ๊ฐ๊ฐtimer์™€ runOnUiThread ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ - ๋žฉํƒ€์ž„์„ ๋ˆ„์ ํ•˜์—ฌ ํ‘œ์‹œํ•  ScrollView์— ๋™์ ์œผ๋กœ TextView๋ฅผ ์ถ”๊ฐ€ 1. ํ™”๋ฉด๊ตฌ์„ฑ - ์‹œ๊ฐ„์„ ํ‘œ์‹œํ•˜๋Š” TextView 2๊ฐœ - ํƒ€์ด๋จธ๋ฅผ ์‹œ์ž‘ ๋ฐ ์ผ์‹œ์ •์ง€, ์ดˆ๊ธฐํ™”ํ•˜๋Š” FloatingActionButton (๋ฒกํ„ฐ ์•„์ด์ฝ˜ ์ด๋ฏธ์ง€ 3๊ฐœ ์ถ”๊ฐ€) - tint๋กœ ์ƒ‰์ƒ ๋ฐ”๊พธ๊ธฐ → xml ์ฝ”๋“œ์—์„œ app:tint="@color/white"์ถ”๊ฐ€ - FloatingActionButton ์ถ”๊ฐ€์‹œ No speakable text present๋ผ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ activity_main.xml์—์„œ FloatingActionButtom ์†์„ฑ์— tools:ign..
[์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ] 8. ์‹ค์ „ํ”„๋กœ์ ํŠธ(1) - ๋น„๋งŒ๋„๊ณ„์‚ฐ๊ธฐ ์‹ค์ „ ํ”„๋กœ์ ํŠธ ์‹ค์Šต - ๋น„๋งŒ๋„ ๊ณ„์‚ฐ๊ธฐ ์ฃผ์š”๊ตฌ์„ฑ - ๋ชธ๋ฌด๊ฒŒ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ํ™”๋ฉด๊ณผ ๋น„๋งŒ๋„ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ๋‘ ๊ฐœ ํ•„์š”ํ•จ - ์ธํ…ํŠธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„์„œ ๋‹ค๋ฅธ ํ™”๋ฉด์œผ๋กœ ์ „๋‹ฌํ•จ - ConstraintLayout ๊ธฐ๋ฐ˜ 1. res > values > color.xml - ์•ก์…˜๋ฐ” ์ƒ‰์ƒ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด ์ปฌ๋Ÿฌ ์ฝ”๋“œ ์ถ”๊ฐ€ - 16์ง„์ˆ˜๋กœ #FF000000 #FFFFFFFF #FF018786 #00584A 2. res > values > themes > themes.xml - 3. activity_main.xml design๋ชจ๋“œ์—์„œ ์œ„์ ฏ ์ถ”๊ฐ€ - EditText 2๊ฐœ, Button 1๊ฐœ 4. activity_result.xml design๋ชจ๋“œ์—์„œ ์œ„์ ฏ ์ถ”๊ฐ€ - File > New > Activity > E..