Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions Model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
## 문서 - Refeel 모델

SwiftData 기반으로 설계되었으며, `Retrospect` 모델과 `Category` 열거형으로 구성되어 있습니다.

---

## 📘 모델: `Retrospect`

사용자가 하루 회고를 작성할 때 사용하는 주요 데이터 모델입니다.

| 필드명 | 타입 | 설명 | 제약조건 |
| ---------- | --------- | ------------------------ | ------------------------------------- |
| `id` | UUID | 고유 식별자 | Primary Key |
| `date` | Date | 회고 작성 날짜 | Not Null, 하루 시작 시각으로 정규화됨 |
| `content` | String? | 회고 내용 (선택사항) | Nullable |
| `category` | Category? | 회고 카테고리 (선택사항) | Enum 참조 |

---

## 📗 열거형: `Category`

회고에 사용할 수 있는 카테고리 목록입니다. UI에서 한글로 표시되며, Enum의 raw value는 한글입니다.

| Enum 값 | Raw Value | 설명 |
| --------- | --------- | -------------------- |
| `workout` | "운동" | 운동 관련 활동 기록 |
| `study` | "공부" | 학습 및 공부 기록 |
| `work` | "업무" | 일 및 생산 활동 기록 |
| `rest` | "휴식" | 여가 및 휴식 기록 |
| `etc` | "기타" | 기타 활동 기록 |

---

## 🧩 확장 가능성

| 개선 방향 | 설명 |
| ---------------- | ----------------------------------------------------------------- |
| 감정 추가 | 감정 상태 (행복/슬픔 등) Enum으로 확장 가능 |
| 태그(Tag) 기능 | 여러 키워드를 `Set<String>` 또는 별도 `Tag` 모델로 연결 가능 |
| 사용자 모델 연동 | 다중 사용자 회고 지원을 위한 `User` ↔ `Retrospect` 관계 도입 가능 |
| 파일 첨부 기능 | 사진, 음성 등 미디어를 `Retrospect`에 연결 가능 |

## 📌 참고사항

- SwiftData의 `@Model`은 내부적으로 자동으로 id와 저장소를 관리합니다.
- `Calendar.current.startOfDay(for:)`를 통해 `date`를 하루 기준으로 정규화하여 중복 기록 방지에 활용합니다.
46 changes: 46 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,49 @@ Refeel


```

## 실행 방법

### 1. 프로젝트 클론

```bash
git clone https://github.com/jihyeonjjang/HaruPocket.git
cd HaruPocket
```

### 2. Xcode에서 열기

- `HaruPocket.xcodeproj` 또는 `HaruPocket.xcworkspace`를 **Xcode 15 이상**에서 엽니다.

### 3. 패키지 설치 확인

- 프로젝트를 열면 자동으로 **EmojiPicker 2.1.1**이 설치됩니다.
- 설치 오류가 발생할 경우 `File > Packages > Resolve Package Versions`를 선택하세요.

### 4. 실행

- 시뮬레이터 또는 실제 디바이스를 선택 후 ▶️ 버튼으로 실행합니다.

### 5. 미리보기 사용 (옵션)

- `#Preview` 구조와 `inMemory` 컨테이너를 이용해 SwiftUI 뷰 미리보기가 가능합니다.

---

## 실행 방법

### 1. 프로젝트 클론

```bash
git clone https://github.com/refeel-team/refeel-app.git
cd refeel-app
```

### 2. Xcode에서 열기

- `Refeel.xcodeproj` 또는 `Refeel.xcworkspace ( **Xcode 15 이상 권장**)

### 3. 실행

- 시뮬레이터 또는 실제 디바이스를 선택 후 버튼으로 왼쪽 상단에 재생 버튼 또는 `Shift+R` 실행합니다.
니다.
Loading