Skip to content

Commit c99fd87

Browse files
committed
[docs]README
1 parent 3723a9b commit c99fd87

File tree

1 file changed

+169
-0
lines changed

1 file changed

+169
-0
lines changed

README.md

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
# SSOUL 프로젝트 인수인계 문서
2+
3+
## �� 프로젝트 개요
4+
5+
**프로젝트명**: SSOUL (칵테일을 좋아하는 사람들을 위한 서비스)
6+
**기술 스택**: Next.js 15, React 19, TypeScript, Tailwind CSS
7+
**저장소**: https://github.com/prgrms-web-devcourse-final-project/WEB5_6_HaeDokCoding_FE
8+
9+
## �� 시작하기
10+
11+
### 개발 환경 설정
12+
```bash
13+
# 의존성 설치
14+
npm install
15+
16+
# 개발 서버 실행
17+
npm run dev
18+
19+
# 빌드
20+
npm run build
21+
22+
# 코드 포맷팅
23+
npm run format
24+
25+
# 린트 검사
26+
npm run lint
27+
```
28+
29+
### 환경 변수
30+
프로젝트는 개발/운영 환경에 따라 다른 API URL을 사용합니다:
31+
- `NEXT_PUBLIC_API_URL_DEV`: 개발 환경 API URL
32+
- `NEXT_PUBLIC_API_URL_PROD`: 운영 환경 API URL
33+
34+
## �� 프로젝트 구조
35+
36+
```
37+
src/
38+
├── app/ # Next.js App Router 페이지
39+
│ ├── layout.tsx # 루트 레이아웃
40+
│ ├── page.tsx # 메인 페이지
41+
│ ├── community/ # 커뮤니티 관련 페이지
42+
│ ├── recipe/ # 칵테일 레시피 페이지
43+
│ ├── recommend/ # 취향 추천 페이지
44+
│ ├── login/ # 로그인 관련 페이지
45+
│ ├── mypage/ # 마이페이지
46+
│ └── api/ # API 설정
47+
├── domains/ # 도메인별 컴포넌트
48+
│ ├── community/ # 커뮤니티 도메인
49+
│ ├── recipe/ # 레시피 도메인
50+
│ ├── recommend/ # 추천 도메인
51+
│ ├── login/ # 로그인 도메인
52+
│ ├── mypage/ # 마이페이지 도메인
53+
│ └── shared/ # 공통 도메인 컴포넌트
54+
└── shared/ # 공통 컴포넌트 및 유틸
55+
├── components/ # 공통 UI 컴포넌트
56+
├── styles/ # 글로벌 스타일
57+
├── assets/ # 이미지, 아이콘 등
58+
├── hook/ # 공통 훅
59+
├── types/ # 타입 정의
60+
└── utills/ # 유틸리티 함수
61+
```
62+
63+
## �� 주요 기능
64+
65+
### 1. 인증 시스템
66+
- **소셜 로그인**: Google, Kakao, Naver 지원
67+
- **상태 관리**: Zustand + localStorage persist
68+
- **주요 파일**:
69+
- `src/domains/shared/store/auth.ts`: 인증 상태 관리
70+
- `src/domains/login/hook/useAuthHooks.ts`: 로그인 관련 훅
71+
- `src/app/api/config/appConfig.ts`: API 설정
72+
73+
### 2. 페이지별 기능
74+
75+
#### �� 메인 페이지 (`/`)
76+
- 현재 기본 구조만 구현됨
77+
- 추후 확장 예정
78+
79+
#### �� 칵테일 레시피 (`/recipe`)
80+
- **주요 컴포넌트**:
81+
- `CocktailList`: 칵테일 목록 표시
82+
- `Accordion`: 필터링 옵션
83+
- `SelectBox`: 정렬 옵션
84+
- **기능**: 검색, 필터링, 정렬
85+
- **상세 페이지**: `/recipe/[id]` - 개별 칵테일 상세 정보
86+
87+
#### �� 커뮤니티 (`/community`)
88+
- **주요 컴포넌트**:
89+
- `PostCard`: 게시물 카드
90+
- `CommunityTab`: 카테고리 탭
91+
- `WriteBtn`: 글쓰기 버튼
92+
- **카테고리**: 레시피, 팁, 질문, 자유
93+
- **글쓰기**: `/community/write`
94+
- **상세 페이지**: `/community/[id]`
95+
96+
#### �� 취향 추천 (`/recommend`)
97+
- **챗봇 기반 추천**: `ChatSection` 컴포넌트
98+
- **주요 컴포넌트**:
99+
- `BotMessage`, `UserMessage`: 메시지 컴포넌트
100+
- `BotOptions`: 선택 옵션
101+
- `MessageInput`: 입력창
102+
- `TypingIndicator`: 타이핑 효과
103+
104+
#### �� 마이페이지 (`/mypage`)
105+
- **기본 리다이렉트**: `/mypage``/mypage/mybar`
106+
- **주요 섹션**:
107+
- `/mypage/mybar`: 나만의 바
108+
- `/mypage/my-active`: 활동 내역 (게시물, 댓글, 좋아요)
109+
- `/mypage/my-alarm`: 알림 설정
110+
- `/mypage/my-setting`: 계정 설정
111+
112+
#### �� 로그인 (`/login`)
113+
- **소셜 로그인**: `SocialLogin` 컴포넌트
114+
- **성공 페이지**: `/login/success`
115+
- **신규 사용자**: `/login/user/first-user`
116+
117+
## �� 기술적 세부사항
118+
119+
### 상태 관리
120+
- **Zustand**: 클라이언트 상태 관리
121+
- **Persist**: localStorage를 통한 상태 영속화
122+
- **주요 스토어**:
123+
- `auth.ts`: 사용자 인증 상태
124+
- `accordionStore.ts`: 아코디언 UI 상태
125+
126+
### UI/UX
127+
- **Tailwind CSS**: 스타일링
128+
- **React Hot Toast**: 토스트 알림
129+
- **Lottie**: 로딩 애니메이션
130+
- **GSAP**: 고급 애니메이션
131+
- **Responsive**: 모바일/데스크톱 대응
132+
133+
### 개발 도구
134+
- **ESLint**: 코드 품질 관리
135+
- **Prettier**: 코드 포맷팅
136+
- **Husky**: Git hooks
137+
- **Lint-staged**: 커밋 전 검사
138+
139+
## �� 주요 설정 파일
140+
141+
- `next.config.ts`: Next.js 설정
142+
- `tailwind.config.js`: Tailwind CSS 설정
143+
- `eslint.config.mjs`: ESLint 설정
144+
- `tsconfig.json`: TypeScript 설정
145+
146+
## �� 반응형 디자인
147+
148+
프로젝트는 모바일 우선(Mobile-first) 접근 방식을 사용합니다:
149+
- **모바일**: 기본 스타일
150+
- **태블릿**: `md:` prefix
151+
- **데스크톱**: `lg:`, `xl:` prefix
152+
153+
## �� 주의사항
154+
155+
1. **환경 변수**: 개발/운영 환경에 맞는 API URL 설정 필요
156+
2. **인증 토큰**: localStorage에 저장되므로 보안 고려 필요
157+
3. **API 통신**: `credentials: 'include'` 설정으로 쿠키 기반 인증
158+
4. **Git Hooks**: Husky 설정으로 커밋 전 자동 검사
159+
160+
## �� 추가 문의
161+
162+
- **저장소 이슈**: https://github.com/prgrms-web-devcourse-final-project/WEB5_6_HaeDokCoding_FE/issues
163+
- **주요 브랜치**: `main` (메인), `dev` (개발)
164+
165+
---
166+
167+
**작성일**: 2025-10-14
168+
**작성자**: 이성헌
169+
**버전**: 1.0

0 commit comments

Comments
 (0)