Skip to content

Commit 5b14c64

Browse files
authored
Update README.md (#157)
1 parent 769617a commit 5b14c64

File tree

1 file changed

+128
-2
lines changed

1 file changed

+128
-2
lines changed

README.md

Lines changed: 128 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,128 @@
1-
# WEB6_8_ZOOPZOOP_BE
2-
사용자 맞춤형 자료 추천과 시각화 아카이빙을 결합한 협업 플랫폼 - 서버
1+
WEB6_8_ZOOPZOOP_BE
2+
사용자 맞춤형 자료 추천과 시각화 아카이빙을 결합한 협업 플랫폼 - 서버 파트
3+
4+
---
5+
6+
## 목차
7+
1. [소개](#소개)
8+
2. [핵심 기능](#핵심-기능)
9+
3. [기술 스택](#기술-스택)
10+
4. [프로젝트 구조](#프로젝트-구조)
11+
5. [설치 및 실행](#설치-및-실행)
12+
6. [개발 컨벤션](#개발-컨벤션)
13+
14+
---
15+
16+
## 💡소개
17+
본 프로젝트는 웹 서핑 중 발견한 정보를 **효율적으로 수집, 요약, 정리**하고, 이를 팀 단위로 **공유 및 브레인스토밍**까지 이어갈 수 있는 **지식 관리 및 협업 플랫폼**을 목표로 합니다.
18+
19+
**홈페이지:** [ZoopZoop](https://www.zoopzoop.kro.kr/)
20+
21+
FE Repository: [Link](https://github.com/prgrms-web-devcourse-final-project/WEB5_6_ZOOPZOOP_FE)
22+
23+
Chrome Extension Repository: [Link](https://github.com/prgrms-web-devcourse-final-project/WEB5_6_ZOOPS_TENSION_FE)
24+
25+
---
26+
27+
## 📄핵심 기능
28+
29+
#### A. 정보 수집
30+
- **크롬 확장자(Extension) 제공**
31+
- 웹 페이지에서 원하는 부분 선택 후 저장
32+
- 제목, 본문 요약, URL, 태그, 썸네일을 카드뷰 형태로 개인 아카이브에 저장
33+
- **직접 URL 저장**
34+
- 사용자가 원하는 웹 페이지 URL을 개인 아카이브에 직접 추가 가능
35+
36+
#### B. 개인 아카이브
37+
- **카테고리 분류**
38+
- 폴더 생성 후 데이터를 카테고리별로 분류 가능
39+
- **대시보드**
40+
- 수집한 정보 카드 형태로 한눈에 확인
41+
42+
#### C. 협업 기능 (공유 아카이브)
43+
- 팀원 초대 → 동일한 대시보드 공유
44+
- 팀원이 공유한 데이터에 댓글 작성 가능 → 브레인스토밍 지원
45+
- 여러 카드 배열/연결 → **지식 맵(마인드맵) 형태 구성**
46+
- 공통 수정 및 실시간 동기화 (Liveblocks 사용)
47+
- **AI 추천 기능** → 공유된 URL 태그 기반 맞춤형 뉴스 추천
48+
49+
#### D. AI 기반 맞춤형 뉴스 추천
50+
- 뉴스 API 연동 → 특정 키워드 관련 최신 뉴스 수집
51+
- **오늘의 뉴스 추천**
52+
- 개인 & 공유 아카이브 내용 기반 **맞춤형 뉴스 추천**
53+
54+
---
55+
56+
## 🔧기술 스택
57+
- **Framework & Language:** Spring Boot 3.5.5, Java 21
58+
- **Database:** MySQL (production), H2 (development)
59+
- **Security & Auth:** Spring Security, OAuth2, JWT
60+
- **AI:** Spring AI, Groq
61+
- **Testing:** JUnit, Mockito
62+
- **Deployment:** Docker
63+
- **Utilities & External Services:**
64+
- Messaging: RabbitMQ
65+
- Caching & TTL: Redis
66+
- Documentation: Swagger
67+
- Monitoring: Sentry
68+
- Crawling: Jsoup
69+
- Storage: AWS S3
70+
- Search Engine: Elastic Search
71+
72+
---
73+
74+
## 📁프로젝트 구조
75+
```
76+
src/main/java/org/tuna/zoopzoop/backend
77+
├── domain
78+
│ └── archive # 아카이브
79+
│ ├── archive # 아카이브 로직
80+
│ └── folder # 아카이브 내 폴더 로직
81+
│ ├── auth # 인증/인가 비즈니스 로직
82+
│ ├── dashboard # Liveblocks 그래프 데이터
83+
│ ├── datasource # 자료 데이터 크롤링 및 저장
84+
│ ├── home # 백엔드 홈 화면 컨트롤러
85+
│ ├── member # 사용자
86+
│ ├── news # 뉴스 조회 API
87+
│ ├── space # 스페이스(협업 공간) 관련
88+
│ ├── archive # 스페이스 공용 아카이브
89+
│ ├── membership # 스페이스 권한 관리
90+
│ └── space # 스페이스 비즈니스 로직
91+
│ └── SSE # SSE 연결
92+
└── global
93+
├── aspect # AOP 공통 로직 (로깅/응답 등)
94+
├── aws # AWS 관련 유틸리티
95+
├── clients # 외부 API 클라이언트
96+
├── config # 각종 환경 설정(JWT, ElasticSearch, Redis, RabbitMQ 등)
97+
├── exception # 글로벌 예외 처리
98+
├── headlessBrowser # 크롤링용 헤드리스 브라우저
99+
├── initData # 테스트용 초기 데이터
100+
├── jpa # 공용 엔티티
101+
├── rsData # RsData 응답 객체
102+
├── security # Spring Security
103+
├── springDoc # OpenAPI/Swagger & 문서화
104+
├── test # 모니터링 테스트
105+
└── webMvc # 공통 WebMVC 설정
106+
```
107+
108+
## 🔌설치 및 실행
109+
110+
```
111+
# 1. 환경 설정
112+
# application-secrets.yml.template를 참고하여 application-secrets.yml을 작성합니다.
113+
114+
# 2. 의존성 설치
115+
./gradlew build
116+
117+
# 3. RabbitMQ, Elastic Search 컨테이너 실행
118+
# 별도로 로컬 환경에 Redis가 설치되어 있어야 합니다.
119+
docker compose up -d
120+
docker ps // 정상적으로 실행 중인지 확인.
121+
122+
# 4. 로컬 서버 실행
123+
java -jar build/libs/backend-0.0.1-SNAPSHOT.jar
124+
125+
# 5. 정상 작동 확인
126+
# API 문서: http://localhost:8080/swagger-ui.html
127+
```
128+

0 commit comments

Comments
 (0)