πŸ‘¨β€πŸ’»[Android] 기초, Platform & Layout (1)

두디·2024λ…„ 10μ›” 10일

Android

λͺ©λ‘ 보기
1/4
post-thumbnail

Platform

ν”Œλž«νΌ μ •μ˜

  • μ œν’ˆ κ°œλ°œμ„ κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” κΈ°μˆ μ΄λ‚˜, ν˜„μž¬ λ˜λŠ” 미래의 κ°œλ°œμ„ μ§€μ›ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€
  • μ‘μš© μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ μ“°μ΄λŠ” ν•˜λ“œμ›¨μ–΄μ™€ μ†Œν”„νŠΈμ›¨μ–΄μ˜ κ²°ν•©

ν”Œλž«νΌ νŠΉμ§•

  • μ§„μž…μ΄ μžμœ λ‘œμ›Œμ•Ό 함
  • μ‚¬μš©μžλ“€μ˜ μ ‘κ·Όκ³Ό 이듀이 μ°Έμ—¬ν•˜λŠ” ν™œλ™, λ‹€λ₯Έ μ‚¬μš©μžλ“€κ³Ό λ§ΊλŠ” 관계λ₯Ό ν•„ν„°λ§ν•˜κ³  ν†΅μ œν•˜κ³  μ œν•œν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό 잘 관리해야 함

ν”Œλž«νΌ μ’…λ₯˜

  • ν•˜λ“œμ›¨μ–΄ ν”Œλž«νΌ
  • μ†Œν”„νŠΈμ›¨μ–΄ ν”Œλž«νΌ
  • μ„œλΉ„μŠ€ ν”Œλž«νΌ
  • λΉ„μ¦ˆλ‹ˆμŠ€ ν”Œλž«νΌ

ν”Œλž«νΌ μ˜ˆμ‹œ

  • λ¦¬λˆ…μŠ€
  • λ§₯ OS
  • λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈ μœˆλ„μš°
  • μœ λ‹‰μŠ€
  • ETC..

운영체제(OS)λž€?

운영체제 μ •μ˜

μ‘μš© ν”„λ‘œκ·Έλž¨ λ˜λŠ” μ‚¬μš©μžκ°€ 컴퓨터 ν•˜λ“œμ›¨μ–΄λ₯Ό νŽΈλ¦¬ν•˜κ³  효율적으둜 μ‚¬μš©ν•˜κ²Œ ν•˜κΈ° μœ„ν•΄ μ‹œμŠ€ν…œ μžμ›(λ©”λͺ¨λ¦¬, ν”„λ‘œμ„ΈμŠ€ λ“±)을 κ΄€λ¦¬ν•˜κ³  μ—¬λŸ¬κ°€μ§€ ν”„λ‘œκ·Έλž¨μ΄ ν•„μš”λ‘œ ν•˜λŠ” 곡톡적인 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄

운영체제 μ’…λ₯˜

  • μš°λΆ„νˆ¬
  • ꡬ름 OS
  • λ¦¬λˆ…μŠ€
  • μ•ˆλ“œλ‘œμ΄λ“œ
  • 크룸 OS
  • μœˆλ„μš°

운영체제 κΈ°λŠ₯

  • μžμ› 관리
    • ν•˜λ“œμ›¨μ–΄(CPU, λ©”λͺ¨λ¦¬, μ €μž₯μž₯치 λ“±..)에 μžμ›μ„ ν• λ‹Ή, 관리
  • λ©”λͺ¨λ¦¬ 관리
    • μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ ν•„μš”λ‘œ ν•˜λŠ” λ©”λͺ¨λ¦¬ 곡간 ν• λ‹Ή, ν•΄μ œ, 가상 λ©”λͺ¨λ¦¬ 관리
  • ν”„λ‘œμ„ΈμŠ€ 관리
    • ν”„λ‘œμ„ΈμŠ€μ˜ 생성, μ‹€ν–‰, μΌμ‹œ μ •μ§€, μ‹œμŠ€ν…œ 쀑지 λ“±μ˜ μž‘μ—… μ œμ–΄
  • λ””μŠ€ν¬ 및 파일 μ‹œμŠ€ν…œ 관리
    • 파일의 생성, μ‚­μ œ, 볡사, 이동 λ“±μ˜ μž‘μ—…μ„ 처리
  • μž…μΆœλ ₯ 관리
    • μ‚¬μš©μžμ™€ μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ ν‚€λ³΄λ“œ, 마우슀, λ””μŠ€ν”Œλ ˆμ΄, ν”„λ¦°ν„° λ“±κ³Όμ˜ 톡신을 ν•  수 μžˆλ„λ‘ 지원
    • μž…μΆœλ ₯ μž₯치 μ„±λŠ₯ μ΅œμ ν™”
  • μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€
    • ν…μŠ€νŠΈ 기반의 터미널 ν™˜κ²½(CLI)κ³Ό κ·Έλž˜ν”½ μ‚¬μš©μž ν™˜κ²½(GUI)을 톡해 μ‚¬μš©μžκ°€ 컴퓨터λ₯Ό μ‘°μž‘ν•  수 μžˆλ„λ‘ 함
  • λ„€νŠΈμ›Œν‚Ή
    • 인터넷 μ—°κ²°, 데이터 전솑, λ„€νŠΈμ›Œν¬ λ³΄μ•ˆ 등을 관리
  • 였λ₯˜ 처리
    • ν”„λ‘œμ„ΈμŠ€μ˜ 비정상 μ’…λ£Œ, λ©”λͺ¨λ¦¬ μ˜€λ²„ν”Œλ‘œμš°, μž…μΆœλ ₯ 였λ₯˜ 등을 κ°μ§€ν•˜κ³  처리
  • μ‹œμŠ€ν…œ λ³΄μ•ˆ
    • μ ‘κ·Ό μ œμ–΄, μ‚¬μš©μž 인증, μ•”ν˜Έν™” λ“±μ˜ κΈ°λŠ₯ 제곡

Android OSλž€?

Android OS μ •μ˜

슀마트폰, νƒœλΈ”λ¦Ώ PC 같은 ν„°μΉ˜ 슀크린 λͺ¨λ°”일 μž₯치 용으둜 λ””μžμΈλœ 운영체제이자 μˆ˜μ •λœ λ¦¬λˆ…μŠ€ 컀널 버전을 λΉ„λ‘―ν•œ μ˜€ν”ˆ μ†ŒμŠ€ μ†Œν”„νŠΈμ›¨μ–΄μ— κΈ°λ°˜μ„ λ‘” λͺ¨λ°”일 운영체제

Android OS νŠΉμ§•

  • μ˜€ν”ˆ μ†ŒμŠ€
  • Java, Kotlin μ–Έμ–΄ μ‚¬μš©
  • μ•± κ°„μ˜ 연동이 쉬움
  • μŠ€λ§ˆνŠΈν°μ„ μœ„ν•œ μ™„λ²½ν•œ μ»΄ν¬λ„ŒνŠΈ 제곡

Android의 Architecture

μ•ˆλ“œλ‘œμ΄λ“œ μ•„ν‚€ν…μ²˜ ꡬ쑰

두 κ°€μ§€ λ ˆμ΄μ–΄κ°€ ν¬ν•¨λ˜μ–΄μ•Ό 함

  1. 화면에 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ν‘œμ‹œν•˜λŠ” UI λ ˆμ΄μ–΄
    • 화면에 데이터λ₯Ό λ Œλ”λ§ν•˜λŠ” UI μš”μ†Œ(View ν˜Ήμ€ Jetpack Compose ν•¨μˆ˜)λ₯Ό μ‚¬μš©ν•΄ λΉŒλ“œν•  수 있음
    • 데이터λ₯Ό λ³΄μœ ν•˜κ³  이λ₯Ό UI에 λ…ΈμΆœν•˜μ—¬ λ‘œμ§μ„ μ²˜λ¦¬ν•˜λŠ” μƒνƒœ 홀더 (ex. ViewModel 클래슀)
  2. μ•±μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ ν¬ν•¨ν•˜κ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 데이터λ₯Ό λ…ΈμΆœν•˜λŠ” 데이터 λ ˆμ΄μ–΄
    μ•±μ—μ„œ μ²˜λ¦¬ν•˜λŠ” λ‹€μ–‘ν•œ μœ ν˜•μ˜ 데이터 λ³„λ‘œ μ €μž₯μ†Œ 클래슀λ₯Ό λ§Œλ“€μ–΄μ•Ό 함
    • μ•±μ˜ λ‚˜λ¨Έμ§€ 뢀뢄에 데이터 λ…ΈμΆœ
    • 데이터 λ³€κ²½ 사항을 ν•œ 곳에 집쀑
    • μ—λŸ¬ 데이터 μ†ŒμŠ€ κ°„μ˜ 좩돌 ν•΄κ²°
    • μ•±μ˜ λ‚˜λ¨Έμ§€ λΆ€λΆ„μ—μ„œ 데이터 μ†ŒμŠ€ μ΄ˆκΈ°ν™”
    • λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 포함

λΉ„μ¦ˆλ‹ˆμŠ€ λ ˆμ΄μ–΄

  • λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ΄λ‚˜ μ—¬λŸ¬ ViewModelμ—μ„œ μž¬μ‚¬μš©λ˜λŠ” κ°„λ‹¨ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직의 μΊ‘μŠν™” λ‹΄λ‹Ή
    • μ½”λ“œ 쀑볡 λ°©μ§€
    • 도메인 λ ˆμ΄μ–΄ 클래슀λ₯Ό μ‚¬μš©ν•˜λŠ” 크래슀의 가독성 κ°œμ„ 
    • μ•±μ˜ ν…ŒμŠ€νŠΈ κ°€λŠ₯성을 λ†’μž„
    • μ±…μž„μ„ λΆ„ν• ν•˜μ—¬ λŒ€ν˜• 클래슀λ₯Ό λ°©μ§€

Android Architecture Component (ACC)λž€?

  • ν…ŒμŠ€νŠΈμ™€ μœ μ§€λ³΄μˆ˜κ°€ μ‰¬μš΄ 앱을 λ””μžμΈν•  수 μžˆλ„λ‘ λ•λŠ” 라이브러리의 λͺ¨μŒ
  • ACC의 ViewModel =! MVVM νŒ¨ν„΄μ˜ ViewModel
    • ACC의 ViewModel : 생λͺ… μ£ΌκΈ°λ₯Ό κ΄€λ¦¬ν•˜μ—¬ 데이터λ₯Ό μœ μ‹€ν•˜μ§€ μ•Šκ³  κ·ΈλŒ€λ‘œ 보쑴해두고 μ‚¬μš©ν•  수 있게 ν•΄μ€Œ
    • MVVMνŒ¨ν„΄μ˜ ViewModel : 뷰와 λͺ¨λΈ μ‚¬μ΄μ—μ„œ 데이터λ₯Ό 관리, λ°”μΈλ”©ν•΄μ£ΌλŠ” μ—­ν• 

DataBinding

  • Dataλ₯Ό UI에 μ‰½κ²Œ Bindingν•˜κΈ° μœ„ν•œ 라이브러리
  • findViewById()에 μ˜ν•΄ View 객체 νšλ“ 및 이용의 λ²ˆκ±°λ‘œμ›€μ„ μ œκ±°ν•˜κΈ° μœ„ν•œ λͺ©μ 
  • DI둜 유λͺ…ν•œ ButterKnife λ“±μ˜ 라이브러리 μ΄μš©λ³΄λ‹€ 효율적
profile
μ•ˆλ“œλ‘œμ΄λ“œ 개발자λ₯Ό κΏˆκΎΈλŠ” 학생

0개의 λŒ“κΈ€