Skip to content

Commit 2c2e050

Browse files
authored
Create README.md
1 parent 2850570 commit 2c2e050

File tree

1 file changed

+125
-0
lines changed

1 file changed

+125
-0
lines changed

README.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# 36.5 (온라인 편지 교환 플랫폼)
2+
3+
36.5는 사용자들이 익명으로 편지를 주고받을 수 있는 소셜 플랫폼입니다. 온라인에서 따뜻한 인간 관계를 형성하고 소통할 수 있는 공간을 제공합니다.
4+
5+
![Thumbnail](https://github.com/user-attachments/assets/8752a9d3-8f3d-4523-b51f-472dcbcf1b4a)
6+
![Image](https://github.com/user-attachments/assets/328e3267-35c7-47ae-9091-850b90d07499)
7+
8+
- 프로젝트 기간 : 2025.02.07 ~ 2025.03.14
9+
- 배포 URL : https://www.ddasum.kr/
10+
11+
## 구성원
12+
| [이영섭](https://github.com/chesthyeon) | [고진영](https://github.com/Kojinyoung7220) | [양한동](https://github.com/yhd1101) | [이종찬](https://github.com/LeeVell) | [허정현](https://github.com/HeoJeongHyeon) |
13+
| --- | --- | --- | --- | --- |
14+
| <a href="https://github.com/leeys9423"><img src="https://avatars.githubusercontent.com/u/67312117?v=4" width="100px;" alt=""/></a> | <a href="https://github.com/Kojinyoung7220"><img src="https://avatars.githubusercontent.com/u/133757475?v=4" width="100px;" alt=""/></a> | <a href="https://github.com/yhd1101"><img src="https://avatars.githubusercontent.com/u/117626705?v=4" width="100px;" alt=""/></a> | <a href="https://github.com/LeeVell"><img src="https://avatars.githubusercontent.com/u/50389081?v=4" width="100px;" alt=""/></a> | <a href="https://github.com/HeoJeongHyeon"><img src="https://avatars.githubusercontent.com/u/188425240?v=4" width="100px;" alt=""/></a> |
15+
| PO | Team-Lead | Clerk | Clerk | Clerk |
16+
| 소셜로그인, 인증 및 인가 | 편지, JIRA | AWS, 금칙어, 신고 | 알림, 이벤트 게시판 | 공유 편지 및 게시판 |
17+
18+
## 📋 프로젝트 개요
19+
20+
WarmLetter는 다음과 같은 기능을 제공합니다:
21+
22+
- **랜덤 편지**: 카테고리별 랜덤 편지 작성 및 매칭
23+
- **편지 주고받기**: 매칭된 사용자와 지속적인 편지 교환
24+
- **공유 기능**: 의미 있는 대화를 게시판에 공유
25+
- **알림 시스템**: 실시간 SSE 기반 알림 제공
26+
- **소셜 로그인**: Google, Kakao, Naver를 통한 간편 로그인
27+
- **온도 시스템**: 사용자 신뢰도를 나타내는 온도 지표
28+
29+
## 🛠 기술 스택
30+
31+
### 백엔드
32+
- **언어 및 프레임워크**: Java 17, Spring Boot 3.0
33+
- **보안**: Spring Security, JWT
34+
- **데이터베이스**: MySQL, Redis
35+
- **ORM**: Spring Data JPA, Querydsl
36+
- **문서화**: Swagger (OpenAPI 3.0)
37+
- **빌드 도구**: Gradle
38+
39+
### 인프라
40+
- **배포**: Docker, AWS EC2
41+
- **CI/CD**: Github Actions
42+
- **품질 관리**: SonarCloud, JaCoCo
43+
44+
## 📂 프로젝트 구조
45+
46+
도메인 중심 구조로 설계
47+
48+
```
49+
src/main/java/io/crops/warmletter/
50+
├── domain/
51+
│ ├── auth/ # 인증 관련 로직
52+
│ ├── badword/ # 금칙어 필터링
53+
│ ├── eventpost/ # 이벤트 게시판
54+
│ ├── letter/ # 편지 핵심 기능
55+
│ ├── member/ # 회원 관리
56+
│ ├── report/ # 신고 기능
57+
│ ├── share/ # 편지 공유 기능
58+
│ └── timeline/ # 알림 및 타임라인
59+
├── global/
60+
│ ├── config/ # 전역 설정
61+
│ ├── entity/ # 공통 엔티티
62+
│ ├── error/ # 예외 처리
63+
│ ├── jwt/ # JWT 인증
64+
│ ├── oauth/ # OAuth2 인증
65+
│ ├── response/ # 공통 응답 형식
66+
│ ├── schedule/ # 스케줄링 작업
67+
│ └── util/ # 유틸리티 클래스
68+
└── WarmLetterApplication.java
69+
```
70+
71+
## 🔒 인증 및 보안
72+
73+
- **JWT 기반 인증**: 액세스 토큰 및 리프레시 토큰
74+
- **OAuth2 소셜 로그인**: Google, Kakao, Naver 지원
75+
- **CORS 설정**: 안전한 교차 출처 리소스 공유
76+
- **토큰 블랙리스트**: 로그아웃 및 토큰 무효화 관리
77+
78+
## 📬 편지 시스템
79+
80+
- **랜덤 매칭**: 사용자는 관심 카테고리를 선택하여 랜덤 편지를 받을 수 있음
81+
- **배송 시스템**: 편지는 일정 시간 후 배달되어 실제 편지 느낌을 제공
82+
- **서신함**: 주고받은 편지를 저장하고 관리하는 공간
83+
- **임시 저장**: 작성 중인 편지를 임시 저장할 수 있는 기능
84+
85+
## 🔔 알림 시스템
86+
87+
실시간 알림은 SSE(Server-Sent Events)를 기반
88+
89+
- 새 편지 도착
90+
- 편지 발송 중
91+
- 공유 요청 수신
92+
- 게시글 공유 완료
93+
- 신고 처리 결과
94+
95+
## 🔍 코드 품질 관리
96+
97+
![Image](https://github.com/user-attachments/assets/75bdcad3-b165-4138-9c1e-f5b882dc7824)
98+
99+
### SonarCloud
100+
- 코드 품질 및 보안 취약점 지속적 분석
101+
- 코드 중복, 복잡도, 잠재적 버그 감지
102+
- 코드 커버리지 측정 및 보고
103+
104+
### JaCoCo (Java Code Coverage)
105+
- 코드 테스트 커버리지 측정
106+
- 브랜치, 라인, 메소드 커버리지 분석
107+
- CI/CD 파이프라인과 통합되어 품질 게이트 적용
108+
109+
## 🌟 주요 기능 하이라이트
110+
111+
### 1. 온도 시스템
112+
사용자의 신뢰도와 활동을 기반으로 한 온도 시스템이 구현되어 있습니다. 편지 평가, 신고 처리 등에 따라 온도가 변동됩니다.
113+
114+
### 2. 금칙어 필터링
115+
사용자 생성 콘텐츠는 금칙어 필터링을 통과해야 하며, 관리자가 금칙어를 관리할 수 있습니다.
116+
117+
### 3. 실시간 알림
118+
SSE를 활용한 실시간 알림 시스템으로 사용자 경험을 향상시켰습니다.
119+
120+
### 4. 신고 및 모더레이션
121+
AI 기반 콘텐츠 검토 및 관리자 검토 시스템을 통해 안전한 커뮤니티를 유지합니다.
122+
123+
## 📝 API 문서
124+
125+
API 문서는 Swagger를 통해 제공됩니다

0 commit comments

Comments
 (0)