1. 소개
TIMELINE 에 대하여
- TIMELINE 은 페이지를 최근 작성일 순으로 표시하는 화면
- 페이지 뿐만 아니라 페이지 안에 삽입된 날짜, 일정, 기한이 있는 할일도 함께 표시됨.
- TIMELINE 에 Page 가 1만 5천개를 넘어가면 3초 이상의 loading 시간이 걸려 속도를 개선할 필요함.
요구조건 정의
-
TIMELINE 에 Item loading 속도를 1만 5천개 기준으로 500 ms 미만으로 나올 수 있도록 한다.
-
TIMELINE 에 표시되는 Item의 상세 요구조건은 아래 페이지와 같다.
Timeline 노출 상세 요구조건
-
기존 TIMELINE 은 아키텍처가 없어, 이번 작업을 하면서 DataBinding 을 이용한 MVVM 구조로 구현한다.
-
요구조건이 명확한 만큼 테스트 케이스를 작성한다.
주요 화면

2. 개발
사용된 기술 스택
- Java, RxJava, Junit4, MVVM 구조 (dataBinding 사용)
프로그램 구조

TIMELINE 프로그램 구조도 (클래스의 주요 멤버변수, 멤버 함수만 표시)
- TimelineRepository : ViewModel 에서 Repository(DB)에 DATA를 읽고, 쓰기 위해 사용하는 인터페이스. Timeline에 표시될 DATA를 load 하고, 즐겨찾기 추가/삭제, 페이지 삭제 함수도 제공
- loadTimelineItemList() 의 경우 loadTodo, loadNote 등 의 Observable 을 Merge 하여 구현함.