๋ถ์ผ | ์ด๋ฆ | ํฌ์ง์ | ๋ด์ฉ |
---|---|---|---|
๊ธฐํ | ๋ฐ๊ฐ์ | ๐ย PM, ์๋น์ค ๊ธฐํ | ์ ์ ๋ฆฌ์์น, ์์ด์ดํ๋ ์ ์์ฑ, ์๋น์ค ์ ์ฑ
ํ๋ฆฝ, ๋น์ฆ๋์ค ๋ชจ๋ธ ๊ตฌ์ถ |
๊ธฐํ | ๊น๊ท๋ฆฌ | ๐ ์๋น์ค ๊ธฐํ | ์ ์ ๋ฆฌ์์น, ์์ด์ดํ๋ ์ ์์ฑ, ์๋น์ค ์ ์ฑ
ํ๋ฆฝ, ๋น์ฆ๋์ค ๋ชจ๋ธ ๊ตฌ์ถ, ์๋น์ค ๋ง์ผํ ๋ฆฌ๋ |
๊ธฐํ | ์์ฌํ | ๐ย ์๋น์ค ๊ธฐํ | ์ ์ ๋ฆฌ์์น, ์์ด์ดํ๋ ์ ์์ฑ, ์๋น์ค ์ ์ฑ
ํ๋ฆฝ, ๋น์ฆ๋์ค ๋ชจ๋ธ ๊ตฌ์ถ, ์๋น์ค ๋ง์ผํ ๋ฆฌ๋ |
๋์์ธ | ๊น์ค์ | ๐จ ๋์์ธ ๋ฆฌ๋ | ux/ui๋์์ธ, gui ๋์์ธ |
๋์์ธ | ์ด์ด๋ น | ๐จ ๋์์ธ | ux/ui๋์์ธ, gui ๋์์ธ |
๊ฐ๋ฐ | ์ตํธ | ๐ฑ ํ๋ก ํธ์๋ ๋ฆฌ๋ | ํ๋ฉด UI ๊ตฌํ, API ์ฐ๋ |
๊ฐ๋ฐ | ์ต์ํฌ | ๐ฑ ํ๋ก ํธ์๋ | ํ๋ฉด UI ๊ตฌํ, API ์ฐ๋ |
๊ฐ๋ฐ | ๋ฌธํฌ์ | ๐ป ๋ฐฑ์๋ ๋ฆฌ๋ | API ๊ตฌํ, ERD ์ค๊ณ, ์๋ฒ ๋ฐฐํฌ |
๊ฐ๋ฐ | ์ค์๋ฏผ | ๐ป ๋ฐฑ์๋ | API ๊ตฌํ, ERD ์ค๊ณ, ์๋ฒ ๋ฐฐํฌ |
moping API ๋ช ์ธ์ ๋ค์ด๋ก๋
- ๋จ์ ํ ์คํธ ์์ฑ(service ๋ฉ์๋ ๋ณ๋ก) : Junit ์ฌ์ฉ
- ๋ค๋ฅธ ์ฌ๋์ด ์์๋ณด๊ธฐ ์ฝ๋๋ก ์ฃผ์์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. (controller, service ๋ฉ์๋๋ง๋ค)
- javadoc ํ์ https://jake-seo-dev.tistory.com/59
- issue ์์ฑ ๋ฐ PR์ ํตํด ๋ณธ์ธ์ด ๊ตฌํํ ๋ถ๋ถ์ ๋ํ ๊ธฐ๋ก์ ๋จ๊ฒจ์ผ ํฉ๋๋ค.
- ํ ์คํธ ๋ฐ ์ํ ํ ์๋ฒ ์ด์์ ์ํ ๋ก๊ทธ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.(์๋ฌ๋ ์ด์์ ํ์ํ ๋ก๊ทธ. ๊ฒ์์ ๊ฒ์์ด์ ๊ฐ์ ๋ก๊ทธ)
- ์์ธ์ฒ๋ฆฌ๋ ํญ์ ์ ๋ง๋ค์ด๋๊ธฐ (code, message, data)
- ๊ฐ๋ฐ ๊ธฐ๊ฐ : 9/30 ~ 11/28
- ์คํ๋ฆฐํธ (3์ผ๊ฐ๊ฒฉ) ์งํ (ํด์ฌ ๊ฒ์ ์ ํด์ ํด์ค๊ธฐ)
- ์์์ผ, ํ ์์ผ
-
- Kotlin์ ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ธ ๋ฌธ๋ฒ์ผ๋ก ์ฝ๋ ์์ฐ์ฑ์ ๋์ด๋ฉฐ, Null ์์ ์ฑ์ ์ ๊ณตํ์ฌ ์ค๋ฅ๋ฅผ ์ฌ์ ์ ๋ฐฉ์ง
- JPA๋ฅผ ํตํด SQL์ ์ง์ ์์ฑํ์ง ์์๋ ๋๋ฏ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์์๋๋ ์๊ฐ์ ์ค์ด๊ณ , ๋น์ฆ๋์ค ๋ก์ง ๊ตฌํ์ ์ง์ค ๊ฐ๋ฅ
-
- JUnit์ ๊ฐ๋จํ ์ด๋ ธํ ์ด์ ๊ธฐ๋ฐ ์ค์ ์ผ๋ก ํ ์คํธ ์์ฑ๊ณผ ์คํ์ ์ง๊ด์ ์ด๊ณ ํจ์จ์ ์ผ๋ก ๋ง๋ค์ด์ค
- MockK๋ ์ฝํ๋ฆฐ์ ํนํ๋ ๋ชจํน ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์ฝ๋ฃจํด๊ณผ ๊ฐ์ ์ฝํ๋ฆฐ ๊ณ ์ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ๋ชจํนํ ์ ์์ด ๋น๋๊ธฐ ์ฝ๋ ํ ์คํธ์ ๊ฐ์ ์ด ์์
-
- Jenkins๋ฅผ ์ฌ์ฉํ CI/CD ํ์ดํ๋ผ์ธ์ ์๋ํ๋ ํ ์คํธ, ๋น๋, ๋ฐฐํฌ๋ฅผ ํตํด ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ
- Docker๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋๋ก ํจํค์งํ์ฌ ์ผ๊ด๋ ์คํ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ , ๋ฐฐํฌ๋ฅผ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ํ ๊ฐ๋ฅ
-
- MySQL์ ๋ฐ์ด๋ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ ์ ๊ณตํ๋ฉฐ, ๊ด๋ฒ์ํ ์ปค๋ฎค๋ํฐ ์ง์๊ณผ ๋ค์ํ ํ๋ซํผ์์์ ์์ ์ฑ์ ๋ณด์ฅ
- MongoDB๋ ์ ์ฐํ ์คํค๋ง ์ค๊ณ๋ฅผ ํตํด ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ , ๋น ๋ฅธ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ์ ๊ณต
- Redis๋ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ์ ์ฅ์๋ก ์ด๊ณ ์ ๋ฐ์ดํฐ ์ ๊ทผ๊ณผ ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ง์
-
- RestDocs๋ฅผ ํตํด ์์ฑ๋ ๋ฌธ์๋ฅผ Swagger UI๋ก ์๊ฐํํ์ฌ, ๊ฐ๋ฐ์์ ๋น๊ฐ๋ฐ์ ๋ชจ๋๊ฐ ์ค์๊ฐ์ผ๋ก API๋ฅผ ํ ์คํธ ๊ฐ๋ฅ
- ํ ์คํธ ์ฝ๋ ์์ฑ๊ณผ ํจ๊ป API ๋ฌธ์๊ฐ ์๋์ผ๋ก ์์ฑ๋์ด, ์ค์ ์ฝ๋์ ๋ฌธ์์ ๋๊ธฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์
- ํ ์คํธ ์์ ๋ฌธ์๋ฅผ ๊ฒ์ฆํ ์ ์์ด ์ ๋ขฐ์ฑ์ ๋์
Naming
- ํจํค์ง : ์ธ๋์ค์ฝ์ด(
_
)๋ ๋๋ฌธ์๋ฅผ ์์ง ์๊ณ ์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑํฉ๋๋ค. - ํด๋์ค : ํด๋์ค ์ด๋ฆ์ ๋ช ์ฌ๋ ๋ช ์ฌ์ ๋ก ์ง์ผ๋ฉฐ, ๋๋ฌธ์ ์นด๋ฉํ๊ธฐ๋ฒ(Upper camel case)์ ์ฌ์ฉํฉ๋๋ค.
- ๋ฉ์๋ : ๋ฉ์๋ ์ด๋ฆ์ ๋์ฌ/์ ์น์ฌ๋ก ์์ํ๋ฉฐ, ์๋ฌธ์ ์นด๋ฉํ๊ธฐ๋ฒ(Lower camel case)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋๊ฐ ์ ๋ฌ๋๋๋ก ์ต๋ํ ๊ฐ๊ฒฐํ๊ฒ ํํํฉ๋๋ค.
- ๋ณ์ : ์๋ฌธ์ ์นด๋ฉํ๊ธฐ๋ฒ(Lower camel case)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ENUM, ์์ : ์ํ๋ฅผ ๊ฐ์ง์ง ์๋ ์๋ฃํ์ด๋ฉด์
static final
๋ก ์ ์ธ๋์ด ์๋ ํ๋์ผ ๋๋ฅผ ์์๋ก ๊ฐ์ฃผํ๋ฉฐ, ๋๋ฌธ์์ ์ธ๋์ค์ฝ์ด(UPPER_SNAKE_CASE)๋ก ๊ตฌ์ฑํฉ๋๋ค. - DB ํ ์ด๋ธ: ์๋ฌธ์์ ์ธ๋์ค์ฝ์ด๋ก(lower_snake_case) ๊ตฌ์ฑํฉ๋๋ค.
- ์ปฌ๋ ์ (Collection): ๋ณต์ํ์ ์ฌ์ฉํ๊ฑฐ๋ ์ปฌ๋ ์ ์ ๋ช ์ํฉ๋๋ค. (Ex. userList, users, userMap)
- LocalDateTime: ์ ๋ฏธ์ฌ์ *Time**๋ฅผ ๋ถ์ ๋๋ค.
Comment
// ํ์ด~
/**
* ๋ ์ ์๋ฅผ ๋ํฉ๋๋ค.
*
* <p>์ด ๋ฉ์๋๋ ๋ ๊ฐ์ ์ ์๋ฅผ ์
๋ ฅ๋ฐ์ ๊ทธ ํฉ๊ณ๋ฅผ ๋ฐํํฉ๋๋ค.</p>
*
* @param a ์ฒซ ๋ฒ์งธ ์ ์
* @param b ๋ ๋ฒ์งธ ์ ์
* @return ๋ ์ ์์ ํฉ
* @throws ArithmeticException ๋ง์ฝ ๊ณ์ฐ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด
*/
Import
ํ๋ ๋ฒจ ํด๋์ค(Top level class)๋ ์์ค ํ์ผ์ 1๊ฐ๋ง ์กด์ฌํด์ผ ํ๋ค. ( ํ๋ ๋ฒจ ํด๋์ค ์ ์ธ์ ์ปดํ์ผํ์ ์๋ฌ ์ฒดํฌ์ ๋ํด์๋ Java Language Specification 7.6 ์ฐธ์กฐ )
ํด๋์ค๋ฅผ importํ ๋๋ ์์ผ๋์นด๋(*) ์์ด ๋ชจ๋ ํด๋์ค๋ช ์ ๋ค ์ด๋ค. static import์์๋ ์์ผ๋์นด๋๋ฅผ ํ์ฉํ๋ค.
ํด๋์ค, ์ธํฐํ์ด์ค, ๋ฉ์๋, ์์ฑ์์ ๋ถ๋ ์ ๋ํ ์ด์ ์ ์ ์ธ ํ ์์ค์ ์ฌ์ฉํ๋ค. ์ด ์์น์์๋ ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ์ ๋ํ ์ด์ 1๊ฐ๋ ๊ฐ์ ์ค์ ์ ์ธํ ์ ์๋ค.
๋ฐฐ์ด ์ ์ธ์ ์ค๋ ๋๊ดํธ([])๋ ํ์ ์ ๋ฐ๋ก ๋ค์ ๋ถ์ธ๋ค. ๋ณ์๋ช ๋ค์ ๋ถ์ด์ง ์๋๋ค.
longํ์ ์ซ์์๋ ๋ง์ง๋ง์ ๋๋ฌธ์ 'Lโ์ ๋ถ์ธ๋ค. ์๋ฌธ์ 'lโ๋ณด๋ค ์ซ์ '1โ๊ณผ์ ์ฐจ์ด๊ฐ ์ปค์ ๊ฐ๋ ์ฑ์ด ๋์์ง๋ค.
URL
URL์ RESTful API ์ค๊ณ ๊ฐ์ด๋์ ๋ฐ๋ผ ์์ฑํฉ๋๋ค.
- HTTP Method๋ก ๊ตฌ๋ถํ ์ ์๋ get, put ๋ฑ์ ํ์๋ url์ ํํํ์ง ์์ต๋๋ค.
- ๋ง์ง๋ง์
/
๋ฅผ ํฌํจํ์ง ์์ต๋๋ค. _
๋์ ``๋ฅผ ์ฌ์ฉํฉ๋๋ค.- ์๋ฌธ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ํ์ฅ์๋ ํฌํจํ์ง ์์ต๋๋ค.
Rules
์์ ์์ ์ ์ ํ๋์ด์ผ ํ ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
issue๋ฅผ ์์ฑํฉ๋๋ค.feature branch๋ฅผ ์์ฑํฉ๋๋ค.add โ commit โ push โ pull request ๋ฅผ ์งํํฉ๋๋ค.pull request๋ฅผ develop branch๋ก merge ํฉ๋๋ค.์ด์ ์ merge๋ ์์ ์ด ์์ ๊ฒฝ์ฐ ๋ค๋ฅธ branch์์ ์งํํ๋ ์์ ์ merge๋ ์์ ์ pull ๋ฐ์์ต๋๋ค.์ข ๋ฃ๋ issue์ pull request์ label์ ๊ด๋ฆฌํฉ๋๋ค.
IntelliJ๋ก ์์ ์ ์งํํ๋ ๊ฒฝ์ฐ, ์์ ์์ ์ ์ ํ๋์ด์ผ ํ ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊นํ๋ธ ํ๋ก์ ํธ ์ ์ฅ์์์ issue๋ฅผ ์์ฑํฉ๋๋ค.์์ฑํ issue ๋ฒํธ์ ๋ง๋ feature branch๋ฅผ ์์ฑํจ๊ณผ ๋์์ feature branch๋ก checkout ํฉ๋๋ค.feature branch์์ issue ๋จ์ ์์ ์ ์งํํฉ๋๋ค.์์ ์๋ฃ ํ, add โ commit์ ์งํํฉ๋๋ค.remote develop branch์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ๊ธฐ ์ํด pull ๋ฐ์ ์ดํ push๋ฅผ ์งํํฉ๋๋ค.๋ง์ฝ ์ฝ๋ ์ถฉ๋์ด ๋ฐ์ํ์๋ค๋ฉด, IntelliJ์์ ์ฝ๋ ์ถฉ๋์ ํด๊ฒฐํ๊ณ add โ commit์ ์งํํฉ๋๋ค.push โ pull request (feature branch โ develop branch) ๋ฅผ ์งํํฉ๋๋ค.pull request๊ฐ ์์ฑ๋๋ฉด ์์ฑ์ ์ด์ธ์ ๋ค๋ฅธ ํ์์ด code review๋ฅผ ์งํํฉ๋๋ค.์ต์ ํ ๋ช ์ด์์ ํ์์๊ฒ code review์ approve๋ฅผ ๋ฐ์ ๊ฒฝ์ฐ pull request ์์ฑ์๊ฐ merge๋ฅผ ์งํํฉ๋๋ค.์ข ๋ฃ๋ issue์ pull request์ label๊ณผ milestone์ ๊ด๋ฆฌํฉ๋๋ค.
์ค์ํด์ผ ํ ๊ท์น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
develop branch์์์ ์์ ์ ์์น์ ์ผ๋ก ๊ธ์งํฉ๋๋ค. ๋จ, README ์์ฑ์ develop branch์์ ์ํํฉ๋๋ค.commit, push, merge, pull request ๋ฑ ๋ชจ๋ ์์ ์ ์ค๋ฅ ์์ด ์ ์์ ์ผ๋ก ์คํ๋๋ ์ง ํ์ธ ํ ์ํํฉ๋๋ค.
Branch
branch๋ ์์ ๋จ์ & ๊ธฐ๋ฅ ๋จ์๋ก ์์ฑ๋ issue๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
branch๋ฅผ ์์ฑํ๊ธฐ ์ issue๋ฅผ ๋จผ์ ์์ฑํฉ๋๋ค. issue ์์ฑ ํ ์์ฑ๋๋ ๋ฒํธ์ domain ๋ช
์ ์กฐํฉํ์ฌ branch์ ์ด๋ฆ์ ๊ฒฐ์ ํฉ๋๋ค.ย <Prefix>/<Issue_Number>-<Domain>
ย ์ ์์์ ์ค์ํฉ๋๋ค.
main
ย : ๊ฐ๋ฐ์ด ์๋ฃ๋ ์ฐ์ถ๋ฌผ์ด ์ ์ฅ๋ ๊ณต๊ฐ์ ๋๋ค.develop
: feature branch์์ ๊ตฌํ๋ ๊ธฐ๋ฅ๋ค์ด merge๋ default branch ์ ๋๋ค.feature
: ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ branch ์ ๋๋ค. ์ด์ ๋ณ & ์์ ๋ณ๋ก branch๋ฅผ ์์ฑ ํ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ฉฐ naming์ ์๋ฌธ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
user
,map
, (error
,config
)
feature/7-user
,feature/5-config
Issue
์์ ์์ ์ issue ์์ฑ์ด ์ ํ๋์ด์ผ ํฉ๋๋ค. issue ๋ ์์ ๋จ์ & ๊ธฐ๋ฅ ๋จ์๋ก ์์ฑํ๋ฉฐ ์์ฑ ํ ํ์๋๋ issue number ๋ฅผ ์ฐธ์กฐํ์ฌ branch ์ด๋ฆ๊ณผ commit message๋ฅผ ์์ฑํฉ๋๋ค.
issue ์ ๋ชฉ์๋ ๊ธฐ๋ฅ์ ๋ํ์ ์ธ ์ค๋ช ์ ์ ๊ณ ๋ด์ฉ์๋ ์ธ๋ถ์ ์ธ ๋ด์ฉ ๋ฐ ์์ ์งํ ์ํฉ์ ์์ฑํฉ๋๋ค.
issue ์์ฑ ์ github ์ค๋ฅธํธ์ assignee, label์ ์ ์ฉํฉ๋๋ค. assignee๋ ํด๋น issue ๋ด๋น์, label์ ์์ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค.
[<Prefix>] <Description>
ย ์ ์์์ ์ค์ํ๋, prefix๋ commit message convention์ ๋ฐ๋ฆ
๋๋ค.
[chore] spring data JPA ์์กด์ฑ ์ถ๊ฐ
Commit
[<Prefix>] #<Issue_Number> <Description>
ย ์ ์์์ ์ค์ํฉ๋๋ค.
- featย : ์๋ก์ด ๊ธฐ๋ฅ ๊ตฌํย
[feat] #11 ๊ตฌ๊ธ ๋ก๊ทธ์ธ API ๊ธฐ๋ฅ ๊ตฌํ
- fixย : ์ฝ๋ ์ค๋ฅ ์์ ย
[fix] #10 ํ์๊ฐ์ ๋น์ฆ๋์ค ๋ก์ง ์ค๋ฅ ์์
- delย : ์ธ๋ชจ์๋ ์ฝ๋ ์ญ์ ย
[del] #12 ๋ถํ์ํ import ์ ๊ฑฐ
- docsย : README๋ wiki ๋ฑ์ ๋ฌธ์ ๊ฐ์ ย
[docs] #14 ๋ฆฌ๋๋ฏธ ์์
- refactorย : ๋ด๋ถ ๋ก์ง์ ๋ณ๊ฒฝ ํ์ง ์๊ณ ๊ธฐ์กด์ ์ฝ๋๋ฅผ ๊ฐ์ ํ๋ ๋ฆฌํฉํฐ๋งย
[refactor] #15 ์ฝ๋ ๋ก์ง ๊ฐ์
- choreย : ์์กด์ฑ ์ถ๊ฐ, yml ์ถ๊ฐ์ ์์ , ํจํค์ง ๊ตฌ์กฐ ๋ณ๊ฒฝ, ํ์ผ ์ด๋
[chore] #21 yml ์์
,[chore] #22 lombok ์์กด์ฑ ์ถ๊ฐ
- test: ํ
์คํธ ์ฝ๋ ์์ฑ, ์์
[test] #20 ๋ก๊ทธ์ธ API ํ ์คํธ ์ฝ๋ ์์ฑ
- style : ์ฝ๋์ ๊ด๋ จ ์๋ ์ฃผ์ ๋ฌ๊ธฐ, ์ค๋ฐ๊ฟ
- rename : ํ์ผ ๋ฐ ํด๋๋ช ์์
Pull Request
develop & main branch๋ก mergeํ ๋์๋ pull request๊ฐ ํ์ํฉ๋๋ค. pull request์ ๋ด์ฉ์๋ ๋ณ๊ฒฝ๋ ์ฌํญ์ ๋ํ ์ค๋ช ์ ๋ช ์ํฉ๋๋ค.
[<Prefix>] <Description>
ย ์ ์์์ ์ค์ํ๋, prefix๋ commit message convention์ ๋ฐ๋ฆ
๋๋ค.
[feat] ์ฝ์ ์ก๊ธฐ API ๊ตฌํ
[chore] spring data JPA ์์กด์ฑ ์ถ๊ฐ