diff --git a/README.md b/README.md new file mode 100644 index 0000000..be8a14f --- /dev/null +++ b/README.md @@ -0,0 +1,161 @@ +# π Soullive-A + +## ποΈ μμΈλͺ¨λΈ + +## π©βπ©βπ§βπ¦ R&R + +| λΆμΌ | μ΄λ¦ | ν¬μ§μ | +| --- |-----|--------------------------------------------------------| +| λμμΈ | νμΉλ¦¬ | π§Ή PM & λμμΈ : ν μ΄ κ΄λ¦¬, λμμΈ μ΄κ΄ λ° UI/UX ν΄μ μ΄μ©ν νλ‘ν νμ λμμΈ | +| κΈ°ν | μ‘νμ | πκΈ°ν : 리μμΉγ»μλΉμ€ ν΅μ¬ κΈ°λ₯ λ° μΈλΆ κΈ°λ₯ μ€κ³ λ΄λΉ λ° μ€ν 리보λ λ΄λΉ | +| κΈ°ν | κΉλ³μ§ | πκΈ°ν : 리μμΉγ»μλΉμ€ ν΅μ¬ κΈ°λ₯ λ° μΈλΆ κΈ°λ₯ μ€κ³ λ΄λΉ λ° μ€ν 리보λ λ΄λΉ | +| κ°λ° | μ‘μΉν¬ | π₯οΈ Front-End, μμ λ‘κ·ΈμΈ κ΅¬ν, μλ² μ°λ | +| κ°λ° | κΉμν | π₯οΈ Front-End, μμ λ‘κ·ΈμΈ κ΅¬ν, μλ² μ°λ | +| κ°λ° | μ΄μλ―Ό | π₯οΈ Back-End, ERD μ€κ³ λ° MySQL κ΅¬μΆ ... | +| κ°λ° | μ€μλ―Ό | π» Back-End, ERD μ€κ³ λ° MySQL κ΅¬μΆ . .. | +| κ°λ° | λ°μ§μ° | π» Back-End, ERD μ€κ³ λ° MySQL κ΅¬μΆ . .. | +<br> + + +## **π System Architecture** + +![image](https://github.com/Kusitms-28th-Meetup-D/.github/assets/77064618/b31487de-eb5e-400b-b141-7e5d9817fb07) + +<br><br> + +## πκΈ°μ μ€ν + +### π₯οΈFrontend +- ![TypeScript](https://img.shields.io/badge/Typescript-3178C6?style=flat-square&logo=Typescript&logoColor=white) +- ![React](https://img.shields.io/badge/react-61DAFB?style=flat-square&logo=react&logoColor=white) + ![React-Query](https://img.shields.io/badge/reactquery-FF4154?style=flat-square&logo=reactquery&logoColor=white) + ![Axios](https://img.shields.io/badge/axios-DB5C3F?style=flat-square&logo=axios&logoColor=white) + ![Recoil](https://img.shields.io/badge/recoil-f26b00?style=flat-square&logo=recoil&logoColor=white) + ![Styled-Components](https://img.shields.io/badge/styledcomponents-DB7093?style=flat-square&logo=styledcomponents&logoColor=white) + +- ![vite](https://img.shields.io/badge/vite-646CFF?style=flat-square&logo=vite&logoColor=white) + <br/> + + + +### π»Backend +- ![IntelliJ IDEA](https://img.shields.io/badge/IntelliJ%20IDEA-000000.svg?style=flat-square&logo=intellij-idea&logoColor=white) + ![Java](https://img.shields.io/badge/Java-%23ED8B00.svg?style=flat-square&logo=Java&logoColor=white) + ![Springboot](https://img.shields.io/badge/Springboot-6DB33F?style=flat-square&logo=springboot&logoColor=white) + ![Shell Script](https://img.shields.io/badge/Shell_Script-%23121011.svg?style=flat-square&logo=gnu-bash&logoColor=white) + ![Gradle](https://img.shields.io/badge/Gradle-02303A.svg?style=flat-square&logo=Gradle&logoColor=white) + ![Spring Data JPA](https://img.shields.io/badge/Spring%20Data%20JPA-6DB33F?style=flat-square&logo=spring&logoColor=white) + ![JWT](https://img.shields.io/badge/JWT-black?style=flat-square&logo=JSON%20web%20tokens) +- ![MySQL](https://img.shields.io/badge/MySQL-%2300f.svg?style=flat-square&logo=mysql&logoColor=white) + ![RDS](https://img.shields.io/badge/AWS%20RDS-527FFF?style=flat-square&logo=Amazon%20RDS&logoColor=white) + ![S3](https://img.shields.io/badge/AWS%20S3-569A31?style=flat-square&logo=Amazon%20S3&logoColor=white) + ![Hibernate](https://img.shields.io/badge/Hibernate-59666C?style=flat-square&logo=Hibernate&logoColor=white) +- ![GitHub Actions](https://img.shields.io/badge/Github%20Actions-%232671E5.svg?style=flat-square&logo=githubactions&logoColor=white) + ![EC2](https://img.shields.io/badge/AWS%20EC2-FF9900?style=flat-square&logo=Amazon%20EC2&logoColor=white) + ![Docker](https://img.shields.io/badge/Docker-%230db7ed.svg?style=flat-square&logo=docker&logoColor=white) + ![Nginx](https://img.shields.io/badge/Nginx-%23009639.svg?style=flat-square&logo=nginx&logoColor=white) + <br/> + +#### Spring Data JPA +- μλ°μμ db benderμ μ’ μλμ§ μκ³ κ°μ²΄ μ€μ¬μΌλ‘ μ ν리μΌμ΄μ κ°λ° κ°λ₯ν©λλ€. +#### AWS EC2 +- μ€νλ§ μ ν리μΌμ΄μ λ°°ν¬ μλ²λ‘ ν리ν°μ΄λ₯Ό ν΅ν΄ 무λ£λ‘ μΌμ λ μ¬μ©ν μ μμ΅λλ€., +#### RDS mysql +- μΌμ λ 무λ£λ‘ μ¬μ©ν μ μμΌλ©° ν΄λΌμ°λ μΈμ€ν΄μ€ν ν μ μμ΅λλ€. +#### S3 +- νμν λ°μ΄ν°λ₯Ό μ΄λμλ μ½κ² μ μ₯νκ³ κ²μν μ μλλ‘ ν΄μ€λλ€. +#### Docker +- CICDλ₯Ό μ§ν ν λ μ€ν κ°λ₯ν μλ² μ ν리μΌμ΄μ μ λ컀λ₯Ό ν΅ν΄ 컨ν μ΄λν μμΌ μλ² νκ²½μμ μ½κ² μ€νν μ μκ² ν©λλ€. +#### Docker-compose +- EC2 μΈμ€ν΄μ€ λ΄λΆμμ λΉλν docker image μ½κ² κ΄λ¦¬ν μ μκ² ν©λλ€. +#### git action +- Githubμμ μ 곡νλ CICD νλ‘μΈμ€λ‘ μ ν¨μ€μ κ°μ λ³λμ νμ΄νλΌμΈμ ꡬμΆν νμ μλ€λ μ₯μ μ΄ μμ΅λλ€. +#### Spring Security +- Spring bootμ ν΅ν©νμ¬ μ¬μ©μ μΈμ¦κ³Ό μΈκ°μ λν 보μ μꡬμ¬νμ μ½κ² μ²λ¦¬νλλ‘ λμμ€λλ€. + +<br/><br/> + +### πCo-working Tool +- ![swagger](https://img.shields.io/badge/swagger-85EA2D.svg?style=flat-square&logo=swagger&logoColor=white) + ![Notion](https://img.shields.io/badge/Notion-%23000000.svg?style=flat-square&logo=notion&logoColor=white) + ![Postman](https://img.shields.io/badge/Postman-FF6C37?style=flat-square&logo=postman&logoColor=white) + + + +<br><br> + +## π Naming Rules +### π₯οΈFrontend +- component : **PascalCase** + - μ΅μμ νκ·Έ : **-Layout** + - μ°¨μμ νκ·Έ : **-Container** +- constant : **SNAKE_CASE** +- λ³μ : **camelCase** +- recoil atom : **camelCaseState** +- Interface + - props : **PascalCaseProps** + - api response : **PascalCaseResponse** + +### π»Backend +- **Packages** + - νμ μλ¬Έμλ‘ μμ±νκΈ° +- **Classes** + - λͺ μ¬μ¬μΌ νλ€. + - λ³΅ν© λ¨μ΄μ κ²½μ° κ° λ¨μ΄μ 첫κΈμλ λλ¬Έμ. + - μμ ν λ¨μ΄λ₯Ό μ¬μ©νκ³ , λ λ¬Έμμ΄μ μ½μ΄λ νΌνλ€. +- **Interfaces** + - μΈν°νμ΄μ€ μ΄λ¦λ ν΄λμ€ μ΄λ¦κ³Ό κ°μ λλ¬Έμ κ·μΉμ μ μ©νλ€. +- **Methods** + - λμ¬μ¬μΌ νλ€. + - λ³΅ν© λ¨μ΄μ κ²½μ° μ²« λ¨μ΄λ μλ¬Έμλ‘ μμνλ€. +- **Constants** + - ν΄λμ€ μμλ‘ μ μΈλ λ³μλ€κ³Ό μμλ€μ μ΄λ¦μ λͺ¨λ λλ¬Έμλ‘ μ°κ³ κ° λ¨μ΄λ μΈλλ° ("_")λ‘ λΆλ¦¬νλ€. + -** Variables** + - λ³μ μ΄λ¦μ 첫λ²μ§Έ λ¬Έμλ μλ¬Έμμ¬μΌ νλ€. + - μΈλλ° λλ λ¬λ¬ νμ λ¬Έμλ‘ μμνλ κ²μ΄ νμ© λκΈ°λ νμ§λ§, μ¬μ©νμ§ λ§μ. + - 짧μ§λ§ μλ―Έμκ² μ§λλ€. + - λ³μμ μ¬μ© μλλ₯Ό μ μ μλλ‘ μλ―Έμ μΌλ‘ μ§λλ€. + - νλ¬Έμλ‘λ§ μ΄λ£¨μ΄μ§ λ³μλ μμμ μΌλ‘λ§ μ¬μ©νκ³ λ²λ¦΄ λ³μλ₯Ό μ μΈνκ³ λ νΌνλ€. + - μμ λ³μμ μ΄λ¦μ integerλ i,j,k,m,n μ μ¬μ©νκ³ characterλ c,d,eλ₯Ό μ¬μ©νλ€. +- **ETC** + - DB ν μ΄λΈ: **lower_snake_case** + - ENUM, μμ: **Upper_snake_case** + - 컬λ μ (Collection): **볡μν**μ μ¬μ©νκ±°λ **컬λ μ μ λͺ μνλ€**. (Ex. userList, users, userMap) + - LocalDateTime: μ λ―Έμ¬μ **Date**λ₯Ό λΆμΈλ€. + +<br><br><br> + +## **ποΈ Commit Convention** + + +Ex) `git commit -m "feat(#8) : μ± μ€μΉ νλ‘ν λ°°λ μΆκ°" ` + +- `feat` : μλ‘μ΄ κΈ°λ₯ μΆκ° +- `fix` : λ²κ·Έ μμ +- `chore` : λΉλ μ 무, ν¨ν€μ§ 맀λμ , λΌμ΄λΈλ¬λ¦¬, dependencies μ€μ +- `docs` : λ¬Έμ μμ - <i>README.md, .github, ..etc</i> +- `design` : μ¬μ©μ UI λμμΈ λ³κ²½ - <i> CSS</i> +- `style` : κΈ°λ₯ μμ μλ μ½λ μ€νμΌ λ³κ²½ +- `refactor` : μ½λ 리ν©ν°λ§ +- `test` : ν μ€νΈ μ½λ, 리νν λ§ ν μ€νΈ μ½λ μΆκ° +- `ci` : ci μ€μ νμΌ μμ +- `perf` : μ±λ₯ κ°μ +- `rename` : νμΌ νΉμ ν΄λλͺ λ³κ²½ + + + +<br> + +## **π¬ Git Flow** +- `main` : μΆμ κ°λ₯ν νλ‘λμ μ½λμ λΈλμΉ +- `develop` : λ€μ λ²μ μ κ°λ°νλ λΈλμΉ +- `feature` : κΈ°λ₯μ κ°λ°νλ λΈλμΉ +- `hotfix` : μΆμ λ²μ μμ λ°μν λ²κ·Έλ₯Ό μμ νλ λΈλμΉ + + λΈλμΉ λ€μ΄λ° : `feat/μ΄μλ²νΈ` + +<br> + +## ERD λ° μν¬νλ‘μ° + +![image](https://github.com/Kusitms-28th-Meetup-D/.github/assets/77064618/7e22fb9b-45b9-4fe6-9a04-ef615b8181b7)