|
1 | | -# Runnect-Spring-Boot-Server |
| 1 | +# Runnect-Spring-Boot-Server |
| 2 | + |
| 3 | + |
| 4 | +### ์ ๊ณผ ์ ์ผ๋ก, ์ฝ์ค์ ์ฝ์ค๋ก ์ฐ๊ฒฐ๋๋ ๋์ ๋์ ๋ฌ๋ ๊ฒฝํ |
| 5 | + |
| 6 | +</br> |
| 7 | + |
| 8 | + |
| 9 | +</aside> |
| 10 | +<hr> |
| 11 | +</br> |
| 12 | + |
| 13 | +# โ ์๋น์ค ํต์ฌ ๊ธฐ๋ฅ |
| 14 | +### 1. ์ฝ์ค ๊ทธ๋ฆฌ๊ธฐ |
| 15 | +> ์ฝ์ค ๊ทธ๋ฆฌ๊ธฐ๋ก ๋ฌ๋ฆฌ๊ธฐ ์ ๋ชฉํ๋ฅผ ์ค์ ํ๊ณ ์ค์๊ฐ ํธ๋ํน์ผ๋ก ์ฝ์ค๋ฅด ๋ฐ๋ผ ์ ๋ฌ๋ฆฌ๊ณ ์๋์ง ํ์ธํฉ๋๋ค. |
| 16 | +### 2. ์ฝ์ค ๋ฐ๊ฒฌ |
| 17 | +> ์ฝ์ค ๋ฐ๊ฒฌ์ ํตํด ๋์๊ฒ ๋ง๋ ์ฝ์ค๋ฅผ ์ถ์ฒ ๋ฐ๊ฑฐ๋ ๋ค๋ฅธ ์ ์ ๊ฐ ๊ณต์ ํ ์ฝ์ค๋ฅผ ๊ฒ์ํ๊ณ ์คํฌ๋ฉํฉ๋๋ค. ์ฝ์ค๋ฅผ ์ง์ ์
๋ก๋ํ ์ ๋ ์์ต๋๋ค. |
| 18 | +### 3. ์ฝ์ค ๋ณด๊ดํจ |
| 19 | +> ์ฝ์ค ๋ณด๊ดํจ์์ ๋ด๊ฐ ๊ทธ๋ฆฐ ์ฝ์ค์ ์คํฌ๋ฉ ์ฝ์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. |
| 20 | +### 4. ๋ง์ดํ์ด์ง |
| 21 | +> ๋ง์ดํ์ด์ง์์ ํ๋กํ๊ณผ ํ๋ ๊ธฐ๋ก, ์
๋ก๋ํ ์ฝ์ค๋ฅผ ํ์ธํ๊ณ ๋ชฉํ ๋ณด์์ผ๋ก ๋๊ธฐ๋ฅผ ๊ฐํํฉ๋๋ค. |
| 22 | +
|
| 23 | +</aside> |
| 24 | +<hr> |
| 25 | +</br> |
| 26 | + |
| 27 | + |
| 28 | +# ๐งโ๐ง Tech Stack |
| 29 | +### Backend |
| 30 | +<img src="https://img.shields.io/badge/java-007396?style=for-the-badge&logo=java&logoColor=white"> <img src="https://img.shields.io/badge/springboot-6DB33F?style=for-the-badge&logo=springboot&logoColor=white">  <img src="https://img.shields.io/badge/spring data jpa-6DB33F?style=for-the-badge&logoColor=white"> <img src="https://img.shields.io/badge/hibernate-59666C?style=for-the-badge&logo=hibernate&logoColor=white"> <img src="https://img.shields.io/badge/gradle-02303A?style=for-the-badge&logo=gradle&logoColor=white"> |
| 31 | + |
| 32 | +### DB |
| 33 | +<img src="https://img.shields.io/badge/amazon rds-527FFF?style=for-the-badge&logo=amazonrds&logoColor=white"> <img src="https://img.shields.io/badge/postgresql-4169E1?style=for-the-badge&logo=postgresql&logoColor=white"> <img src="https://img.shields.io/badge/postGIS-4169E1?style=for-the-badge&logoColor=white"> <img src="https://img.shields.io/badge/redis-DC382D?style=for-the-badge&logo=redis&logoColor=white"> <img src="https://img.shields.io/badge/amazon s3-569A31?style=for-the-badge&logo=amazons3&logoColor=white"> |
| 34 | + |
| 35 | +### CI/CD |
| 36 | +<img src="https://img.shields.io/badge/aws code deploy-FF9900?style=for-the-badge&logoColor=white"> |
| 37 | + |
| 38 | +### Deploy |
| 39 | +<img src="https://img.shields.io/badge/amazon ec2-FF9900?style=for-the-badge&logo=amazon ec2&logoColor=white"> <img src="https://img.shields.io/badge/nginx-009639?style=for-the-badge&logo=nginx&logoColor=white"> |
| 40 | + |
| 41 | + |
| 42 | +### Develop Tool |
| 43 | +<img src="https://img.shields.io/badge/intelliJ-000000?style=for-the-badge&logo=intellij idea&logoColor=white"> <img src="https://img.shields.io/badge/postman-FF6C37?style=for-the-badge&logo=postman&logoColor=white"> <img src="https://img.shields.io/badge/github-181717?style=for-the-badge&logo=github&logoColor=white"> <img src="https://img.shields.io/badge/git-F05032?style=for-the-badge&logo=git&logoColor=white"> |
| 44 | + |
| 45 | +### Communicate Tool |
| 46 | +<img src="https://img.shields.io/badge/slack-4A154B?style=for-the-badge&logo=slack&logoColor=white"> <img src="https://img.shields.io/badge/notion-000000?style=for-the-badge&logo=notion&logoColor=white"> |
| 47 | +<br> |
| 48 | +<br> |
| 49 | + |
| 50 | + |
| 51 | +</aside> |
| 52 | +<hr> |
| 53 | +</br> |
| 54 | + |
| 55 | + |
| 56 | + |
| 57 | +# ๐ server architecture |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | +</aside> |
| 62 | +<hr> |
| 63 | +</br> |
| 64 | + |
| 65 | +# ๐ฝย DB ERD |
| 66 | +<img width="545" alt="แแ
ณแแ
ณแ
แ
ตแซแแ
ฃแบ 2024-03-26 แแ
ฉแแ
ฎ 1 15 33" src="https://github.com/Runnect/Runnect-Spring-Boot-Server/assets/65851554/c48b0966-e73d-4ec0-be08-b097c6890265"> |
| 67 | + |
| 68 | + |
| 69 | +</aside> |
| 70 | +<hr> |
| 71 | +</br> |
| 72 | + |
| 73 | + |
| 74 | +# ๐โโ๏ธ ์ญํ ๋ถ๋ด |
| 75 | + |
| 76 | +|๋ด๋น์|๋ด๋น ๋ด์ฉ| |
| 77 | +|:---|:---| |
| 78 | +|์ ์ํ|EC2, publicCourse & stamp ๊ด๋ จ api, ์ธํ๋ผ ๊ตฌ์ถ| |
| 79 | +|์ ์ ํฌ|RDS, course & user ๊ด๋ จ api, ์ธํ๋ผ ๊ตฌ์ถ| |
| 80 | +|๋ฐ์๋ฆฐ|S3, record & scrap ๊ด๋ จ api, ์ธํ๋ผ ๊ตฌ์ถ| |
| 81 | + |
| 82 | + |
| 83 | +</aside> |
| 84 | +<hr> |
| 85 | +</br> |
| 86 | + |
| 87 | +# ๐ฃ๏ธ๏ธ ์ปจ๋ฒค์
|
| 88 | + |
| 89 | +> ๐ก **๋๋ฃ๋ค๊ณผ ๋งํฌ๋ฅผ ํต์ผํ๊ธฐ ์ํด ์ปจ๋ฒค์
์ ์ง์ ํฉ๋๋ค.** |
| 90 | +> ์คํฉ์ง์กธ์ ์ฝ๋๊ฐ ์๋, **ํ ์ฌ๋์ด ์ง ๊ฒ๊ฐ์ ์ฝ๋**๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ถํ ์ ์ง๋ณด์๋ ํ์
์์ ๋์์ด ๋ฉ๋๋ค. ๋ด๊ฐ ์ฝ๋๋ฅผ ์๊ฐํ๋ฉด์ ์งค ์ ์๋๋ก ํด์ฃผ๋ ๋ฃฐ์ด๋ผ๊ณ ์๊ฐํด๋ ์ข์ต๋๋ค! |
| 91 | +
|
| 92 | +## ๐ฉโ๐ปย Coding Conventions |
| 93 | + |
| 94 | +<details> |
| 95 | +<summary>๋ช
๋ช
๊ท์น(Naming Conventions)</summary> |
| 96 | +<div markdown="1"> |
| 97 | + |
| 98 | +1. ์ด๋ฆ์ผ๋ก๋ถํฐ ์๋๊ฐ ์ฝํ์ง ์ ์๊ฒ ์ด๋ค. |
| 99 | + |
| 100 | +2. ๋จ์๋ฅผ ๊ธฐ๋ณธํ์ผ๋ก ํ๋ค. |
| 101 | + |
| 102 | + - ๊ธฐ๋ฅ ์์ฒด์์ ๋จ์, ๋ณต์๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒฝ์ฐ์๋ง ๋ณต์ ์ฌ์ฉ ex. ๋ค์ค์ญ์ , ๋จ์ผ์ญ์ |
| 103 | + |
| 104 | +3. DB์ ํ
์ด๋ธ, ํด๋์ค์๋ `PascalCase`๋ฅผ ์ฌ์ฉํ๋ค. |
| 105 | + |
| 106 | +4. ๋ณ์, ๋ฉ์๋์๋ `camelCase`๋ฅผ ์ฌ์ฉํ๋ค. |
| 107 | + |
| 108 | +5. DB์ ํ
์ด๋ธ์ ์นผ๋ผ์๋ `snake_case`๋ฅผ ์ฌ์ฉํ๋ค. |
| 109 | + |
| 110 | +6. ์์, enum์๋ `UPPER_SNAKE_CASE`๋ฅผ ์ฌ์ฉํ๋ค. |
| 111 | + |
| 112 | +7. ๋ฉ์๋๋ `crud + http method`(๋์ฌ) + ๋ช
์ฌ ํํ๋ก ์์ฑํ๋ค. |
| 113 | + |
| 114 | + - c : ex. `createUser` |
| 115 | + - r : ex. `getUser` |
| 116 | + - u : ex. `updateUser` |
| 117 | + - d : ex. `deleteUser` |
| 118 | + |
| 119 | +8. ์ฝ์ด ์ฌ์ฉ์ ์ต๋ํ ์ง์ํ๋ค. |
| 120 | + |
| 121 | +9. ์ด๋ฆ์ ๋ค ๋จ์ด ์ด์์ด ๋ค์ด๊ฐ๋ฉด ํ์๊ณผ ์์๋ฅผ ๊ฑฐ์น ํ ์ฌ์ฉํ๋ค. |
| 122 | + </div> |
| 123 | + </details> |
| 124 | + |
| 125 | +<details> |
| 126 | +<summary>์ฃผ์(Comment)</summary> |
| 127 | +<div markdown="1"> |
| 128 | + |
| 129 | +1. ํด๋น ๋ฉ์๋๊ฐ ์ด๋์ ์ฐ์ด๋์ง ์ค๋ช
ํ๋ค. |
| 130 | + |
| 131 | +2. ํด๋น ๋ถ๊ธฐ๋ฌธ์ด ์ด๋ค ๋ถ๊ธฐ์ธ์ง ์ค๋ช
ํ๋ค. |
| 132 | + |
| 133 | +3. ๋ฐ๋ณต๋ฌธ์์ ์ด๋ค ์กฐ๊ฑด์์ ๋ฐ๋ณต๋๋์ง ์ค๋ช
ํ๋ค. |
| 134 | + |
| 135 | +4. ์ ๋ ฌํ๊ณ ํํฐ๋งํ ๋ ์ด๋ค ์กฐ๊ฑด์ ์ ๋ ฌ๊ณผ ํํฐ๋ง์ธ์ง ์ค๋ช
ํ๋ค. |
| 136 | + |
| 137 | +</div> |
| 138 | +</details> |
| 139 | + |
| 140 | +<hr> |
| 141 | +</br> |
| 142 | + |
| 143 | +## ๐ณ Branch |
| 144 | + |
| 145 | +๐ฑ git branch ์ ๋ต |
| 146 | + |
| 147 | +`main branch` : ์ด์ ์๋ฒ ๋ฐฐํฌ ๋จ์ branch |
| 148 | + |
| 149 | +`dev branch` : ์ฃผ์ ๊ฐ๋ฐ branch, main merge ์ ๊ฑฐ์น๋ branch, test ์๋ฒ๋ก ๋ฐฐํฌ๋๋ branch |
| 150 | + |
| 151 | +`feat branch`: ๊ฐ์ ๊ฐ๋ฐ branch |
| 152 | + |
| 153 | +- ํ ์ผ issue ๋ฑ๋ก ํ issue ๋ฒํธ์ isuue ์ด๋ฆ์ผ๋ก branch ์์ฑ ํ ์์
|
| 154 | + - ex) feat/#`issue num`-`isuue name(๊ธฐ๋ฅ์์ฝ)` |
| 155 | +- ํด๋น branch ์์
์๋ฃ ํ PR ๋ณด๋ด๊ธฐ |
| 156 | + - ํญ์ local์์ ์ถฉ๋ ํด๊ฒฐ ํ โ remote์ ์ฌ๋ฆฌ๊ธฐ |
| 157 | + - reviewer์ ์๋ก tagํ code-review |
| 158 | + - comment ์ merge ๋ถ๊ฐ! |
| 159 | + - review๋ฐ์ ํ, ๋ณธ์ธ์ด merge. |
| 160 | + |
| 161 | +### branch ๊ตฌ์กฐ |
| 162 | + |
| 163 | +```jsx |
| 164 | +- main |
| 165 | +- dev |
| 166 | +- feat |
| 167 | + โโโ #1-isuue name1 |
| 168 | + โโโ #2-isuue name2 |
| 169 | +``` |
| 170 | + |
| 171 | +</aside> |
| 172 | +<hr> |
| 173 | +</br> |
| 174 | + |
| 175 | +## ๐งต Commit Convention |
| 176 | + |
| 177 | +<aside> |
| 178 | +๐ git commit message convention |
| 179 | + |
| 180 | +`ex) feat(๋ณ๊ฒฝํ ํ์ผ) : ๋ณ๊ฒฝ ๋ด์ฉ (/#issue num)` |
| 181 | + |
| 182 | +```plain |
| 183 | +- โจ feat: ์๋ก์ด ๊ธฐ๋ฅ ๊ตฌํ |
| 184 | +- ๐ fix: ๋ฒ๊ทธ, ์ค๋ฅ ํด๊ฒฐ |
| 185 | +- ๐งน chore: src ๋๋ test ํ์ผ์ ์์ ํ์ง ์๋ ๊ธฐํ ๋ณ๊ฒฝ ์ฌํญ ( ์๋ก์ด ํ์ผ ์์ฑ, ํ์ผ ์ด๋, ์ด๋ฆ ๋ณ๊ฒฝ ๋ฑ ) |
| 186 | +- โป๏ธ refactor: ๋ฒ๊ทธ ์์ ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ๊ฐ ์๋ ์ฝ๋ ๋ณ๊ฒฝ ( ์ฝ๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ ๋ฑ์ ๋ฆฌํฉํ ๋ง ) |
| 187 | +- ๐ style: ์ฝ๋์ ์๋ฏธ์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๋ณ๊ฒฝ ์ฌํญ ( ์ฝ๋ ํ์, ์ธ๋ฏธ์ฝ๋ก ์ถ๊ฐ: ๋น์ฆ๋์ค ๋ก์ง์ ๋ณ๊ฒฝ ์์ ) |
| 188 | +- ๐๏ธ build: ๋น๋ ์์คํ
๋๋ ์ธ๋ถ์ ์ํฅ์ ๋ฏธ์น๋ ๋ณ๊ฒฝ ์ฌํญ ์ข
์์ฑ ( ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ ๋ฑ ) |
| 189 | +- ๐ perf: ์ฑ๋ฅ์ ํฅ์ ์ํค๊ธฐ ์ํ ์ฝ๋ ๋ณ๊ฒฝ |
| 190 | +- ๐งช test: ํ
์คํธ ์ถ๊ฐ ๋๋ ์ด์ ํ
์คํธ ์์ |
| 191 | +- ๐ docs: README๋ WIKI ๋ฑ์ ๋ฌธ์ ๊ฐ์ |
| 192 | +- โช๏ธ revert: ์ด์ ์ปค๋ฐ์ ๋๋๋ฆฌ๋ ๊ฒฝ์ฐ |
| 193 | +- ๐ฆ ci: CI ๊ตฌ์ฑ ํ์ผ ๋ฐ ์คํฌ๋ฆฝํธ ๋ณ๊ฒฝ |
| 194 | +- Merge: ๋ค๋ฅธ๋ธ๋ ์น๋ฅผ mergeํ๋ ๊ฒฝ์ฐ |
| 195 | +- Init : Initial commit์ ํ๋ ๊ฒฝ์ฐ |
| 196 | +``` |
| 197 | + |
0 commit comments