Leaf 앱의 핵심 기능 중 하나인, 등록한 투두리스트를 ‘날짜 반복’ 하는 기능으로
앱 설계 시점에서 가장 쟁점이 되었던 부분.
- A라는 투두리스트가 D날짜에 등록되어서 매일 반복이 된다면, 언제까지 매일 반복해야할까?
- D+1에 있는 A를 A’ 라고 했을 때 오늘 날짜가 D+1이 되었을 때 A와 A’는 같은 인스턴스인가?
- 같은 인스턴스라면 A’를 삭제하면 A도 삭제되는데 유저가 원하는 상황이 아닐 것.
- 다른 인스턴스라면 A를 언제까지 복사해야 하는 걸까? 그리고 복사본이라면 A를 다시 반복해제 했을 때 A’들은 삭제가 되는가?

- 날짜를 Daily로, Daily는 date를 키로 ToDo를 배열로 가진다. 즉, DateKey만 일치하면 A를 D, D+n 에서 모두 가지고 있을 수 있다. → 언제까지 반복할 것인지 지정할 필요가 없다. 반복을 해제하면 모든 A가 반복 해제된다. 또, A의 세부 내용을 수정해도 모든 A가 수정된다. 애초에 A는 복사되지 않았기 때문.
- D에 있던 A는 날짜가 지나 오늘이 D+1이 되었을 때 D+1이 A가 되고 D는 A’로 복사된다. A와 A’는 별개로 A’는 더 이상 자신을 반복하지 않는다.