Skip to content

Commit 7651dbb

Browse files
authored
docs: README.md 작성
1 parent e56b4ac commit 7651dbb

File tree

1 file changed

+146
-1
lines changed

1 file changed

+146
-1
lines changed

README.md

Lines changed: 146 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,146 @@
1-
start
1+
# 🤝 Mingling Backend
2+
3+
**Mingling**은 약속 및 모임 참여자들의 **출발역을 기반으로 최적의 중간 지점을 추천**하고, 모임 목적에 맞는 장소를 탐색할 수 있도록 지원하는 백엔드 서버입니다.
4+
5+
---
6+
7+
## 🛠 Tech Stack
8+
9+
- **Language**: Java 21
10+
- **Framework**: Spring Boot 4.x
11+
- **Database**: MariaDB
12+
- **Build Tool**: Gradle
13+
- **Documentation**: Swagger UI (Springdoc)
14+
15+
---
16+
17+
## 아키텍처
18+
19+
<img width="1478" height="815" alt="Image" src="https://github.com/user-attachments/assets/8c36a44c-4e4d-4128-9ef3-c9ca59203e38" />
20+
21+
## 🏗 Database Convention
22+
23+
데이터 일관성과 유지보수를 위해 아래 네이밍 규칙을 엄격히 준수합니다.
24+
25+
- **Table Naming**: Prefix를 사용하지 않으며, **단수형****snake_case**를 사용합니다.
26+
- _Example:_ `meeting`, `meeting_purpose`
27+
- **Column Naming**: **snake_case**를 사용합니다.
28+
- _Example:_ `created_at`, `updated_at`
29+
- **Boolean Column**: `is_` prefix 사용을 권장합니다.
30+
- _Example:_ `is_deleted`, `is_active`
31+
32+
### 📊 Entity Relationship Diagram (ERD)
33+
34+
<img width="688" height="531" alt="Image" src="https://github.com/user-attachments/assets/7fe10a00-b2b7-4bc3-9d9a-e5d1971a9554" />
35+
36+
## 🚀 API Specification
37+
38+
### 🏷 API Naming Rule
39+
40+
- **Format**: `/<domain>/<resource>/<action>`
41+
- **Convention**: 소문자 및 kebab-case 사용
42+
43+
### 📦 Common Response Format
44+
45+
모든 API 응답은 아래의 공통 규격을 따릅니다.
46+
47+
**✅ Success Response**
48+
49+
```json
50+
{
51+
"success": true,
52+
"data": {
53+
"items": [],
54+
"page": 1
55+
},
56+
"timestamp": "2026-03-06T14:00:00Z"
57+
}
58+
```
59+
````
60+
61+
**❌ Failure Response**
62+
63+
```json
64+
{
65+
"success": false,
66+
"code": "INVALID_TOKEN",
67+
"message": "토큰이 유효하지 않습니다.",
68+
"data": null,
69+
"timestamp": "2026-03-06T14:00:00Z"
70+
}
71+
```
72+
73+
---
74+
75+
## 🌿 Branch Strategy
76+
77+
브랜치 생성 시 아래 규칙을 준수하며, 작업 단위별로 명확히 분리합니다.
78+
79+
> **Format**: `<type>/<jira-issue-number>-<short-description>`
80+
81+
| Type | Description | Example |
82+
| ------------ | ----------------------- | --------------------------------- |
83+
| **feature** | 신규 기능 개발 | `feature/SW-10-jwt-refresh-token` |
84+
| **fix** | 버그 수정 | `fix/SW-21-user-profile-error` |
85+
| **refactor** | 코드 리팩토링 | `refactor/SW-35-order-validation` |
86+
| **chore** | 설정, 환경 및 기타 작업 | `chore/SW-01-setup-gradle` |
87+
88+
---
89+
90+
## 💬 Commit Message Convention
91+
92+
**AngularJS Git Commit Convention**을 따르며, `subject`는 **한국어**로 명확하게 작성합니다.
93+
94+
> **Format**: `[issue-number] <type>: <subject>`
95+
96+
- **feat**: 새로운 기능 추가
97+
- **fix**: 버그 수정
98+
- **docs**: 문서 수정 (README, Swagger 등)
99+
- **style**: 코드 포맷팅 (로직 변경 없음)
100+
- **refactor**: 코드 리팩토링
101+
- **test**: 테스트 코드 추가 및 수정
102+
- **chore**: 빌드 업무, 패키지 설정 등
103+
104+
**💡 Example:**
105+
`[SW-94] fix: 장소 추천 API 런타임 오류 수정`
106+
107+
---
108+
109+
## ⚙️ Getting Started
110+
111+
### Prerequisites
112+
113+
- JDK 17
114+
- MariaDB (Local or Docker)
115+
116+
### Installation & Run
117+
118+
1. **Repository Clone**
119+
120+
```bash
121+
git clone [https://github.com/SWYP-mingling/Backend.git](https://github.com/SWYP-mingling/Backend.git)
122+
123+
```
124+
125+
2. **Build**
126+
127+
```bash
128+
./gradlew build
129+
130+
```
131+
132+
3. **Run Application**
133+
134+
```bash
135+
./gradlew bootRun
136+
137+
```
138+
139+
---
140+
141+
## 📄 API Documentation
142+
143+
상세한 API 명세 및 테스트는 아래 Swagger UI 링크를 참조하세요.
144+
👉 **[Mingling Swagger UI 바로가기](https://test-api.mingling.kr/swagger-ui/index.html)**
145+
146+
```

0 commit comments

Comments
 (0)