12주 완성 AI 온디바이스 앱 실전 커리큘럼으로 돌아가기
Mobile & System•2 / 12주차
2주차 마일스톤약 8시간 소요난이도: 초급
Jetpack Compose 기반 선언형 UI 기초 및 상태 관리
Compose 생명주기와 재구성(Recomposition) 최적화, ViewModel과 Unidirectional Data Flow(UDF) 아키텍처
#Jetpack Compose#UDF#ViewModel#Recomposition
이번 주 핵심 학습 목표
- 1기존 명령형 XML View 시스템과 선언형 Jetpack Compose의 패러다임 차이를 완벽히 이해한다.
- 2Recomposition 방지 기법(Stable, Immutable, derivedStateOf)을 실무에 적용한다.
- 3AI 모델 상태(로딩, 추론 중, 결과 완료, 에러)를 UDF 패턴으로 반응형 UI에 바인딩한다.
실전 학습 가이드 & 코드 워크스루
1. 선언형 UI 패러다임의 혁신
과거의 안드로이드 UI는 XML 레이아웃을 인플레이트한 뒤 findViewById로 뷰 인스턴스를 가져와 setText(), setVisibility() 등의 메서드로 상태를 직접 변형하는 명령형(Imperative) 구조였습니다. 이는 상태의 불일치(State Inconsistency)와 무수한 버그를 초래했습니다.
Jetpack Compose는 UI가 "현재 상태(State)의 함수"라는 철학을 따릅니다:
$UI = f(State)$
2. AI 인퍼런스 상태 렌더링 아키텍처
AI 모델은 다음과 같은 4가지 상태를 필연적으로 거칩니다:
- Idle: 모델이 메모리에 로드 대기 중이거나 사용자 입력을 기다리는 상태
- Loading/Inference: 텐서 변환 및 인퍼런스가 비동기 실행되는 상태
- Success: 추론 결과 텐서가 파싱되어 사용자 친화적 데이터로 반환된 상태
- Error: 메모리 부족(OOM), 하드웨어 가속기 실패, 파라미터 불일치 등
kotlin
sealed interface AiScreenState {
data object Idle : AiScreenState
data class Inferencing(val progress: Float) : AiScreenState
data class Success(val outputText: String, val latencyMs: Long) : AiScreenState
data class Error(val message: String) : AiScreenState
}3. 재구성(Recomposition) 최적화 팁
인퍼런스 중 실시간으로 FPS나 랜드마크 좌표가 바뀔 때 전체 화면이 다시 그려지면 심각한 프레임 드랍이 발생합니다.
- 복잡한 람다는
remember로 캐싱할 것 - 자주 바뀌는 스칼라 값은
derivedStateOf로 래핑할 것 - 컬렉션 모델에는
@Immutable어노테이션을 부여할 것
📂 이번 주차 학습 자료 & 실습 파일 다운로드
2개 파일 제공강의 교안 PDF, 실습 스타터 코드, 치트시트 등 학습에 필요한 자료를 별도로 열람하거나 다운로드하여 학습하세요.
2주차_핵심요약_치트시트.pdf
PDF•1.8 MB
2주차 핵심 이론 및 아키텍처 다이어그램 치트시트
2주차_실전_스타터코드.zip
ZIP•3.4 MB
Android Studio 프로젝트 템플릿 및 실습 코드 예제
실전 체크리스트 & 셀프 점검
0 / 4 완료직접 코드를 구현하고 테스트를 완료할 때마다 체크해 보세요. 브라우저에 자동 보관됩니다.
Compose 기본 컴포넌트(Box, Column, Row, LazyColumn) 레이아웃 실습
remember vs rememberSaveable의 차이점 및 프로세스 종료 복원 테스트
derivedStateOf를 활용한 불필요한 재구성 방지 최적화
ViewModel + StateFlow 기반 단방향 데이터 흐름(UDF) 구조 설계
ADVERTISEMENTfirststep.kr ad
1st
firststep.kr 12주 완성 실전 커리어 로드맵
파이썬, 소프트웨어설계, DB, 데이터과학, 딥러닝, LLM 9종 코스 100% 무료
공식 문서 & 추천 자료
12주 완성 AI 온디바이스 앱 실전 커리큘럼
[1주차] 코틀린(Kotlin) 핵심 언어 체계 & 안드로이드 런타임 이해[2주차] Jetpack Compose 기반 선언형 UI 기초 및 상태 관리[3주차] 로컬 경량 AI 모델(ONNX / MediaPipe) 구동 환경 세팅[4주차] 온디바이스 텍스트 & 임베딩 모델 인퍼런스 최적화[5주차] 실시간 컴퓨터 비전(MediaPipe) 객체 인식 & 포즈 추정[6주차] 안드로이드 NNAPI & GPU/NPU 하드웨어 가속기 연동[7주차] 로컬 벡터 DB(ObjectBox / SQLite-VSS) 기반 온디바이스 RAG 구축[8주차] 음성 인식(Whisper.tflite) & 온디바이스 음성 AI 어시스턴트[9주차] 모델 경량화 & 양자화 파이프라인(PyTorch ➔ ONNX ➔ TFLite)[10주차] 백그라운드 비동기 추론 & WorkManager 배터리 최적화[11주차] AI 앱 보안 & 모델 가중치 암호화(EncryptedSharedPreferences / NDK)[12주차] 독자적인 온디바이스 AI 앱 포트폴리오 완성 & 구글 플레이 배포