dla-docs

할 일 목록

1. 목적

할 일 목록 모듈은 정기적인 작업을 관리하고 완료 진행을 추적하는 데 도움이 됩니다:

이 모듈은 자동차 유지보수, 필터 교체, 정기 점검 등의 중요한 작업을 놓치지 않도록 합니다.

2. 사용 시기

다음과 같은 경우 이 모듈을 사용합니다:

3. 관련 화면

4. 주요 사용 방법

4.1 시간 기반 할 일 추가

  1. 기능할 일 목록 선택
  2. 오른쪽 하단의 + (FAB) 버튼 탭
  3. 시간 기반 할 일 선택
  4. 정보 입력:
    • 작업명: (필수, 예: “정수기 필터 교체”)
    • 반복 주기: 수치 입력하고 단위 선택 (일/주/월/년)
    • 다음 만기일: 날짜 선택 (내일 이후만 선택 가능)
    • 알림 시간: 시간 선택 (필수, 예: 08:00)
    • 이 작업에는 지출이 발생: (선택 사항) 지출이 있는 경우 체크
      • 체크한 경우: 카테고리 선택 (필수)
    • 메모: 추가 정보 (선택 사항)
  5. 저장

4.2 지표 기반 할 일 추가

  1. 기능할 일 목록 선택
  2. + (FAB) 버튼 탭
  3. 지표 기반 할 일 선택
  4. 정보 입력:
    • 작업명: (필수, 예: “자동차 오일 교체”)
    • 주기: 수치 입력 (예: 3,000)
    • 단위: 단위 입력 (예: “마일”)
    • 마지막으로 완료한 지표값: 현재 값 입력 (예: 12,500)
    • 이 작업에는 지출이 발생: (선택 사항) 지출이 있는 경우 체크
      • 체크한 경우: 카테고리 선택 (필수)
    • 메모: 추가 정보 (선택 사항)
  5. 저장

4.3 지표 기반 작업 확인

  1. 할 일 목록으로 이동
  2. 확인할 지표 기반 작업 (METRIC 유형) 찾기
  3. 카드의 확인 버튼 탭 (isActive = true인 경우만 표시)
  4. 정보 입력:
    • 현재 지표값: 현재 값 입력 (필수, 마지막으로 완료한 지표값 이상이어야 함)
    • 메모: (선택 사항)
  5. 델타가 자동 계산되는 것을 확인 (현재 값 - 마지막으로 완료한 값)
  6. 확인됨
  7. (작업에 지출이 있는 경우) 지출 추가 또는 취소 선택

참고: 시간 기반 작업 (CYCLE 유형)에는 카드에 “확인” 버튼이 없습니다. 확인은 “만기 작업” (벨 목록) 화면에서만 수행됩니다.

4.4 목록 및 상세 표시

  1. 기능할 일 목록 선택
  2. 검색 바를 사용하여 작업명으로 검색
  3. 필터 칩을 사용하여 필터링:
    • 모두: 모든 작업 표시
    • 시간 기반: CYCLE 유형 작업만 표시
    • 지표 기반: METRIC 유형 작업만 표시
  4. 작업 카드를 탭하여 상세 표시 및 편집

4.5 할 일 편집

  1. 할 일 목록으로 이동
  2. 편집할 작업 카드 탭
  3. 정보 업데이트:
    • 메모: 이력이 있는 경우, 주기 (CYCLE) 또는 단위/주기 (METRIC)는 잠금되며 편집할 수 없습니다
  4. 저장

4.6 이력 표시

  1. 할 일 목록으로 이동
  2. 표시할 작업의 이력 표시 › 링크 탭
  3. 필터 칩을 사용하여 시간으로 필터링:
    • 모두: 모든 이력 표시
    • 이번 달: 이번 달 이력만 표시
    • 지난 달: 지난 달 이력만 표시
    • 과거 3개월: 과거 3개월 이력만 표시

4.7 작업 비활성화/활성화

  1. 할 일 목록으로 이동
  2. 비활성화/활성화할 작업 찾기
  3. 카드 푸터의 활성 스위치 전환
  4. 비활성화된 작업은 “비활성” 배지 (회색)를 표시합니다

4.8 할 일 삭제

  1. 할 일 목록으로 이동
  2. 카드 헤더의 삭제 아이콘 (🗑️) 탭
  3. 대화상자에서 삭제 확인
  4. 작업과 모든 관련 이력이 삭제됩니다

5. 예시 및 UI 설명

TODO-01: 시간 기반 할 일 생성 (정수기 필터 교체)

목표: 시간 기반 할 일을 생성하여 만기일이 되면 앱이 자동으로 알림합니다.

주요 단계:

  1. 기능 → 할 일 목록 → “+” (FAB) 버튼 탭
  2. “시간 기반 할 일” 선택
  3. 작업명 입력: “정수기 필터 교체”
  4. 주기 입력: “3”개월
  5. 다음 만기일 선택: 2026/03/01
  6. 알림 시간 선택: 08:00
  7. “이 작업에는 지출이 발생” 체크, 카테고리 “공공요금” 선택
  8. 메모 입력: “필터#1과#2 교체”
  9. “저장” 탭

와이어프레임 - 시간 기반 할 일 추가 화면:

┌──────────────────────────────────────────────┐
│ <  시간 기반 할 일 추가                      │
├──────────────────────────────────────────────┤

작업명
[ 정수기 필터 교체            ]

반복 주기
[ 3 ] 마다 [ 월 ▼ ]
(단위: 일 / 주 / 월 / 년)

다음 만기일
[ 2026 / 03 / 01    ▼ ]
힌트: 
최초 만기일.
이후 날짜는 입력한 주기에 따라 자동 계산됩니다.

알림 시간
[ 08 : 00           ▼ ]

──────────────────────────────────────────────
[✓] 이 작업에는 지출이 발생

┌─────────────────────────────────────┐
│ 카테고리 *                           │
│ [공공요금 ▼] [+ 새로 만들기]         │
└─────────────────────────────────────┘

──────────────────────────────────────────────
메모 (선택 사항)
[                                          ]
[                                          ]
[                                          ]

──────────────────────────────────────────────
[ 취소 ]                         [ 저장 ]
└──────────────────────────────────────────────┘

TODO-02: 지표 기반 할 일 생성 (자동차 오일 교체)

목표: 주행 거리에 기반하여 자동차 유지보수를 추적하기 위해 지표 기반 할 일을 생성합니다.

주요 단계:

  1. 기능 → 할 일 목록 → “+” (FAB) 버튼 탭
  2. “지표 기반 할 일” 선택
  3. 작업명 입력: “자동차 오일 교체”
  4. 주기 입력: “3,000”, 단위: “마일”
  5. 마지막으로 완료한 지표값 입력: “12,500”
  6. “이 작업에는 지출이 발생” 체크, 카테고리 “자동차 유지보수” 선택
  7. 메모 입력: “오일 + 오일 필터 교체”
  8. “저장” 탭

와이어프레임 - 지표 기반 할 일 추가 화면:

┌──────────────────────────────────────────────┐
│ <  지표 기반 할 일 추가                      │
├──────────────────────────────────────────────┤

작업명
[ 자동차 오일 교체                        ]

주기
[ 3,000 ] 마다 단위 [ 마일 ]
(단위: 마일 / 시간 / 횟수 / ...)

마지막으로 완료한 지표값
[ 12,500 ]

──────────────────────────────────────────────
[✓] 이 작업에는 지출이 발생

┌─────────────────────────────────────┐
│ 카테고리 *                           │
│ [자동차 유지보수 ▼] [+ 새로 만들기] │
└─────────────────────────────────────┘

──────────────────────────────────────────────
메모 (선택 사항)
[                                          ]
[                                          ]
[                                          ]

──────────────────────────────────────────────
[ 취소 ]                         [ 저장 ]
└──────────────────────────────────────────────┘

TODO-03: 목록 및 상세 표시

목표: 할 일의 개요를 표시하고, 유형으로 필터링하며, 검색하고, 각 작업의 상세를 표시합니다.

주요 단계:

  1. 기능 → 할 일 목록으로 이동
  2. 검색 바와 필터 칩이 있는 목록 표시
  3. 필터 사용: “모두”, “시간 기반”, “지표 기반”
  4. 검색 바를 사용하여 작업명으로 검색
  5. 작업 카드를 탭하여 상세 표시

와이어프레임 - 할 일 목록 화면:

┌─────────────────────────────────────────────────────────┐
│  [← 돌아가기]  할 일 목록                        [🔔]    │
└─────────────────────────────────────────────────────────┘
│  🔍 검색...                                             │
│                                                          │
│  [모두] [시간 기반] [지표 기반]                         │
│                                                          │
│  ┌─────────────────────────────────────────────────┐    │
│  │ 카드: 정수기 필터 교체                          │    │
│  │ ┌─────────────────────────────────────────────┐ │    │
│  │ │ 정수기 필터 교체    [완료] [🗑️]             │ │    │
│  │ │                                              │ │    │
│  │ │ 📅 주기: 3개월마다                           │ │    │
│  │ │ ✅ 마지막으로 완료: 2025/12/01               │ │    │
│  │ │ 📅 다음 만기일: 2026/03/01                   │ │    │
│  │ │ ⏳ 남음 76일                                  │ │    │
│  │ │ ───────────────────────────────────────────── │ │    │
│  │ │ 이력 표시 ›                     [⚪ 활성]    │ │    │
│  │ └─────────────────────────────────────────────┘ │    │
│  └─────────────────────────────────────────────────┘    │
│                                                          │
│  ┌─────────────────────────────────────────────────┐    │
│  │ 카드: 자동차 오일 교체                          │    │
│  │ ┌─────────────────────────────────────────────┐ │    │
│  │ │ 자동차 오일 교체                   [🗑️]      │ │    │
│  │ │                                              │ │    │
│  │ │ 📏 추적 단위: 마일                            │ │    │
│  │ │ ✅ 마지막으로 확인: 2025/12/02               │ │    │
│  │ │ 🔢 마지막 지표값: 12,500마일                 │ │    │
│  │ │ 🎯 다음 만기일: 14,500마일                   │ │    │
│  │ │ ⏳ 남음 약 300마일                            │ │    │
│  │ │ ───────────────────────────────────────────── │ │    │
│  │ │ [✓ 확인]                                      │ │    │
│  │ │ ───────────────────────────────────────────── │ │    │
│  │ │ 이력 표시 ›                     [⚪ 활성]    │ │    │
│  │ └─────────────────────────────────────────────┘ │    │
│  └─────────────────────────────────────────────────┘    │
│                                                          │
│  [+ FAB]                                                 │
└─────────────────────────────────────────────────────────┘

TODO-04: 지표 기반 작업 확인 (자동차 오일 교체)

목표: 현재 지표값을 입력하여 지표 기반 작업의 완료를 확인합니다.

주요 단계:

  1. 할 일 목록으로 이동
  2. “자동차 오일 교체” 작업 (METRIC 유형) 찾기
  3. “확인” 버튼 탭
  4. 현재 지표값 입력: “14,520”
  5. 자동 계산된 델타 확인: “+2,020마일”
  6. 메모 입력: “오일 + 오일 필터 교체”
  7. “확인됨” 탭

와이어프레임 - 지표 기반 작업 확인 대화상자:

┌──────────────────────────────────────────────┐
│  지표 기반 작업 확인                         │
├──────────────────────────────────────────────┤

작업명:
자동차 오일 교체   (읽기 전용)

추적 단위:
마일   (읽기 전용)

마지막으로 완료한 지표값:
12,500마일   (읽기 전용)

──────────────────────────────────────────────
현재 지표값
[ 14,520 ] 마일

델타:
+2,020마일   (자동)

──────────────────────────────────────────────
메모
[                                          ]
[                                          ]
[                                          ]

──────────────────────────────────────────────
        [ 미확인 ]    [ 확인됨 ]
└──────────────────────────────────────────────┘

TODO-05: 할 일 편집 및 이력 표시

목표: 할 일의 정보를 편집하고 완료 이력을 표시합니다.

주요 단계:

  1. 할 일 목록으로 이동
  2. “정수기 필터 교체” 작업 카드 탭
  3. 경고 확인: “⚠️ 이력이 있어 주기가 잠금되어 있습니다” (이력이 존재하는 경우)
  4. 다음 만기일, 알림 시간, 메모 편집
  5. “저장” 탭
  6. “이력 표시 ›” 탭하여 필터가 있는 이력 표시

와이어프레임 - 할 일 이력 화면:

┌─────────────────────────────────────────────────────────┐
│  [← 돌아가기]  할 일 이력 - 정수기 필터 교체            │
└─────────────────────────────────────────────────────────┘
│  [모두] [이번 달] [지난 달] [과거 3개월]                │
│                                                          │
│  ┌─────────────────────────────────────────────────┐    │
│  │ 정수기 필터 교체            [완료]              │    │
│  │                                                  │    │
│  │ 📅 주기: 3개월마다                              │    │
│  │ ✅ 완료일: 2025/12/01 – 09:10                 │    │
│  │ 📝 메모: 필터#1과#2 교체                        │    │
│  └─────────────────────────────────────────────────┘    │
│                                                          │
│  ┌─────────────────────────────────────────────────┐    │
│  │ 정수기 필터 교체            [완료]              │    │
│  │                                                  │    │
│  │ 📅 주기: 3개월마다                              │    │
│  │ ✅ 완료일: 2025/09/01 – 08:45                 │    │
│  └─────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────┘

TODO-06: 할 일 비활성화 및 삭제

목표: 더 이상 필요하지 않은 할 일을 비활성화하거나 삭제합니다.

주요 단계:

  1. 할 일 목록으로 이동
  2. 비활성화할 작업 찾기
  3. “활성” 스위치를 탭하여 끄기
  4. “비활성” 배지가 표시되는 것을 확인
  5. 스위치를 다시 탭하여 재활성화
  6. 삭제 아이콘 (🗑️)을 탭하여 작업 삭제
  7. 대화상자에서 삭제 확인

TODO-07: 지표 기반 작업 확인 및 지출 추가

목표: 지표 기반 작업을 확인하고 관련 지출을 자동으로 추가합니다.

주요 단계:

  1. 할 일 목록으로 이동
  2. “자동차 오일 교체” 작업 찾기 (METRIC 유형, hasCost = true)
  3. “확인” 버튼 탭
  4. 현재 지표값 입력: “14,520”
  5. 메모 입력: “오일 + 오일 필터 교체”
  6. “확인됨” 탭
  7. “지출이 발생했습니까?” 대화상자가 자동으로 열리는 것을 확인
  8. “지출 추가” 탭
  9. 메모와 카테고리가 미리 입력된 “지출 추가” 화면 확인
  10. 금액 입력: ₩65,000
  11. “저장” 탭

와이어프레임 - 지출 발생 대화상자:

┌──────────────────────────────────────────────┐
│  지출이 발생했습니까?                         │
├──────────────────────────────────────────────┤
이 완료에 대해 지출을 추가하시겠습니까?

        [ 취소 ]         [ 지출 추가 ]
└──────────────────────────────────────────────┘

6. 로직 및 규칙

6.1 할 일 유형

6.2 할 일 상태

6.3 주기/단위 잠금

6.4 지표 기반 작업 확인

6.5 알림

6.6 다음 만기일 계산

7. 중요 참고 사항

  1. 확인 버튼:
    • 시간 기반 작업 (CYCLE): 카드에 “확인” 버튼이 없습니다. 확인은 “만기 작업” (벨 목록) 화면에서만 수행됩니다.
    • 지표 기반 작업 (METRIC): 카드에 “확인” 버튼이 있습니다 (isActive = true인 경우만 표시).
  2. 벨 아이콘: 헤더의 벨 아이콘은 “만기 작업” (벨 목록) 화면으로 이동하며, 사용자가 만기 작업을 확인할 수 있습니다 (CYCLE 유형만).

  3. 주기/단위 잠금: 이력이 있는 경우, 주기 (CYCLE) 또는 단위/주기 (METRIC)가 잠금되며 데이터 일관성을 보장하기 위해 편집할 수 없습니다.

  4. 지표 검증: 지표 기반 작업을 확인할 때, 현재 지표값은 마지막으로 완료한 지표값 이상이어야 합니다. 그렇지 않으면 앱이 오류를 표시하고 확인을 방지합니다.

  5. 발생한 지출: 작업에 지출이 있는 경우 (hasCost = true), 확인 성공 후 앱이 지출을 추가할지 묻습니다. “지출 추가”를 선택하면 앱이 자동으로 메모와 카테고리를 미리 입력합니다.

  6. 작업 삭제: 작업을 삭제할 때 모든 관련 이력도 삭제됩니다 (카스케이드 삭제). 알림도 취소됩니다.

  7. 비활성화: CYCLE 유형 작업을 비활성화할 때 알림이 취소됩니다. 재활성화할 때 알림이 재스케줄됩니다 (nextDueDate >= today인 경우).

  8. 프리미엄 액세스: 이 모듈에는 프리미엄 액세스가 필요합니다. 프리미엄이 없는 경우 앱이 업그레이드를 요청하는 대화상자를 표시합니다.