일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 경사하강법
- k겹 교차검증
- 경제신문스크랩
- GPT-3
- 안드로이드
- 안드로이드 구조
- 선형회귀
- ESG
- 뉴로 심볼릭
- 면접왕이형
- 독서 #독서후기 #피로사회 #행동과잉 #긍정과잉
- 베스트 모델
- nlp
- MRC
- andoriod with kotlin
- 모두의 딥러닝
- 밑바닥부터 시작하는 딥러닝
- 과적합
- 다중분류
- 면접왕 이형
- 보이스피싱
- gradiant descent
- 학습 자동 중단
- 로지스틱 회귀법
- 예측선
- ESG 채권
- 밑시딥
- 밑시딥2
- 딥페이크
- 코틀린
- Today
- Total
Practice makes perfect!
앱 아키텍처 본문
앱은 사용자 중심의 다양한 워크플로우 및 작업에 맞게 조정될 수 있어야 한다.
또한 휴대 기기는 리소스가 제한되어 있으므로, os가 새로운 앱을 위한 공간을 확보하도록 언제든지 일부 앱을 종료해야 할 수 있다. 이런 환경 조건을 고려해볼 때 앱 구성요소는 개별적이고 비순차적으로 실행될 수 있으며, 운영체제나 사용자가 언제든지 앱 구성요소를 제거할 수 있다.
이런 이벤트는 직접 제어할 수 없기 때문에 앱 구성요소에 애플리케이션 데이터나 상태를 저장하면 안되고, 앱 구성요소가 서로 종속되면 안된다.
일반 아키텍처 원칙
앱 아키텍처는 앱의 부분과 그 각 부분에 필요한 기능 간의 경계를 정의한다.
관심사 분리
Activity 또는 Fragment에 모든 코드를 작성하는 실수는 흔히 일어난다.
이러한 UI 기반의 클래스는 UI 및 OS 상호작용을 처리하는 로직만 포함해야한다. 또한 클래스를 최대한 가볍게 유지해 구성요소 수명 주기와 관련된 많은 문제를 피할 수 있다. os는 사용자 상호작용을 기반으로 또는 메모리 부족과 같은 시스템 조건으로 언제든지 클래스를 제거할 수 있다. 때문에 클래스에 대한 의존성을 최소화하는 것이 좋다.
데이터 모델에서 UI 도출하기
데이터 모델은 앱의 데이터를 나타내며, 앱의 UI 요소 및 기타 구성요소로부터 독립되어 있다. 즉, 이들은 UI 및 앱 구성요소 수명 주기와는 관련이 없다. 하지만 os가 메모리에서 앱의 프로세스를 삭제하기로 결정하면 데이터 모델도 삭제된다. 이에 android os에서 리소스를 확보하기 위해 앱을 제거해도 사용자 데이터가 삭제되지 않고, 네트워크 연결이 취약하거나 연결되어 있지 않아도 앱이 계속 작동하도록 지속 모델을 사용하는 것이 권장된다.
단일 소스 저장소
앱에서 새로운 데이터 유형을 정의할 때는 데이터 유형에 단일 소스 저장소 (SSOT)를 할당해야 한다. SSOT는 데이터의 소유자이며, SSOT만 데이터를 수정하거나 변경할 수 있다. SSOT는 이를 위해 불변 유형을 사용해 데이터를 노출하며, 다른 유형이 호출할 수 있는 이벤트를 수신하거나 함수를 노출하여 데이터를 수정한다.
이 패턴으로
- 특정 유형 데이터의 모든 변경사항을 한곳으로 일원화하고
- 다른 유형이 조작할 수 없도록 데이터를 보호하며
- 데이터 변경 사항을 더 쉽게 추적할 수 있도록 한다.
오프라인 중심 애플리케이션의 데이터 정보 소스는 주로 데이터 베이스이며, ViewModel이거나 UI가 정보 소스인 경우도 있다.
ㅁ
'Study > Andriod with kotlin' 카테고리의 다른 글
Layout (0) | 2023.05.13 |
---|---|
[코.활.안] 안드로이드 개요 및 개발 환경 (1) | 2023.04.15 |