Skip to content

Commit

Permalink
Merge pull request #74 from Curate-Me/docs/readme
Browse files Browse the repository at this point in the history
docs: update README.md
  • Loading branch information
kimzini authored Nov 28, 2024
2 parents a43e71c + 45012d8 commit 6e0d419
Show file tree
Hide file tree
Showing 7 changed files with 141 additions and 21 deletions.
Binary file added .github/readme-assets/ai-flow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/readme-assets/architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/readme-assets/cicd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/readme-assets/erd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/readme-assets/server-test.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/readme-assets/test-coverage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
162 changes: 141 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,74 @@
# Claco ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๋ฌธ์„œ
# ์‚ฌ์šฉ์ž ๋งž์ถค ํด๋ž˜์‹ ๊ณต์—ฐ ํ๋ ˆ์ด์…˜ ์„œ๋น„์Šค Claco

## ๐Ÿ“ฑ ์„œ๋น„์Šค ์†Œ๊ฐœ
- ํด๋ž˜์‹ ๊ณต์—ฐ ๊ฐ์ƒ์˜ ๊ธธ์žก์ด๊ฐ€ ๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ํด๋ž˜์‹ ๊ณต์—ฐ ๋ฌธํ™”๋ฅผ ๋” ์ฆ๊ฒ๊ฒŒ ํ–ฅ์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
- ์‚ฌ์šฉ์ž์˜ ์ทจํ–ฅ์— ๋งž๋Š” ๊ณต์—ฐ์„ ์ถ”์ฒœํ•ด์ฃผ๊ณ , ํ‹ฐ์ผ“์„ ๋งŒ๋“ค์–ด ์ถ”์–ต์„ ๊ฐ„์งํ•˜๊ณ , ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

### ๐Ÿ“† ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ ๋ฐ ์ธ์›
- ***2024.10.05 ~ 2024.11.24***
- ```Frontend```: 2๋ช…
- ```Backend```: 2๋ช…

## ๐Ÿง‘โ€๐Ÿ’ป R&R
| Profile | Name | Role |
|:---------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------:|:------------------------------------------------------------------------------------------------:|
| <a href="https://github.com/kimzini"><img src="https://avatars.githubusercontent.com/u/127485569?v=4" height="120px"></a> | ๊น€์ง„ํฌ<br> **kimzini** <br> FE |
| <a href="https://github.com/dvp-tae"><img src="https://avatars.githubusercontent.com/u/109207415?v=4" height="120px"></a> | ์„ฑํƒœํ˜„ <br> **dvp-tae** <br> FE |
| <a href="https://github.com/devkeon"><img src="https://avatars.githubusercontent.com/u/121371840?v=4" height="120px"></a> | \<๊ฐœ๋ฐœ ๋ฆฌ๋“œ><br>์ด๊ฑด <br> **devkeon** <br> BE | ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„, ERD ์„ค๊ณ„, ๋ฉ”์ธ ์„œ๋ฒ„ ์ธํ”„๋ผ ๋ฐ CI/CD ๊ตฌ์ถ•, <br> ์ธ์ฆ/์ธ๊ฐ€, ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ ๊ตฌ์ถ•, ํ‹ฐ์ผ“/๋ฆฌ๋ทฐ ๊ธฐ๋Šฅ,<br> ํด๋ผ์ฝ”๋ถ ๊ธฐ๋Šฅ, ํšŒ์› ๊ด€๋ จ ๊ธฐ๋Šฅ |
| <a href="https://github.com/anselmo228"><img src="https://avatars.githubusercontent.com/u/24919880?v=4" height="120px"></a> | ์ •ํฌ์ฐฌ <br> **anselmo** <br> BE | ERD ์„ค๊ณ„, AI ๋ฐ ๋ฐฐ์น˜ ์„œ๋ฒ„ ์ธํ”„๋ผ ๋ฐ CI/CD ๊ตฌ์ถ•, <br> ์ถ”์ฒœ AI ๋ชจ๋ธ ๊ตฌํ˜„, ๋ฐฐ์น˜ ๊ธฐ๋Šฅ(๋ฐ์ดํ„ฐ ๋กœ๋“œ) ๊ตฌ์ถ•, <br> ๊ณต์—ฐ ๊ธฐ๋Šฅ, ๊ณต์—ฐ ๋ฐ ํ‹ฐ์ผ“ ์ถ”์ฒœ ๊ธฐ๋Šฅ |


## ๐Ÿ›๏ธ ์•„ํ‚คํ…์ฒ˜
![architecture.png](./.github/readme-assets/architecture.png)

### PWA
- pwa ์‚ฌ์šฉ ์„ค๋ช…

### ๋ณด์•ˆ ๊ณ ๋ ค ์‚ฌํ•ญ
- JWT๋ฅผ ํ™œ์šฉํ•œ ์ธ์ฆ/์ธ๊ฐ€
- SSL ๋ณด์•ˆ ๊ณ„์ธต์„ ํ™œ์šฉํ•œ ํ† ํฐ ์•”ํ˜ธํ™” (HTTPS, ALB ์„ค์น˜)
- CSRF / XSS ๊ณต๊ฒฉ์— ๋Œ€๋น„ํ•œ ํ† ํฐ ์ €์žฅ ๋ถ„๋ฆฌ (Local storage, HTTP-only Cookie)
- Nginx๋ฅผ ํ™œ์šฉํ•œ actuator์™€ ๊ฐ™์€ ๋ฏผ๊ฐ ์ •๋ณด deny
- Spring Security๋ฅผ ํ™œ์šฉํ•œ ์ฒ ์ €ํ•œ Auth ๊ฒ€์‚ฌ ๋ฐ uri ์ ‘๊ทผ ์กฐ์ •
- Kakao OAuth2.0์„ ํ™œ์šฉํ•œ ์ธ์ฆ/์ธ๊ฐ€ ๊ธฐ๋Šฅ ๊ฐ„ํŽธํ™”
- docker ๋„คํŠธ์›Œํฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ spring ์„œ๋ฒ„๋‚˜, prometheus๊ฐ™์€ ์ธ์Šคํ„ด์Šค ํฌํŠธ ๋งคํ•‘x (Endpoint ๋‹จ์ผํ™”)

### ์ถ”์ฒœ ์‹œ์Šคํ…œ ๋กœ์ง

- Collaborative Filtering & Cosine Similarity ๊ธฐ๋ฐ˜ ์ถ”์ฒœ์‹œ์Šคํ…œ
1. ๊ฐ Concert๋Š” AI๊ฐ€ ์ถ”์ถœํ•ด์ค€ ํ‚ค์›Œ๋“œ ๊ฐ’์— ๋Œ€ํ•ด 0 ~ 1 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง
2. ์œ ์ €๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์˜จ๋ณด๋”ฉ์—์„œ ๋“ฑ๋กํ•œ ์ทจํ–ฅ ์ •๋ณด๋กœ ๋ถ€ํ„ฐ ๋ชจ๋“  ํ‚ค์›Œ๋“œ ๊ฐ’์— ๋Œ€ํ•ด 0 ~ 1์‚ฌ์ด ๊ฐ’์„ ๊ฐ€์ง
3. Concerts, Users CSVํŒŒ์ผ์„ ํ†ตํ•ด์„œ Cosine Similarity์™€ Collaborative Filtering์„ ํ†ตํ•œ ์œ ์‚ฌ๋„ ๊ณ„์‚ฐ ํ›„ ์ถ”์ฒœ ์ง„ํ–‰

### ๋ฉ”์ธ ์„œ๋ฒ„
- ์„œ๋น„์Šค์˜ ์ฃผ์š” ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ฒ„
- Grafana์™€ Prometheus์— ๊ธฐ๋ฐ˜ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ ๊ตฌ์ถ•
- Nginx๋ฅผ ํ†ตํ•œ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ์„ค์ •

### AI ์„œ๋ฒ„

- ๊ณต์—ฐ ์„ฑ๊ฒฉ ๋ถ„์„์ด๋‚˜, ์œ ์ € ์„ฑ๊ฒฉ ๋ถ„์„, OCR์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ฒ„
- OCR ๋ฐ ๊ณต์—ฐ ์„ฑ๊ฒฉ ์ •๋ณด ์ถ”์ถœ์€ NCP์˜ AI ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉ
- ์ถ”์ฒœ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์ง์ ‘ Collaborative Filtering Model ๊ตฌํ˜„

### ๋ฐฐ์น˜ ์„œ๋ฒ„

- KOPIS ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ๊ณต์—ฐ ์ •๋ณด๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์„œ๋ฒ„(ํ•œ๋‹ฌ์— 1๋ฒˆ)
- KOPIS์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ๋•Œ๋งˆ๋‹ค AI์„œ๋ฒ„์— ํ•™์Šต ์š”์ฒญ

# โญ๏ธ Frontend

#### ๋ฐฐํฌ URL https://claco-client.vercel.app/
* * *

# ๐Ÿ’ป Technology
## ๐Ÿ’ป Technology
* ![Static Badge](https://img.shields.io/badge/react-%252320232a.svg?logo=React&color=%231C1C1C) ![Static Badge](https://img.shields.io/badge/Zustand-%252320232a.svg?color=%231C1C1C)
* ![Static Badge](https://img.shields.io/badge/typescript-%253178C6.svg?logo=typescript&logoColor=%23FFFFFF&color=%233178C6) ![Static Badge](https://img.shields.io/badge/yarn-%253178C6.svg?logo=yarn&logoColor=%23FFFFFF&color=%232C8EBB)
* ![Static Badge](https://img.shields.io/badge/tailwindCSS-%253178C6.svg?logo=tailwindCSS&logoColor=%23FFFFFF&color=%2306B6D4) ![Static Badge](https://img.shields.io/badge/shadcn%2Fui-%253178C6.svg?logo=shadcn%2Fui&logoColor=%23FFFFFF&color=%23000000)
* ![Static Badge](https://img.shields.io/badge/TanStack%20Query-%253178C6.svg?logo=React%20Query&logoColor=%23FFFFFF&color=%23FF4154) ![Static Badge](https://img.shields.io/badge/Vercel-%253178C6.svg?logo=Vercel&logoColor=%23FFFFFF&color=%23000000) ![Static Badge](https://img.shields.io/badge/PWA-%253178C6.svg?logo=PWA&logoColor=%23FFFFFF&color=%235A0FC8)


# ๐Ÿงธ ๊ธฐ์ˆ  ์Šคํƒ ์„ ์ • ์ด์œ 
## ๐Ÿงธ ๊ธฐ์ˆ  ์Šคํƒ ์„ ์ • ์ด์œ 

| ๊ธฐ์ˆ  ์Šคํƒ | ์„ค๋ช… |
|-----------|------|
Expand All @@ -22,13 +80,13 @@
| TailwindCSS | ๊ฐœ๋ฐœ์˜ ํŽธ์˜์„ฑ HTML๊ณผ CSS ํŒŒ์ผ์„ ๋ณ„๋„๋กœ ๊ฐœ๋ฐœ ๋ฐ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœํ•˜๊ธฐ์— ํŽธ๋ฆฌํ•˜๊ณ , ํŒ€ํ•‘ํ•˜๋Š” ๊ฐ ํƒœ๊ทธ์˜ ํด๋ž˜์Šค๋ช…์„ ๊ณ ๋ฏผํ•  ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์–ด ๋น ๋ฅธ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. |
| Vercel | ๊ฐ„ํŽธํ•œ ๋ฐฐํฌ ์ž๋™ํ™” ๊ฐ€๋Šฅํ•˜์—ฌ์— ํ‘ธ์‹œํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. |

# ๐Ÿ—‚๏ธ Naming Rules
## ๐Ÿ—‚๏ธ Naming Rules
* ํด๋”๋ช… - `PascalCase`
* ํŒŒ์ผ๋ช… - `PascalCase`
* ํƒ€์ž…, ์œ ํ‹ธํ•จ์ˆ˜ ๋“ฑ - `camelCase`
* ์ƒ์ˆ˜ - `UpperCase`

# ๐Ÿ“„ Commit Convension
## ๐Ÿ“„ Commit Convension
์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” `ํƒœ๊ทธ: ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€` ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ (ex. git commit -m "feat: ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„")

๐Ÿ“ŒType
Expand All @@ -44,30 +102,30 @@
| ๐Ÿ”ง rename | ํด๋” ํ˜น์€ ํŒŒ์ผ๋ช… ๋ณ€๊ฒฝ |
| โœ‚๏ธ remove | ํŒŒ์ผ ์‚ญ์ œ |

# ๐Ÿ€ Issue Template
## ๐Ÿ€ Issue Template
* `๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๊ด€๋ จ Issue Template`
## ์ด์Šˆ ์„ค๋ช…โ˜€๏ธ
์ด์Šˆ์— ๊ด€ํ•œ ์„ค๋ช…
### ์ด์Šˆ ์„ค๋ช…โ˜€๏ธ
์ด์Šˆ์— ๊ด€ํ•œ ์„ค๋ช…

## TO-DO๐Ÿ“’
### TO-DO๐Ÿ“’
- [ ] ํ•  ์ผ 1

## ๊ธฐํƒ€๐Ÿ€
### ๊ธฐํƒ€๐Ÿ€

* `๋ฒ„๊ทธ ์ˆ˜์ • ๊ด€๋ จ Issue Template`
## ์—๋Ÿฌ ์„ค๋ช…๐Ÿšฆ
๋ฌด์Šจ ์—๋Ÿฌ์ธ์ง€ ์„ค๋ช…!
### ์—๋Ÿฌ ์„ค๋ช…๐Ÿšฆ
๋ฌด์Šจ ์—๋Ÿฌ์ธ์ง€ ์„ค๋ช…!

## ํ™˜๊ฒฝโš™๏ธ
ํŠน์ • ๊ธฐ๊ธฐ์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋ผ๋ฉด ๋””๋ฐ”์ด์Šค ์ข…๋ฅ˜, ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฅ˜ ๋“ฑ!
### ํ™˜๊ฒฝโš™๏ธ
ํŠน์ • ๊ธฐ๊ธฐ์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋ผ๋ฉด ๋””๋ฐ”์ด์Šค ์ข…๋ฅ˜, ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฅ˜ ๋“ฑ!

## ์žฌํ˜„ ๋ฐฉ๋ฒ•๐Ÿงฟ
์–ด๋–ป๊ฒŒ ์žฌํ˜„ํ•˜๋Š”์ง€ ์„ค๋ช…!
### ์žฌํ˜„ ๋ฐฉ๋ฒ•๐Ÿงฟ
์–ด๋–ป๊ฒŒ ์žฌํ˜„ํ•˜๋Š”์ง€ ์„ค๋ช…!

## ์—๋Ÿฌ ํ™”๋ฉด๐Ÿ“ธ
์Šคํฌ๋ฆฐ์ƒท or GIF ๋“ฑ..
### ์—๋Ÿฌ ํ™”๋ฉด๐Ÿ“ธ
์Šคํฌ๋ฆฐ์ƒท or GIF ๋“ฑ..

# ๐Ÿ€ Pull Request Template
## ๐Ÿ€ Pull Request Template
* ๊ด€๋ จ ์ด์Šˆ
* ๊ธฐ์กด ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ž‘์—… ์‚ฌํ•ญ
* ๊ธฐ์กด ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ์ž‘์—… ์‚ฌํ•ญ
Expand All @@ -76,10 +134,72 @@
* ์ถ”ํ›„ ์ž‘์—…ํ•  ๋‚ด์šฉ
* main (develop) ๋ธŒ๋žœ์น˜ pull ์—ฌ๋ถ€ ํ™•์ธ

# ๐ŸŒŠ Git Flow
| ๋ธŒ๋žœ์น˜ ๋ช… | ์—ญํ•  |
## ๐ŸŒŠ Git Flow
| ๋ธŒ๋žœ์น˜ ๋ช… | ์—ญํ•  |
|----------|--------------|
| main | ์ตœ์ข… ๋ฐฐํฌ๋  ์„œ๋น„์Šค์˜ ๋ธŒ๋žœ์น˜ |
| develop | ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜, ํ•ด๋‹น ๋ธŒ๋žœ์น˜์—์„œ ๋ถ„๊ธฐ๋ฅผ ํŒŒ ์ž‘์—… ํ›„ merge |
| feature | ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜ |
| hotfix | main ๋ธŒ๋žœ์น˜ ๋ฐฐํฌ ํ›„ ๊ธด๊ธ‰ ์ˆ˜์ • ์‚ฌํ•ญ ๋ฐœ์ƒ ์‹œ ์‚ฌ์šฉํ•˜๋Š” ๋ธŒ๋žœ์น˜ |


# ๐Ÿ”ฅ Backend

## ๐Ÿ’ป ๊ฐœ๋ฐœ ํ™˜๊ฒฝ
> Language: ```Java 17``` <br>
> Framework: ```Spring Boot 3.3.4``` <br>
> Database: ```MySQL 8.x``` <br>
> ORM: ```JPA(Hibernate)``` <br>
> CI/CD: ```Github Actions``` <br>
> Cloud Platform: ```AWS(EC2, ALB, ACM), GCP(SQL)``` <br>
> Test DB: ```testcontainer```
## โš™๏ธ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค
- ```TDD (ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ)``` : ๊ตฌ๋ฌธ ์ปค๋ฒ„์ง€๋ฆฌ (Statement coverage) ๊ธฐ์ค€ 80%๋ฅผ ๋ชฉํ‘œ๋กœ ์ˆ˜ํ–‰
- ```Agile (์• ์ž์ผ ํ”„๋กœ์„ธ์Šค)``` : 1์ฃผ ๋‹จ์œ„ ์Šคํ”„๋ฆฐํŠธ ์ˆ˜ํ–‰
- ```Github Flow ์ „๋žต``` : ์ดˆ๊ธฐ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ถˆํ•„์š”ํ•œ ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ๋ฅผ ํ”ผํ•˜๊ณ , ๋น ๋ฅธ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ „๋žต ์„ ํƒ
- ```CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•œ ๋ฐฐํฌ ์ž๋™ํ™”``` : ์„œ๋น„์Šค ๊ฐœ๋ฐœ์ด 50% ์™„๋ฃŒ๋œ ์‹œ์ ์—์„œ ๊ตฌ์ถ•ํ•˜์—ฌ ๋ฐฐํฌ ์ž๋™ํ™”

## ๐Ÿ’ซ TDD ๊ฒฐ๊ณผ
- Service๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, Repository๋Š” ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ง„ํ–‰
- ```testcontainer```๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฉฑ๋“ฑ์„ฑ ๋ณด์žฅ
- ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ ์ธก์ • ํˆด: ```IntelliJ``` <br>

![img.png](./.github/readme-assets/test-coverage.png)
- summary
- statement coverage ๊ธฐ์ค€: 88%
- branch coverage: 54.8%
- class coverage: 100%
- method coverage: 96.7%

## ๐Ÿ’ซ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ
- ์‚ฌ์šฉ ์ธ์Šคํ„ด์Šค ์œ ํ˜•: ```t2.large (ram 8GB)```
- ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ์ธก์ • ํˆด: ```Jmeter```

![server-test.png](./.github/readme-assets/server-test.png)
- summary
- ๋„๋ฉ”์ธ๋ณ„ ์ฃผ์š” api ํ‰๊ท  50.3 Throughput





## ๐Ÿ”„ FlowChart of AI & Batch Server
![flow-chart.png](./.github/readme-assets/ai-flow.png)

## ๐Ÿ“ ERD
![erd.png](./.github/readme-assets/erd.png)

- ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ ์—ฐ๊ด€ ๊ด€๊ณ„ ์„ค์ •์„ ํ†ตํ•ด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™œ์šฉ
- AI ์„œ๋น„์Šค ํ•™์Šต์„ ์œ„ํ•œ soft delete ํ™œ์šฉ

## ๐Ÿ› ๏ธ CI/CD pipeline
![ci-cd.png](./.github/readme-assets/cicd.png)
1. PR ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ CI ์‹คํ–‰ (ํ…Œ์ŠคํŠธ ํฌํ•จ)
2. approve ๋ฐ CI ์„ฑ๊ณต ์‹œ merge ๊ฐ€๋Šฅ
3. merge ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ CI ์Šคํฌ๋ฆฝํŠธ ์ˆ˜ํ–‰
4. CI ์Šคํฌ๋ฆฝํŠธ ์„ฑ๊ณต ์‹œ CD ์Šคํฌ๋ฆฝํŠธ ์ˆ˜ํ–‰
5. Docker ์ด๋ฏธ์ง€ docker hub์— push
6. SSH๋กœ AWS EC2 ์—ฐ๊ฒฐ
7. docker hub์—์„œ ์ด๋ฏธ์ง€ pull
8. dokcer-compose๋ฅผ ํ™œ์šฉํ•ด ์„œ๋น„์Šค ์‹คํ–‰ ๋ฐ ๋„์ปค ๋„คํŠธ์›Œํฌ ๊ตฌ์ถ•

0 comments on commit 6e0d419

Please sign in to comment.