-
Notifications
You must be signed in to change notification settings - Fork 0
Core Features
HamSik edited this page Dec 23, 2025
·
1 revision
- Entity: 목표
| Property | Type | Optional | Note |
|---|---|---|---|
| id | UUID | X | PK (고유 식별자) |
| title | String | X | 사용자 표시용 명칭 |
| normalizedTitle | String | X | 검색/대조용 (공백 제거 버전) |
| sessions | [Session] | O | 1:N 관계 (Cascade 삭제 권장) |
- Entity: 메인기록
| Property | Type | Optional | Note |
|---|---|---|---|
| id | UUID | X | PK (고유 식별자) |
| goalID | UUID | X | 어떤 Goal에 속하는지 식별 (FK) |
| action | String | X | 실행할 구체적 행동 |
| vision | String | X | 완수했을 때의 상상된 모습 |
| totalWorkTime | Double | X | 작업 누적 시간 (초 단위) |
| totalRestTime | Double | X | 휴식 누적 시간 (초 단위) |
| outcome | Int (Enum) | X | 0:진행중, 1:성공, 2:실패 |
| createdAt | Date | X | 생성 및 정렬 기준 시점 |
P0: 지능형 목표 입력 (Smart Input)
-
Description: 목표 입력 시 실시간으로 기존
Goal데이터를 검색하여 추천 리스트 제공. -
Technical Strategy:
SwiftUI의.searchable혹은 커스텀 TextField와Predicate필터링을 활용해 입력값 변화(onChange)에 따른 실시간 데이터 매칭.
- Description: "무엇을 할 것인가"와 "끝난 모습은 어떠한가"를 한 흐름에 배치.
-
Technical Strategy:
FocusState를 활용하여 행동 입력 완료 시 자동으로 완수 모습 입력칸으로 포커스 이동, UX 흐름 최적화.
- Description: 상단(작업)과 하단(휴식)의 현재/누적 시간을 동시에 제어.
-
Technical Strategy:
Combine을 이용한Timer.publish를 전역적으로 관리하고, 앱 종료 시에도 시간을 복구할 수 있도록ScenePhase에 맞춰 현재 시각(lastStartedAt)을 저장하는 로직 구현.
- 실패 데이터 분석: 사용자가 실패를 기록했을 때, 그 원인을 파악하거나 다시 시도할 수 있는 유도 로직 개발.
-
데이터 필터링:
Goal기반으로 과거 기록들을 대시보드 형태로 시각화.