[KOTLIN] ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 6. 11. 22:38

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° κ°œλ… ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ΄λž€? 코틀린은 ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°κ³Ό 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ„ λͺ¨λ‘ μ§€μ›ν•˜λŠ” 닀쀑 νŒ¨λŸ¬λ‹€μž„ μ–Έμ–΄ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ 순수 ν•¨μˆ˜λ₯Ό μž‘μ„±ν•˜μ—¬ ν”„λ‘œκ·Έλž¨μ˜ λΆ€μž‘μš©μ„ μ€„μ΄λŠ” ν”„λ‘œκ·Έλž˜λ° 기법을 μ˜λ―Έν•¨ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” λžŒλ‹€μ‹κ³Ό κ³ μ°¨ ν•¨μˆ˜λ₯Ό μ‚¬μš© 순수 ν•¨μˆ˜ 순수 ν•¨μˆ˜λž€? ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ 순수 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μžλŠ” κ²ƒμ—μ„œ μ‹œμž‘λ¨ 만일 μ–΄λ–€ ν•¨μˆ˜κ°€ 같은 μΈμžμ— λŒ€ν•˜μ—¬ 항상 같은 κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λ©΄ 'λΆ€μž‘μš©μ΄ μ—†λŠ” ν•¨μˆ˜'라고 말함 'λΆ€μž‘μš©μ΄ μ—†λŠ” ν•¨μˆ˜'κ°€ ν•¨μˆ˜ μ™ΈλΆ€μ˜ μ–΄λ–€ μƒνƒœλ„ 바꾸지 μ•ŠλŠ”λ‹€λ©΄ 순수 ν•¨μˆ˜λΌκ³  함 μ΄λŸ¬ν•œ νŠΉμ„±μœΌλ‘œ μŠ€λ ˆλ“œμ— μ‚¬μš©ν•΄λ„ μ•ˆμ „ν•˜κ³ , ν…ŒμŠ€νŠΈν•˜κΈ°λ„ μ‰½λ‹€λŠ” μž₯점이 있음 λžŒλ‹€μ‹ λžŒλ‹€μ‹μ΄λž€? ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ‚¬μš©λ˜λŠ” κ°œλ… μˆ˜ν•™μ—μ„œ λ§ν•˜λŠ” λžŒλ‹€ λŒ€μˆ˜λ‘œλΆ€ν„° 유래됨 λ‹€..

[ANDROID] μ„œλΉ„μŠ€μ™€ μ‹œμž‘ νƒ€μž… μ„œλΉ„μŠ€ κ΅¬ν˜„
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 6. 10. 23:25

μ„œλΉ„μŠ€ κ°œλ… μ„œλΉ„μŠ€λž€? μ•ˆλ“œλ‘œμ΄λ“œ 4λŒ€ μ»΄ν¬λ„ŒνŠΈ 쀑 ν•˜λ‚˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•˜λ‹€ 보면 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ 없이 λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰λ˜λŠ” λ™μž‘μ΄ ν•„μš”ν•œ κ²½μš°κ°€ 있음 Ex) λ°°κ²½ μŒμ•… μž¬μƒ, νŠΉμ •ν•œ μ›Ή μ‚¬μ΄νŠΈμ—μ„œ 주기적으둜 데이터λ₯Ό μ½μ–΄μ˜€λŠ” 경우 이런 경우 μ‚¬μš©ν•˜λŠ” 것이 λ°”λ‘œ μ„œλΉ„μŠ€ μ„œλΉ„μŠ€μ˜ νŠΉμ§• μ•‘ν‹°λΉ„ν‹°μ™€λŠ” 달리, μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό 가지지 μ•ŠμŒ μ„œλΉ„μŠ€λŠ” 일반적으둜 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ˜ν•΄ μ‹œμž‘λ¨ ν•œλ²ˆ μ‹œμž‘λœ μ„œλΉ„μŠ€λŠ” μ‚¬μš©μžκ°€ λ‹€λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œ μ΄λ™ν•˜λ”λΌλ„ λ°±κ·ΈλΌμš΄λ“œμ—μ„œ 계속 싀행됨 λͺ¨λ“  μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ꡬ성 μš”μ†Œκ°€ ν•΄λ‹Ή μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•  수 있음(심지어 λ³„λ„μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλ„ μ‚¬μš© κ°€λŠ₯) μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜λ©΄ IPC(ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신) κΈ°λŠ₯도 κ΅¬ν˜„ν•  수 있음 λ„€νŠΈμ›Œν¬ νŠΈλžœμž­μ…˜, μŒμ•… μž¬μƒ, 파일 μž…μΆœλ ₯, μ½˜ν…νŠΈ 제곡..

[ANDROID] 데이터 바인딩 라이브러리
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 3. 25. 12:14

Data Binding? μ½”λ“œμ—μ„œ μž‘μ„±ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, 선언적 ν˜•μ‹μœΌλ‘œ λ ˆμ΄μ•„μ›ƒμ˜ UI κ΅¬μ„±μš”μ†Œλ₯Ό μ•±μ˜ 데이터 μ†ŒμŠ€μ™€ κ²°ν•©ν•  수 μžˆλŠ” 지원 λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€. 보톡 μ½”λ“œμ—μ„œ λ‹€μŒκ³Ό 같이 findViewById()λ₯Ό ν˜ΈμΆœν•˜μ—¬ μœ„μ ―μ„ μ°Ύκ³ , 데이터 μ†ŒμŠ€λ₯Ό μœ„μ ―μ˜ 속성에 κ²°ν•©μ‹œν‚€λŠ” λ°©μ‹μœΌλ‘œ μ§„ν–‰ν•©λ‹ˆλ‹€. λ§Œμ•½ 데이터 바인딩 라이브러리λ₯Ό μ‚¬μš©ν•˜λ©΄ 이런 λ°©μ‹μœΌλ‘œ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ ˆμ΄μ•„μ›ƒ νŒŒμΌμ—μ„œ κ΅¬μ„±μš”μ†Œλ₯Ό λ°μ΄ν„°μ†ŒμŠ€μ™€ κ²°ν•©ν•˜λ©΄ μ•‘ν‹°λΉ„ν‹°μ—μ„œ λ§Žμ€ UI ν”„λ ˆμž„μ›Œν¬ ν˜ΈμΆœμ„ μ‚­μ œν•  수 μžˆμ–΄ λ”μš± λ‹¨μˆœν™”λ˜κ³  μ˜μ‘΄μ„±μ΄ λ–¨μ–΄μ Έ μœ μ§€κ΄€λ¦¬ λ˜ν•œ μ‰¬μ›Œμ§‘λ‹ˆλ‹€. 그리고 μ•± μ„±λŠ₯이 ν–₯μƒλ˜λ©° λ©”λͺ¨λ¦¬ λˆ„μˆ˜ 및 null 포인터 μ˜ˆμ™Έλ₯Ό 방지할 수 μžˆμŠ΅λ‹ˆλ‹€. 데이터 κ²°ν•© 라이브러리 μ‚¬μš© 데이터 κ²°ν•© 라이브러리λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” app μˆ˜μ€€..

[ANDROID] Fragment 기초
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 3. 24. 23:43

Fragmentλž€? ν”„λ ˆκ·Έλ¨ΌνŠΈλŠ” FragmentActivity λ‚΄μ˜ μ–΄λ–€ λ™μž‘ λ˜λŠ” μ‚¬μš©μž UI의 일뢀λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. ν•˜λ‚˜μ˜ 앑티비티에 μ—¬λŸ¬κ°œμ˜ ν”„λž˜κ·Έλ¨ΌνŠΈκ°€ μ‘΄μž¬ν•  수 있으며, ν•˜λ‚˜μ˜ ν”„λž˜κ·Έλ¨ΌνŠΈλ₯Ό μ—¬λŸ¬κ°œμ˜ μ•‘ν‹°λΉ„ν‹°μ—μ„œ μž¬μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ ˆκ·Έλ¨ΌνŠΈλŠ” 자체적으둜 수λͺ… μ£ΌκΈ°λ₯Ό 가지고 있으며, 자체적으둜 이벀트λ₯Ό μˆ˜μ‹ ν•˜κ³ , μ•‘ν‹°λΉ„ν‹° μ‹€ν–‰ 쀑에 μΆ”κ°€ 및 μ‚­μ œκ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€. ν”„λ ˆκ·Έλ¨ΌνŠΈλŠ” 항상 μ•‘ν‹°λΉ„ν‹° 내뢀에 μ‘΄μž¬ν•΄μ•Όν•˜λ©°, μ•‘ν‹°λΉ„ν‹°μ˜ 수λͺ… 주기에 μ§μ ‘μ μœΌλ‘œ 영ν–₯을 λ°›μŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μ•‘ν‹°λΉ„ν‹°κ°€ μΌμ‹œμ •μ§€ μƒνƒœμ— λΉ μ§€λŠ” 경우 λͺ¨λ“  ν”„λ ˆκ·Έλ¨ΌνŠΈλ„ μΌμ‹œμ€‘μ§€ μƒνƒœμ— 빠지며 μ•‘ν‹°λΉ„ν‹°κ°€ μ†Œλ©Έλ˜λŠ” 경우 μ†ν•œ ν”„λ ˆκ·Έλ¨ΌνŠΈλ“€λ„ μ†Œλ©Έλ©λ‹ˆλ‹€. λŒ€μ‹  ν”„λ ˆκ·Έλ¨ΌνŠΈλŠ” μ•‘ν‹°λΉ„ν‹°κ°€ κ΄€λ¦¬ν•˜λŠ” λ°± μŠ€νƒμ— μΆ”κ°€λ˜μ–΄ 보쑴,관리될 수 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ ˆκ·Έλ¨Ό..

[ANDROID] ν”„λ‘œμ„ΈμŠ€ 수λͺ… μ£ΌκΈ°
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 3. 19. 20:54

κ°œμš” ν”„λ‘œμ„ΈμŠ€μ˜ 수λͺ… 관리 방식에 λŒ€ν•΄ μ΄ν•΄ν•œλ‹€. ν”„λ‘œμ„ΈμŠ€ μ€‘μš”λ„ 계측 ꡬ쑰에 λŒ€ν•΄ μ΄ν•΄ν•œλ‹€. μ‹œμŠ€ν…œμ˜ ν”„λ‘œμ„ΈμŠ€ μ€‘μš”λ„ 선별 방식에 λŒ€ν•΄ μ΄ν•΄ν•œλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œμ„ΈμŠ€ λŒ€λΆ€λΆ„μ˜ 경우 λͺ¨λ“  Android μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ 자체 Linux ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ‹€ν–‰λ˜λ©°, μ‹œμŠ€ν…œμ΄ λ©”λͺ¨λ¦¬λ₯Ό νšŒμˆ˜ν•΄μ•Ό ν•  λ•ŒκΉŒμ§€ 계속 μ‹€ν–‰λ©λ‹ˆλ‹€. Android의 ν”„λ‘œμ„ΈμŠ€μ˜ 수λͺ… μ£ΌκΈ°λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ κ΄€λ¦¬λ˜λŠ” 것이 μ•„λ‹ˆλΌ, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 가지고 μžˆλŠ” μš”μ†Œλ“€μ˜ μ€‘μš”μ„±κ³Ό μ‹œμŠ€ν…œμ΄ μ‚¬μš©ν•  수 μžˆλŠ” μž”μ—¬ λ©”λͺ¨λ¦¬ 양을 μ‘°ν•©ν•˜μ—¬ μ‹œμŠ€ν…œμ— μ˜ν•΄ κ²°μ •λ©λ‹ˆλ‹€. λ”°λΌμ„œ μ•ˆλ“œλ‘œμ΄λ“œ κ°œλ°œμžλŠ” λ‹€μ–‘ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ»΄ν¬λ„ŒνŠΈ(Activity, Service, BroadcastReceiver)κ°€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œμ„ΈμŠ€μ˜ μ€‘μš”λ„μ— 영ν–₯을 λ―ΈμΉ˜λŠ” 방식을 이해해야 ν•©λ‹ˆλ‹€. ..