Skip to content

Commit

Permalink
๐Ÿ“ docs: README ์ˆ˜์ •
Browse files Browse the repository at this point in the history
  • Loading branch information
seoshinehyo authored Feb 9, 2025
1 parent 1143efe commit c96f9c5
Showing 1 changed file with 160 additions and 1 deletion.
161 changes: 160 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,160 @@
# mody-server
# Mody

> ํŒจ์…˜ ์ถ”์ฒœ ~~ โ€œModyโ€œ
## ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

-
-

## Member

<div align=center>

| Backend | Backend |
| :--------------------------------------------------------------------------: |:---------------------------------------------------------------------:|
| [](https://github.com) | [](https://github.com/) |

</div>

## ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„



## How to use

```sh
curl -X POST http://localhost/api/v1/user/signup \
-H "Content-Type: application/json" \
-d '{"user_code":"admin","password":"admin","user_name":"admin","user_email":"admin","department":"admin","semester":1,"major":"admin","phone_number":"010-1234-5678"}'
```

ํ„ฐ๋ฏธ๋„ ํ˜น์€ CMD ์ฐฝ์— ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ admin ๊ณ„์ •์— ๋Œ€ํ•ด ํšŒ์›๊ฐ€์ž…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

### client

```bash
yarn install
yarn start
```

ํด๋ผ์ด์–ธํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์œ„์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

## ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

- OS: MacOS, Ubuntu
- Code Editor: Visual Studio Code, IntelliJ, PyCharm
- Language: Html, CSS, JavaScript, TypeScript, Python
- Collaboration Tool: Notion, Github, Slack
<br>

## Tech Stack

<div align=center>

### โœ”๏ธBack-end

<img src="https://img.shields.io/badge/ubuntu-E95420?style=for-the-badge&logo=ubuntu&logoColor=white">
<img src="https://img.shields.io/badge/python-3776AB?style=for-the-badge&logo=python&logoColor=white">
<img src="https://img.shields.io/badge/java-007396?style=for-the-badge&logo=OpenJDK&logoColor=white">
<img src="https://img.shields.io/badge/Spring-6DB33F?style=for-the-badge&logo=Spring&logoColor=white">
<img src="https://img.shields.io/badge/spring%20boot-6DB33F?style=for-the-badge&logo=springboot&logoColor=white">
<img src="https://img.shields.io/badge/spring%20security-6DB33F?style=for-the-badge&logo=SPRING%20SECURITY&logoColor=white">
<img src="https://img.shields.io/badge/mysql-4479A1?style=for-the-badge&logo=mysql&logoColor=white">
<img src="https://img.shields.io/badge/amazon%20aws-232F3E?style=for-the-badge&logo=amazonaws&logoColor=white">
<img src="https://img.shields.io/badge/terraform-844FBA?style=for-the-badge&logo=terraform&logoColor=white">
<img src="https://img.shields.io/badge/GitHub Actions-2088FF?style=for-the-badge&logo=GitHub Actions&logoColor=white">
<img src="https://img.shields.io/badge/docker-2496ED?style=for-the-badge&logo=docker&logoColor=white">

### โœ”๏ธFrond-end

<img src="https://img.shields.io/badge/html5-E34F26?style=for-the-badge&logo=html5&logoColor=white">
<img src="https://img.shields.io/badge/css3-1572B6?style=for-the-badge&logo=css3&logoColor=white">
<img src="https://img.shields.io/badge/javascript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black">
<img src="https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white">
<img src="https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=Next.js&logoColor=white">

</div>

## ์ธํ”„๋ผ ์•„ํ‚คํ…์ณ

- 3 Tier Architecture๋กœ AWS ์ธํ”„๋ผ ํ™˜๊ฒฝ๊ตฌ์„ฑ์„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
- ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉ์ž์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ณ„์ธต, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๋Š” ๊ณ„์ธต, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆด์Šต๋‹ˆ๋‹ค.
- ์ด๋ฅผ ํ†ตํ•ด ๊ฐ ๊ณ„์ธต์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฝ”๋“œ์˜ ๋ชจ๋“ˆํ™”๊ฐ€ ์‰ฝ๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„์ธต ์ค‘์ ์ ์œผ๋กœ ๊ตฌํ˜„๋˜๋ฏ€๋กœ, ํ•ด๋‹น ๋กœ์ง์„ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

![infra](./document/image/infra.png)

## ์‹œ์Šคํ…œ ๊ตฌ์„ฑ๋„

- Github์˜ actions ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ release ๋ธŒ๋žœ์น˜๋กœ feature ํ”„๋กœ์ ํŠธ๋ฅผ mergeํ•˜๋Š” ์ˆœ๊ฐ„ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๋ฐœ๋™๋˜์–ด ํ”„๋กœ์ ํŠธ์˜ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
- Github actions์—์„œ buildํ•œ docker image๋“ค์€ docker hub๋กœ push ๋ฉ๋‹ˆ๋‹ค. ์ดํ›„ actions์—์„œ ์„œ๋ฒ„ ์ธก์œผ๋กœ ์ง„์ž…์„ ํ•˜๊ฒŒ ๋˜๊ณ , ํ•ด๋‹น ์„œ๋ฒ„์—์„œ docker hub์— ์žˆ๋Š” ์ด๋ฏธ์ง€๋“ค์„ pull ๋ฐ›์•„ ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์šดํ•˜๊ณ  ์ƒˆ๋กœ pull ๋ฐ›์€ ์ด๋ฏธ์ง€๋“ค์„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ up ํ•ฉ๋‹ˆ๋‹ค.
![systme](./document/image/system.png)

## ํ˜‘์—… ๊ทœ์น™

### Github ํ˜‘์—… ๊ทœ์น™

Github ํ˜‘์—… ๊ทœ์น™์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1. ์ „์ฒด์ ์ธ ํ˜‘์—… flow๋Š” Github flow๋ฅผ ๋”ฐ๋ฆ„.
2. Forkํ•œ ์ €์žฅ์†Œ๋ฅผ ๊ฐ์ž local๋กœ ๊ฐ€์ ธ์™€ ์ˆ˜์ •.
3. ์ˆ˜์ •ํ•œ ์ฝ”๋“œ๋Š” add -> commit -> push ํ›„, upstream์— Pull Request๋ฅผ ์ˆ˜ํ–‰.
4. main branch๋กœ๋ถ€ํ„ฐ dev branch, prod branch๋ฅผ ๊ตฌ์„ฑ.
5. ์ถ”๊ฐ€๋˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ๋Š” feature branch๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ ๊ธฐ๋Šฅ๋ณ„ branch๋ฅผ ๊ตฌ์„ฑ.
6. Pull Request ์‹œ Code Review ์ดํ›„ Merge ์ง„ํ–‰.
7. Commit ๊ทœ์น™์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

| ์ปค๋ฐ‹ ํƒ€์ž… | ์„ค๋ช… |
| --------- | -------------------------------------------------------------- |
| Feat | ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ |
| Fix | ๋ฒ„๊ทธ ์ˆ˜์ • |
| Docs | ๋ฌธ์„œ ์ˆ˜์ • |
| Style | ์ฝ”๋“œ formatting, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ ๋“ฑ ์ฝ”๋“œ ์ž์ฒด์˜ ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ |
| Chore | ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ • ๋ฐ ๊ธฐํƒ€ ์ˆ˜์ • |
| Design | CSS ๋“ฑ ์‚ฌ์šฉ์ž UI ๋ณ€๊ฒฝ |

### Issue ํ™œ์šฉ

![issue](./document/image/issue.png)

- Github ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ Issueํƒญ์— Todo์ธ ์ƒํ™ฉ ํ˜น์€ In progress์— ๋Œ€ํ•œ ์ƒํ™ฉ์„ ์ž‘์„ฑํ•˜๊ณ  ๊ณต์œ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น Issue ๋ฒˆํ˜ธ๋กœ ๊ฐ์ž์˜ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ Pull Request ์‹œ์— ํ•ด๋‹น Issue๋ฅผ ์–ธ๊ธ‰ํ•˜์—ฌ ๊ณต์œ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ „๋žต์„ ์‚ฌ์šฉํ•˜์—ฌ Merge Conflict์˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

### PR ํ™œ์šฉ

![issue](./document/image/PR.png)

- ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐœ๋ฐœ ์ดํ›„ ํŠน์ • ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ œ์•ˆํ•˜๊ณ , ํŒ€์›๊ณผ ์ด๋ฅผ ๊ฒ€ํ†  ๋ฐ ๋…ผ์˜ํ•œ ํ›„, ์ตœ์ข…์ ์œผ๋กœ ํ•ด๋‹น ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
- ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์€ ํ•ด๋‹น Pull Request๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
- ๊ฒ€ํ†  ํ›„, Pull Request๊ฐ€ ์Šน์ธ๋˜๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ๋กœ ๋ณ‘ํ•ฉ๋˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, ์ถ”๊ฐ€์ ์ธ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์ž๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ ์ˆ˜์ •ํ•˜๊ณ , ์ˆ˜์ •๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋‹ค์‹œ push ํ–ˆ์Šต๋‹ˆ๋‹ค.

## ๊ตฌํ˜„๊ฒฐ๊ณผ

<div align=center>
<img src="./document/image/login.png">
<p>๋กœ๊ทธ์ธ ํŽ˜์ด์ง€</p>
<img src="./document/image/main.png">
<p>๋ฉ”์ธ ํŽ˜์ด์ง€</p>
<img src="./document/image/info.png">
<p>ํ•™์  ์กฐํšŒ ํŽ˜์ด์ง€</p>
<img src="./document/image/grade.png">
<p>์„ฑ์  ์กฐํšŒ ํŽ˜์ด์ง€</p>
<img src="./document/image/enroll.png">
<p>์ˆ˜๊ฐ• ์‹ ์ฒญ ํŽ˜์ด์ง€</p>
<img src="./document/image/confirm.png">
<p>์ˆ˜๊ฐ• ์กฐํšŒ ํŽ˜์ด์ง€</p>
<img src="./document/image/course.png">
<p>ํ•™์Šต ๊ด€๋ฆฌ ํŽ˜์ด์ง€</p>
</div>

## ๊ธฐ๋Œ€ํšจ๊ณผ

๊ธฐ๋Œ€ํšจ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1. ํŽ˜์ด์ง€ ํ•˜๋‚˜์— ํ•™์ƒ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์ด ํ†ตํ•ฉ ๋˜์–ด์žˆ์–ด ์‚ฌ์šฉ์ž์˜ ํŽธ์˜์„ฑ ์ฆ์ง„
2. PC, ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•œ ๊ฐœ์„ ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ํŽธ์˜์„ฑ ์ฆ์ง„
3. ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰์„ ํ†ตํ•œ ํŒ€์›๋“ค์˜ ์›น ์‹œ์Šคํ…œ ๊ตฌ์กฐ ์ดํ•ด ์ƒ์Šน
4. ํ˜‘์—… ํˆด (Github, Notion, Slack)์„ ํ™œ์šฉํ•˜์—ฌ ํŒ€์›๋“ค์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋Šฅ๋ ฅ ํ–ฅ์ƒ
5. ์˜คํ”ˆ์†Œ์Šค๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•œ ์ดํ•ด ์ƒ์Šน

## License

0 comments on commit c96f9c5

Please sign in to comment.