What's Song(์์ก) ์๋น์ค ๋ฐฑ์๋ ๋ ํฌ์งํ ๋ฆฌ
- Intellij
- SpringBoot
- Java (11 JDK) or Kotlin
- MariaDB (DB)
- Redis (Cache DB)
- ๋ฐฐํฌ ๋ฐ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ ๋ฏธ์
- 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
|
|---member
| |--- api
| |--- application
| | |
| | |--- service
| | |--- impl
| |--- repo
| |--- dto
| | |--- request
| | |--- response
| |--- entity
| |--- config
|________________
- YMLํ์ผ์
Kebab Case
๋ก Namingํ๋ค. - DB ์ค์ ๋ฐ ํ๋ก์ ํธ์ ํ์ํ ์ค์ ๋ค์
application.yml
์ ์ ์ฅํ์ฌ์ค๋ค. - jwt,aws,mail๋ฑ์ ๋ณ๋์ ymlํ์ผ์ ๋ง๋ค์ด ๊ด๋ฆฌํ๋ค.
- ๋์ฌ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- /api/๋ฒ์ ๋ช /Entity Name ์ ์ฌ์ฉํ๋ค.
- ex.) api/v1/member
- ๋ฐฐํฌํ๊ฒฝ ๋ฐ DB ์ฐ๊ฒฐ ๋ฐฉ๋ฒ ๋ฏธ์
Organization์์ BackEnd ๋ณ๋์ ๋ ํ์งํ ๋ฆฌ์์ ๊ด๋ฆฌํฉ๋๋ค.
โ๏ธ ๋ธ๋์น ๊ตฌ์ฑ
feat
๋ธ๋์น๋ ํ๋์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋ธ๋์น์ ๋๋ค. ๋ถ๋ชจ๋develop
์ด๋ฉฐ, ๊ฐ๋ฐ์ด ์๋ฃ๋๋ฉดdevelop
์ mergeํฉ๋๋ค. ๋ธ๋์น ์ด๋ฆ์ ๋ณดํตfeature/*
์ด ๋ฉ๋๋ค.deve
๋ธ๋์น๋ ๊ฐ๋ฐ์ ์ํ ๋ธ๋์น์ ๋๋ค. ์ฌ๋ฌfeature
๋ค์ด merge๋๋ ์ฅ์์ด๋ฉฐ, ์์ง release๋์ง ์์ ๊ธฐ๋ฅ๋ค์ด ๋ชจ์ฌ ์๊ฒ ๋ฉ๋๋ค.main
๋ธ๋์น๋ ์ค์ ์ด์ ์ค์ธ ์๋น์ค์ ๋ธ๋์น์ ๋๋ค.hotfix
๋ธ๋์น๋ ์๋น์ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ํซํฝ์ค์ ํด๋นํ๋ ๋ธ๋์น์ ๋๋ค. ๊ธฐ๋ฅ ๊ฐ๋ฐ(feature
) ๋ฑ๊ณผ ๋ฌ๋ฆฌ ๋น ๋ฅด๊ฒ ๋์ฒํด์ผ ํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์,master
๋ธ๋์น์ ์ง์ mergeํ๋ ์ ๋ต์ ์ทจํฉ๋๋ค.dev
๊ณผ์ ์ฐจ์ด๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์, ๋์ค์ ์ฐจ์ด๋ฅผ mergeํ ํ์๊ฐ ์์ต๋๋ค.
Squash and Merge
๋ฐฉ๋ฒ์ ์ฐจ์ฉํ์ฌIssue
,Feature
๋จ์ ์ปค๋ฐ์ ํตํด Merge์ ์งํ ์ฌํญ ๊ตฌ์กฐ ์์ฝ๊ฒ ํ์ ํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋กํ๋ค.- ๊ฐ branch PR์
์ด์ํ
ํ์ฌ ์ฝ๋์ ๋ํ ํผ๋๋ฐฑ ๋ฐ ํ ๋ก ํ ์๋๋ฐฉ์ดMerge
โ๏ธย ๋ค์ด๋ฐ ํจํด
๋ธ๋์น ์ข
๋ฅ/์ด์๋ฒํธ-๊ฐ๋จํ ์ค๋ช
Ex) ์ด์๋ฒํธ๊ฐ 67์ธ '๋ก๊ทธ์ธ ๊ธฐ๋ฅ' ์ด์๋ฅผ ๊ตฌํํ๋ ๋ธ๋์น๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ, ๋ธ๋์น ์ด๋ฆ์feature/67-login
๋ก ์์ฑํ๋ค.
โ ๋ฉ์์ง ๊ตฌ์กฐ
Type : ์ ๋ชฉ #์ด์๋ฒํธ
๋ณธ๋ฌธ
**Ex)**์ด์๋ฒํธ๊ฐ 67์ธ ์ด์์ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ค ์ปค๋ฐ์ ํ๋ ์ํฉ์ด๋ผ๋ฉด ์ปค๋ฐ ๋ฉ์์ง์ ์ ๋ชฉ์feat : A๊ธฐ๋ฅ ๊ตฌํ #67
์ผ๋ก ์์ฑํ๋ค.
โ Type
feat
: ์๋ก์ด ๊ธฐ๋ฅ์ ๋ํ ์ปค๋ฐfix
: ๋ฒ๊ทธ ์์ ์ ๋ํ ์ปค๋ฐci/cd
: ๋ฐฐํฌ ์ปค๋ฐdocs
: ๋ฌธ์ ์์ ์ ๋ํ ์ปค๋ฐstyle
: ์ฝ๋ ์คํ์ผ ํน์ ํฌ๋งท ๋ฑ์ ๊ดํ ์ปค๋ฐrefactor
: ์ฝ๋ ๋ฆฌํฉํ ๋ง์ ๋ํ ์ปค๋ฐtest
: ํ ์คํธ ์ฝ๋ ์์ ์ ๋ํ ์ปค๋ฐchore
: ํจํค์ง ๊ด๋ จ ๋ฐ ๋น๋์ฝ๋ ์์
- lombok
- JPA
- Spring Security
- JDBC
- Log4j2
- SockJS , STOMP
- JSON ObjectMapper
- JWT
- Aws Secret Manager
- Querydsl
- Swagger
- Oauth2.0
- Spring Rest docs
- RestAPI
- Redis
- Youtube API
2023 05 02 ~ ing