# 🎯 Taskr의 실제 작동 방식

## 3.1 Projects - AI의 서로 다른 작업 공간

### 간단한 설명

프로젝트를 책상 위에 놓인 서로 다른 공책이라고 생각하세요. 한 공책에는 레시피 앱을 만들고 다른 공책에는 운동 추적기를 기록할 때, 페이지가 서로 섞이는 것을 원치 않으실 겁니다. 프로젝트는 AI에게 이와 똑같은 방식으로 작동합니다.

### 실제로 일어나는 일

모든 프로젝트는 `PR_ABC123XYZ...`와 같은 고유 ID를 갖습니다 (PR은 "Project"의 약자입니다). AI는 이 ID를 사용하여 자신이 어떤 "공책"에서 작업 중인지 식별합니다.

**프로젝트 실제 예시:**
- "레시피 앱" 프로젝트를 생성하면 Taskr는 다음을 생성합니다: `PR_01JGYVYMA0Q0K8OOFK12345678`
- 레시피에 관한 모든 태스크(task)는 이 프로젝트에 담깁니다.
- 운동 추적기는 별도의 ID를 갖습니다: `PR_01JGYVYMA0Q0K8OOFK87654321`
- 이들은 절대 섞이지 않습니다!

### 이것이 중요한 이유

**프로젝트 격리가 없을 때:**
- AI가 레시피 앱에 "팔굽혀펴기 50회 하기"를 추가할 수도 있습니다 😅
- 서로 다른 프로젝트의 태스크들이 뒤섞이게 됩니다.
- 무엇이 어디에 속해 있는지 파악하기 어려워집니다.

**프로젝트 격리가 있을 때:**
- 각 프로젝트는 깨끗한 상태로 시작됩니다.
- AI는 한 번에 한 가지 일에만 집중합니다.
- 프로젝트 전환 = 컨텍스트(context)의 완전한 전환을 의미합니다.

### 내부 작동 원리

데이터베이스에서 모든 태스크, 노트(note) 및 데이터 조각에는 프로젝트와 연결되는 `project_id` 필드가 있습니다. 이는 모든 페이지에 어떤 공책 소속인지 적힌 라벨과 같습니다. 시스템은 PostgreSQL의 Row Level Security (RLS)를 사용하여 데이터베이스 수준에서도 프로젝트 간에 데이터가 유출되지 않도록 보장합니다!

---
