Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 113 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,113 @@
![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/handong-app/CMS?utm_source=oss&utm_medium=github&utm_campaign=handong-app%2FCMS&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews)
![Docker](https://img.shields.io/badge/Container-Docker-blue?logo=docker)
![Nginx](https://img.shields.io/badge/WebServer-Nginx-green?logo=nginx)
![Spring Boot](https://img.shields.io/badge/Backend-SpringBoot%20(Java%2017)-6DB33F?logo=springboot)
![MariaDB](https://img.shields.io/badge/Database-MariaDB-003545?logo=mariadb)
![React](https://img.shields.io/badge/Frontend-React-61DAFB?logo=react)
![TypeScript](https://img.shields.io/badge/Language-TypeScript-3178C6?logo=typescript)
![Vite](https://img.shields.io/badge/Build-Vite-646CFF?logo=vite)
![MUI](https://img.shields.io/badge/UI-MUI-007FFF?logo=mui)
![Python](https://img.shields.io/badge/Worker-Python%203.12-yellow?logo=python)
![FFmpeg](https://img.shields.io/badge/Transcoder-FFmpeg-black?logo=ffmpeg)
![RabbitMQ](https://img.shields.io/badge/Queue-RabbitMQ-FF6600?logo=rabbitmq)
![MinIO](https://img.shields.io/badge/Storage-MinIO-red?logo=minio)
![Infisical](https://img.shields.io/badge/Secrets-Infisical-2B90B6)

# 🎬 CMS

## πŸ“š λͺ©μ°¨

- [μ†Œκ°œ](#μ†Œκ°œ)
- [🎯 μ£Όμš” λͺ©μ ](#-μ£Όμš”-λͺ©μ )
- [πŸ”‘ μ£Όμš” κΈ°λŠ₯ μš”μ•½](#-μ£Όμš”-κΈ°λŠ₯-μš”μ•½)
- [πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰](#-ν”„λ‘œμ νŠΈ-ꡬ쑰)
- [πŸ–₯️ Client Environment](#️-client-environment)
- [🀝 Dev & Collaboration Tools](#-dev--collaboration-tools)
- [πŸ§ͺ ν…ŒμŠ€νŠΈ 및 ν’ˆμ§ˆ 관리](#-ν…ŒμŠ€νŠΈ-및-ν’ˆμ§ˆ-관리)
- [πŸ”„ CI/CD & μžλ™ 배포](#-cicd--μžλ™-배포)

---

## μ†Œκ°œ

> λ³Έ ν”„λ‘œμ νŠΈλŠ” λŒ€ν•™ 동아리 ν™œλ™μ„ μœ„ν•œ **온라인 μ½˜ν…μΈ  곡유 및 관리 ν”Œλž«νΌ**μž…λ‹ˆλ‹€. νšŒμ›λ“€μ€ κ°•μ˜ μ˜μƒκ³Ό ν•™μŠ΅ 자료λ₯Ό μ—…λ‘œλ“œν•˜κ³ , μ„œλ‘œμ˜ μ§„ν–‰ 상황을 κ³΅μœ ν•˜λ©°, 효과적인 ν•™μŠ΅ 및 μ†Œν†΅μ„ μ΄μ–΄κ°ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

---

## 🎯 μ£Όμš” λͺ©μ 

- 동아리 멀버 κ°„μ˜ **지식 κ³΅μœ μ™€ ν˜‘μ—…**을 지원
- λ‹€μ–‘ν•œ ν˜•νƒœμ˜ μ½˜ν…μΈ (μ˜μƒ, 파일, 이미지, ν…μŠ€νŠΈ, ν€΄μ¦ˆ λ“±)λ₯Ό 톡합 관리
- μ‚¬μš©μžλ³„ μ‹œμ²­ 이λ ₯κ³Ό ν•™μŠ΅ μƒνƒœλ₯Ό μ‰½κ²Œ 좔적
- κ΄€λ¦¬μžλŠ” 멀버 정보와 클럽 μ†Œκ°œλ₯Ό κ°„νŽΈν•˜κ²Œ 관리 κ°€λŠ₯

---

## πŸ”‘ μ£Όμš” κΈ°λŠ₯ μš”μ•½

- πŸ” **둜그인 μƒνƒœμ— λ”°λ₯Έ 정보 뢄리**
- πŸ” **κ°•μ˜ 검색 κΈ°λŠ₯**
- πŸ“Š **μ‹œμ²­ 이λ ₯ 확인**
- πŸ’¬ **μ˜μƒ λ‚΄ λŒ“κΈ€ κΈ°λŠ₯**
- πŸ“¦ **λ‹€μ–‘ν•œ μ½˜ν…μΈ  μ—…λ‘œλ“œ 지원**
- πŸ›  **클럽 정보 관리**

> 이 ν”Œλž«νΌμ€ λ‹¨μˆœν•œ μ½˜ν…μΈ  보관을 λ„˜μ–΄, **μ°Έμ—¬ μ€‘μ‹¬μ˜ ν•™μŠ΅ ν™˜κ²½**을 κ΅¬ν˜„ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€. ν”„λ‘ νŠΈμ—”λ“œλΆ€ν„° λ°±μ—”λ“œ, λ―Έλ””μ–΄ μ²˜λ¦¬κΉŒμ§€ λͺ¨λ“  μ˜μ—­μ΄ ν†΅ν•©λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

---

## πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰

![Architecture_Diagram_v3](https://github.com/user-attachments/assets/76eb492d-4023-4b0f-949f-12e35657246c)

- **Frontend**: React + Vite 기반 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€
- **Backend**: Spring Boot 기반 API μ„œλ²„
- **Storage**: MinIO (S3 ν˜Έν™˜)
- **Message Queue**: RabbitMQ
- **Worker**:
νŠΈλžœμŠ€μ½”λ”© μš”μ²­μ„ λΉ„λ™κΈ°μ μœΌλ‘œ μ²˜λ¦¬ν•˜λŠ” Python Celery μ›Œμ»€
β–Ά [cms-transcode-worker GitHub μ €μž₯μ†Œ λ°”λ‘œκ°€κΈ°](https://github.com/handong-app/cms-transcode-worker)


---

## πŸ–₯️ Client Environment

| ν•­λͺ© | λ‚΄μš© |
|-------------------|------------------|
| **Build Tool** | Vite |
| **Language** | TypeScript |
| **Frontend Framework** | React |
| **UI Framework** | Material UI (MUI) |

---

## 🀝 Dev & Collaboration Tools

| ν•­λͺ© | λ‚΄μš© |
|-------------------|--------------------|
| **Version Control** | GitHub |
| **Code Review** | Coderabbitai |
| **CI/CD** | GitHub Actions |
| **Communication** | Discord |
| **PM Tools** | Notion |

---

## πŸ§ͺ ν…ŒμŠ€νŠΈ 및 ν’ˆμ§ˆ 관리

- λ³Έ ν”„λ‘œμ νŠΈλŠ” **TDD(Test-Driven Development)** κ΄€μ μ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό 섀계 및 μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.
- ν”„λ‘ νŠΈμ—”λ“œλŠ” **Vitest**λ₯Ό μ‚¬μš©ν•˜μ—¬ μ»΄ν¬λ„ŒνŠΈ 및 μœ ν‹Έ ν•¨μˆ˜ λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
- λΉ λ₯Έ μ‹€ν–‰ 속도와 `--watch` λͺ¨λ“œλ₯Ό 톡해 μ‹€μ‹œκ°„ ν”Όλ“œλ°± ν™˜κ²½μ„ κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

---

## πŸ”„ CI/CD & μžλ™ 배포

- GitHub Actions 기반 **CI/CD Pipeline** ꡬ좕
- PR μ‹œ μžλ™ ν…ŒμŠ€νŠΈ 및 λΉŒλ“œ
- main 브랜치 λ¨Έμ§€ μ‹œ μžλ™ 배포
- Docker 기반 μžλ™ 이미지 배포 적용

```bash
# μ˜ˆμ‹œ μ›Œν¬ν”Œλ‘œμš° 흐름
Push β†’ Test & Build β†’ Docker Image 생성 β†’ Auto Deploy