Project/Android TodoList
[Android] TodoList 앱 만들기 #02 - 아키텍처 설계
Hya68
2025. 6. 23. 15:48
개요
"할 일 목록 추가/삭제/완료 + 데이터가 RoomDB에 영구 저장되는 구조"
사용할 기술
- MVVM 아키텍처 패턴
- RoomDB 사용
- LiveData + ViewModel
- RecyclerView
폴더 구조
com.example.todolist
│
├── data/ ← 데이터 모델 + DB 관련
│ ├── Todo.java ← @Entity 클래스
│ ├── TodoDao.java ← DAO 인터페이스
│ └── TodoDatabase.java ← RoomDatabase 구현
│
├── repository/ ← 데이터 중개자 (Repository)
│ └── TodoRepository.java
│
├── ui/ ← UI 관련
│ ├── MainActivity.java
│ ├── MainViewModel.java
│ └── TodoAdapter.java
│
└── layout/ ← 레이아웃 XML 파일
├── activity_main.xml
└── item_todo.xml
각 파일 역할
파일명 | 역할 |
Todo.java | 할 일 Entity, Room 테이블 역할 |
TodoDao.java | DB 쿼리 인터페이스 (Insert, Delete, Select) |
TodoDatabase.java | Room DB 클래스 (싱글톤 패턴) |
TodoRepository.java | ViewModel에 데이터 제공, DB 작업 중계 |
MainViewModel.java | UI 상태 및 데이터 LiveData로 관리 |
MainActivity.java | UI 초기화 및 사용자 이벤트 처리 |
TodoAdapter.java | RecyclerView Adapter, ViewHolder 포함 |
activity_main.xml | 메인 화면 레이아웃 (RecyclerView 포함) |
item_todo.xml | 리스트 한 줄 아이템 레이아웃 |
동작 흐름
더보기
사용자 UI 이벤트 (MainActivity)
↓
ViewModel 호출 (MainViewModel)
↓
Repository로 데이터 요청 (TodoRepository)
↓
DAO 통해 DB 작업 (TodoDao)
↓
Room DB 반영 (TodoDatabase)
↓
LiveData를 통해 ViewModel에 데이터 반영
↓
MainActivity가 LiveData 옵저빙 → RecyclerView 갱신