๐ ํธ๋ ๋ชจ์ ์บก์ฒ๋ก ์ฆ๊ธฐ๋ ์ค์๊ฐ 1:1 ๋๊ฒฐ ํ ํธ๋ฆฌ์ค

- Intellij
- Data JPA
- JDK 21
- Mysql
- Redis (Cache DB)
- Docker
- Terraform
- Github Action
- Junit
- Mockito
- Prometheus
- Grafana
- PostMan (API Test)
- ํ๋๋ช
์ ์ ๋ถ
camelCase
๋ก ์์ฑ - Class Name์
PascalCase
๋ก ์์ฑ
Domain
๋ณ๋ก ํจํค์ง๋ฅผ ๋ถ๋ฆฌํ๋ค.- ex.)
ํ์
,์ฑํ ๋ฐฉ
์ด ์กด์ฌํ๋ค๋ฉดmember
,chat
๋ฑ์ ํฐ ๋จ์์ Domain์ผ๋ก ๋ถ๋ฆฌํ๋ค.
- ex.)
- Controller๋
api
,Service๋application
,Repository๋repo
๋ก Namingํ์ฌ ๊ธฐ๋ฅ๋ณ๋ก ๋ถ๋ฆฌ- Service์ ๊ฒฝ์ฐ
impl
๊ณผservice
๋ก ๋๋์ดDIP
์ค์
- Service์ ๊ฒฝ์ฐ
- DTO์ Entity๋ ๋ณ๋์ ํจํค์ง์์ ๊ด๋ฆฌํ๋ฉฐ, DTO๋ด๋ถ๋ Request์ Response ์ฉ๋์ ๋ฐ๋ผ ํจํค์ง๋ฅผ ๋ฐ๋ก ๋์ด ๋ถ๋ฆฌํ๋ค.
- DTO๋
Inner Class
๋ฐฉ์์ ์ฌ์ฉํ๋ค. - Naming์ ๊ฒฝ์ฐ
MemberDTO
์ ๊ฒฝ์ฐ, ํ์๊ฐ์ ๊ณผ ์ ๋ณด์กฐํ DTO๋ ๋ค์๊ณผ ๊ฐ์ดSignUp
,CheckInfo
๋ก ์ ์ ํ๋ค.
- DTO๋
- ex)
root
โโโ README.md
โโโ build
โ โโโ classes
โ โ โโโ java
โ โ โโโ main
โ โ โโโ jungle
โ โ โโโ HandTris
โ โ โโโ HandTrisApplication.class
โ โ โโโ application
โ โ โ โโโ impl
โ โ โ โโโ service
โ โ โโโ domain
โ โ โ โโโ exception
โ โ โ โโโ repo
โ โ โโโ global
โ โ โ โโโ config
โ โ โ โ โโโ log
โ โ โ โ โโโ security
โ โ โ โ โโโ ws
โ โ โ โโโ discord
โ โ โ โ โโโ model
โ โ โ โโโ dto
โ โ โ โโโ exception
โ โ โ โโโ filter
โ โ โ โโโ handler
โ โ โ โโโ jwt
โ โ โ โโโ util
โ โ โ โโโ validation
โ โ โโโ presentation
โ โ โโโ dto
โ โ โโโ request
โ โ โโโ response
โ โโโ resources
โ โ โโโ main
โ โ โโโ db
โ โ โโโ migration
โโโ build.gradle
โโโ docker
โ โโโ Dockerfile
โ โโโ docker-compose.yml
โ โโโ monitor
โ โโโ grafana
โ โ โโโ dashboards
โ โ โโโ dashboards.yml
โ โโโ prometheus
โ โโโ prometheus.yml
โโโ docs
โ โโโ API_Documentation.md
โ โโโ ERD.md
โ โโโ UseCase.md
โ โโโ images
โ โโโ ApiDocumentation.png
โ โโโ ERD.png
โ โโโ UseCase.png
โโโ infra
โ โโโ alb.tf
โ โโโ ec2.tf
โ โโโ handtris.pem
โ โโโ network.tf
โ โโโ provider.tf
โ โโโ rds.tf
โ โโโ route.tf
โ โโโ variable.tf
โ โโโ version.tf
โ โ โโโ resources
โ โ โโโ application-S3.yml
โ โ โโโ application-dev.yml
โ โ โโโ application-jwt.yml
โ โ โโโ application-prod.yml
โ โ โโโ application.yml
โ โ โโโ console-appender.xml
โ โ โโโ db
โ โ โ โโโ locust_dummy.sql
โ โ โ โโโ migration
โ โ โ โโโ V1__init.sql
โ โ โ โโโ V2__delete_avg_time_member_record.sql
โ โ โโโ discord-appender.xml
โ โ โโโ logback-dev.xml
โ โ โโโ logback-prod.xml
- YMLํ์ผ์
Kebab Case
๋ก Namingํ๋ค. - DB ์ค์ ๋ฐ ํ๋ก์ ํธ์ ํ์ํ ์ค์ ๋ค์
application.yml
์ ์ ์ฅํ์ฌ์ค๋ค. - jwt,aws,mail๋ฑ์ ๋ณ๋์ ymlํ์ผ์ ๋ง๋ค์ด ๊ด๋ฆฌํ๋ค.
- ๋์ฌ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- RestFulํ ๋ค์ด๋ฐ์ ์ฌ์ฉํ๋ค.
- ex.) ${domain_name}s/
- AWS EC2์ ์ด์์๋ฒ๋ฅผ ์ด์ํ๋ฉฐ Github Action๊ณผ Docker๋ฅผ ์ด์ฉํ์ฌ CI/CD๋ฅผ ๊ตฌ์ถ
- Mysql DB๋ RDS์ ์ด์์ค์ด๋ฉฐ, ๊ฐ์ VPC๊ฐ ์๋๋ผ๋ฉด ์ ๊ทผ๋ถ๊ฐ
Organization์์ BackEnd ๋ณ๋์ ๋ ํ์งํ ๋ฆฌ์์ ๊ด๋ฆฌํฉ๋๋ค.
โ๏ธ ๋ธ๋์น ๊ตฌ์ฑ
feat
๋ธ๋์น๋ ํ๋์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋ธ๋์น์ ๋๋ค. ๋ถ๋ชจ๋develop
์ด๋ฉฐ, ๊ฐ๋ฐ์ด ์๋ฃ๋๋ฉดdevelop
์ mergeํฉ๋๋ค. ๋ธ๋์น ์ด๋ฆ์ ๋ณดํตfeature/*
์ด ๋ฉ๋๋ค.dev
๋ธ๋์น๋ ๊ฐ๋ฐ์ ์ํ ๋ธ๋์น์ ๋๋ค. ์ฌ๋ฌfeature
๋ค์ด merge๋๋ ์ฅ์์ด๋ฉฐ, ์์ง release๋์ง ์์ ๊ธฐ๋ฅ๋ค์ด ๋ชจ์ฌ ์๊ฒ ๋ฉ๋๋ค.main
๋ธ๋์น๋ ์ค์ ์ด์ ์ค์ธ ์๋น์ค์ ๋ธ๋์น์ ๋๋ค.hotfix
๋ธ๋์น๋ ์๋น์ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ํซํฝ์ค์ ํด๋นํ๋ ๋ธ๋์น์ ๋๋ค. ๊ธฐ๋ฅ ๊ฐ๋ฐ(feature
) ๋ฑ๊ณผ ๋ฌ๋ฆฌ ๋น ๋ฅด๊ฒ ๋์ฒํด์ผ ํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์,master
๋ธ๋์น์ ์ง์ mergeํ๋ ์ ๋ต์ ์ทจํฉ๋๋ค.dev
๊ณผ์ ์ฐจ์ด๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์, ๋์ค์ ์ฐจ์ด๋ฅผ mergeํ ํ์๊ฐ ์์ต๋๋ค.
Squash and Merge
๋ฐฉ๋ฒ์ ์ฐจ์ฉํ์ฌIssue
,Feature
๋จ์ ์ปค๋ฐ์ ํตํด Merge์ ์งํ ์ฌํญ ๊ตฌ์กฐ ์์ฝ๊ฒ ํ์ ํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋กํ๋ค.- ๊ฐ branch PR์
์ด์ํ
ํ์ฌ ์ฝ๋์ ๋ํ ํผ๋๋ฐฑ ๋ฐ ํ ๋ก ํ ์๋๋ฐฉ์ดMerge
โ๏ธ ๋ค์ด๋ฐ ํจํด
#์ด์๋ฒํธ
Ex) ์ด์๋ฒํธ๊ฐ 67์ธ '๋ก๊ทธ์ธ ๊ธฐ๋ฅ' ์ด์๋ฅผ ๊ตฌํํ๋ ๋ธ๋์น๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ, ๋ธ๋์น ์ด๋ฆ์#67
๋ก ์์ฑํ๋ค.
โ ๋ฉ์์ง ๊ตฌ์กฐ
Type : ์ ๋ชฉ #์ด์๋ฒํธ
๋ณธ๋ฌธ
**Ex)**์ด์๋ฒํธ๊ฐ 67์ธ ์ด์์ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ค ์ปค๋ฐ์ ํ๋ ์ํฉ์ด๋ผ๋ฉด ์ปค๋ฐ ๋ฉ์์ง์ ์ ๋ชฉ์feat : A๊ธฐ๋ฅ ๊ตฌํ #67
์ผ๋ก ์์ฑํ๋ค.
โ Type
feat
: ์๋ก์ด ๊ธฐ๋ฅ์ ๋ํ ์ปค๋ฐfix
: ๋ฒ๊ทธ ์์ ์ ๋ํ ์ปค๋ฐdocs
: ๋ฌธ์ ์์ ์ ๋ํ ์ปค๋ฐstyle
: ์ฝ๋ ์คํ์ผ ํน์ ํฌ๋งท ๋ฑ์ ๊ดํ ์ปค๋ฐrefactor
: ์ฝ๋ ๋ฆฌํฉํ ๋ง์ ๋ํ ์ปค๋ฐtest
: ํ ์คํธ ์ฝ๋ ์์ ์ ๋ํ ์ปค๋ฐchore
: ํจํค์ง ๊ด๋ จ ๋ฐ ๋น๋์ฝ๋ ์์
- ์ฌ์ง
2024 06 20 ~ 2024 07 20