공통 컴포넌트 (Navbar, Layout, Header, LongButton, ShortButton, EmptyInfo, Bottom Sheet)
프로젝트 및 라우팅 세팅 깃허브 세팅 트러블 슈팅 기록 및 충돌 해결 테스트 코드 회의 진행 및 발표 | 컨텐츠 추가 페이지 프로필 페이지 프로필 수정 페이지
공통 컴포넌트 (TheModal, Category)
유저 플로우 와이어 프레임 | 북마크 페이지
공통컴포넌트 (Bookmark, Toast, DragAndDrop)
기능 정의서 요구사항 정의서 데이터베이스 구조도 | 홈 페이지 스플래시 페이지 로그인 페이지 404 페이지
공통 컴포넌트 (InfiniteScroll, FirebaseApi, Comments, Assets, Playlist, PlaylistDetail, CommentsModal)
디자인 프로젝트 정의서 리드미 및 발표자료 |
+
+
+
+
+
+## 1. 페이지
+
+|  |  |  |  |
+| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
+
+## 2. 기술 스택
+
+- Front : React, Typescript, Vite, emotion, styled-components, Zustand, TanStack Query, Playwright
+- Back-end : Firebase
+- 버전 및 이슈관리 : Github, Github Issues
+- 협업 툴 : Slack, Notion, Zoom, ZEP
+- 서비스 배포 환경 : Netlify
+- 디자인 : Figma
+- [컨벤션](https://www.notion.so/2d7a46b888e8482a890543275cb48142)
+
+
+
+## 3. 채택한 개발 기술과 브랜치 전략
+
+### React, emotion, framer-motion
+
+- **React**
+
+ - 컴포넌트화를 통해 유지보수와 재사용성을 고려한 구조로 개발했습니다.
+
+- **emotion**
+
+ - 스타일링을 적용하여 컴포넌트 내에서 효율적으로 스타일을 관리했습니다.
+
+- **framer-motion**
+ - 모달에 자연스러운 애니메이션 효과를 적용했습니다.
+
+### TypeScript
+
+- **TypeScript**
+
+ - 타입을 명시하여 코드의 안정성과 가독성을 높였습니다.
+
+ - 코드 작성 시점에 타입 오류를 발견할 수 있어 디버깅 시간을 줄이고, 유지보수가 쉬운 코드를 작성할 수 있습니다.
+
+- Javascript가 아닌 Typescript를 채택한 이유
+
+ - 컴포넌트 타입 안전성: props의 타입을 명확히 정의해 예상치 못한 오류를 방지할 수 있습니다.
+
+ - 리팩토링 시 안정성: 타입 시스템을 통해 코드 변경 시 다른 부분에 미치는 영향을 사전에 파악해 리팩토링이 안전해집니다.
+
+ 이러한 이유들로 인해 자바스크립트 대신 TypeScript를 채택하여 React 프로젝트의 안정성과 효율성을 극대화했습니다.
+
+### eslint, prettier
+
+- **ESLint**
+ - 코드 품질을 관리하여 오류를 사전에 방지하고, 규칙을 준수하도록 도왔습니다.
+- **Prettier**
+ - 일관된 코드 포맷팅을 유지해 가독성을 높였습니다.
+
+### 브랜치 전략
+
+- main, develop, feat 브랜치로 나누어 체계적으로 개발을 진행했습니다.
+
+ - **main** 배포 단계에서만 사용하는 브랜치입니다.
+
+ - **develop** 개발 단계에서 git-flow의 master 역할을 합니다.
+
+ - **feat** 기능 단위의 독립적인 개발을 위해 사용하며, 작업이 완료된 후 merge하고 삭제합니다.
+
+ - **bug** 버그 수정 시 사용하는 브랜치입니다.
+
+ - **style** 스타일 변경 및 퍼블리싱 작업에 사용하는 브랜치입니다.
+
+ - **help** 도움이 필요할 때 사용하는 브랜치입니다.
+
+
+
+## 4. 개발 기간 및 작업 관리
+
+### 개발 기간
+
+- 전체 개발 기간 : _2024.09.02 - 2024.09.27_
+
+- 기획 및 디자인 : _2024.09.02 - 2024.09.09_
+
+- UI 구현 : _2024.09.09 - 2024.09.11_
+
+- 기능 구현 : _2024.09.11 - 2024.09.27_
+
+
+
+### 작업 관리
+
+- GitHub Issues와 Slack을 사용하여 진행 상황을 공유했습니다.
+
+- 매일 Zoom과 ZEP에서 회의를 진행하며 작업 순서와 방향성에 대한 고민을 나누고 Notion에 회의 내용을 기록했습니다.
diff --git a/firebase.json b/firebase.json
new file mode 100644
index 0000000..3facb51
--- /dev/null
+++ b/firebase.json
@@ -0,0 +1,9 @@
+{
+ "firestore": {
+ "rules": "firestore.rules",
+ "indexes": "firestore.indexes.json"
+ },
+ "storage": {
+ "rules": "storage.rules"
+ }
+}
diff --git a/firestore.indexes.json b/firestore.indexes.json
new file mode 100644
index 0000000..415027e
--- /dev/null
+++ b/firestore.indexes.json
@@ -0,0 +1,4 @@
+{
+ "indexes": [],
+ "fieldOverrides": []
+}
diff --git a/firestore.rules b/firestore.rules
new file mode 100644
index 0000000..045bb97
--- /dev/null
+++ b/firestore.rules
@@ -0,0 +1,10 @@
+rules_version = '2';
+
+service cloud.firestore {
+ match /databases/{database}/documents {
+ match /{document=**} {
+ allow read: if true;
+ allow write: if request.auth != null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/index.html b/index.html
index a9e6bb5..7e5b39a 100644
--- a/index.html
+++ b/index.html
@@ -2,17 +2,15 @@
-
MAZI
+
-