Backend Wiki - 100-hours-a-week/16-Hot6-wiki GitHub Wiki

OnTheTop Backend Wiki

Backend Repository


๋ชฉ์ฐจ


๊ฐœ๋ฐœ ์ผ์ •

๊ธฐ๊ฐ„ ์ฃผ์š” ์ž‘์—…
04/16 ~ ERD ์„ค๊ณ„

์ปจ๋ฒค์…˜ ๋ฃฐ

1. ์ฝ”๋“œ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ

  1. EditorConfig ์„ค์ •
์„ค์ • ํ•ญ๋ชฉ ๊ฐ’ ์„ค๋ช…
charset utf-8
end_of_line lf
indent_style space
insert_final_newline true
trim_trailing_whitespace true
max_line_length 120

2. CheckStyle ์„ค์ •

ํ•ญ๋ชฉ ๊ทœ์น™
ํด๋ž˜์Šค๋ช…
๋ณ€์ˆ˜๋ช… ๋ฐ ๋ฉ”์„œ๋“œ๋ช…
์ƒ์ˆ˜๋ช…
ํŒจํ‚ค์ง€๋ช…
ํƒญ ์‚ฌ์šฉ
์ค„ ๋ฐ”๊ฟˆ
์ตœ๋Œ€ ๋ผ์ธ ๊ธธ์ด
์ œ์–ด๋ฌธ ๋ธ”๋ก {}
์—ฐ์‚ฐ์ž ๋ฐฐ์น˜
import ์ˆœ์„œ
์ฃผ์„ ์Šคํƒ€์ผ

3. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ปจ๋ฒค์…˜

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” type: message ํ˜•์‹์„ ๋”ฐ๋ฅด๋ฉฐ, ์•„๋ž˜์˜ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์ œ๋ชฉ ๊ทœ์น™

  • ์ œ๋ชฉ์€ ์†Œ๋ฌธ์ž๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ œ๋ชฉ ๋์— ๋งˆ์นจํ‘œ(.)๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ œ๋ชฉ์€ ์ตœ์†Œ 5์ž ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ „์ฒด ํ—ค๋”๋Š” 72์ž๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”น ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ํƒ€์ž…

ํƒ€์ž… ์šฉ๋„ ์˜ˆ์‹œ
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ feat: ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
fix ๋ฒ„๊ทธ ์ˆ˜์ • fix: ๋กœ๊ทธ์ธ ์‹คํŒจ์‹œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ˆ˜์ •
docs ๋ฌธ์„œ ์ž‘์—… (README, API ๋ช…์„ธ ๋“ฑ) docs: ํ”„๋กœ์ ํŠธ ์„ค์น˜ ๊ฐ€์ด๋“œ ์ถ”๊ฐ€
style ์ฝ”๋“œ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ (ํฌ๋งทํŒ…, ์„ธ๋ฏธ์ฝœ๋ก , ๋“ค์—ฌ์“ฐ๊ธฐ ์ˆ˜์ • ๋“ฑ) style: ์ฝ”๋“œ ํฌ๋งท ํ†ต์ผ
refactor ๋ฆฌํŒฉํ† ๋ง (๊ธฐ๋Šฅ ๋ณ€ํ™” ์—†์ด ์ฝ”๋“œ ๊ตฌ์กฐ ๊ฐœ์„ ) refactor: ํšŒ์›๊ฐ€์ž… ๋กœ์ง ๋‹จ์ˆœํ™”
test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€/์ˆ˜์ • test: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
build ๋นŒ๋“œ ๊ด€๋ จ ํŒŒ์ผ ์ˆ˜์ • (webpack, vite, gradle, package.json ๋“ฑ) build: webpack config ์ˆ˜์ •
ci CI ์„ค์ • ์ˆ˜์ • (GitHub Actions, Jenkins ๋“ฑ) ci: ํ…Œ์ŠคํŠธ ์›Œํฌํ”Œ๋กœ์šฐ ์ˆ˜์ •
cd CD ๋ฐฐํฌ ์„ค์ • ์ˆ˜์ • (Helm, deploy script ๋“ฑ) cd: production ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ ์ˆ˜์ •
chore ๊ธฐํƒ€ ์‚ฌ์†Œํ•œ ๋ณ€๊ฒฝ (์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†๋Š” ์„ค์ • ํŒŒ์ผ ๋“ฑ) chore: .gitignore ํŒŒ์ผ ์—…๋ฐ์ดํŠธ
rename ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„ ๋ณ€๊ฒฝ (์˜๋ฏธ ๋ณ€ํ™” ์—†์Œ) rename: authController โ†’ userController๋กœ ํŒŒ์ผ๋ช… ๋ณ€๊ฒฝ
remove ์ฝ”๋“œ, ํŒŒ์ผ, ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ remove: unused API endpoint ์‚ญ์ œ

๐Ÿ”น ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ํ˜•์‹

<ํƒ€์ž…>: <๊ฐ„๊ฒฐํ•œ ๋ณ€๊ฒฝ ์š”์•ฝ>

๋ณธ๋ฌธ (์„ ํƒ)
- ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์™œ, ์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ–ˆ๋Š”์ง€ ์ถ”๊ฐ€
- "๋ฌด์—‡์„ ํ–ˆ๋Š”์ง€" + "์™œ ํ–ˆ๋Š”์ง€"

4. ์ถ”๊ฐ€ ๊ทœ์น™

  • PR ์ œ๋ชฉ์€ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์™€ ๋™์ผํ•œ ํ˜•์‹์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•œ ๋ฒˆ์˜ PR์€ ํ•˜๋‚˜์˜ ๋ชฉ์ ์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์นœ ํ›„ ๋ณ‘ํ•ฉ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ปจ๋ฒค์…˜์„ ์ค€์ˆ˜ํ•˜์—ฌ ํŒ€์˜ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ์œ ์ง€ํ•˜๊ณ  ์›ํ™œํ•œ ํ˜‘์—…์„ ์ง„ํ–‰ํ•ฉ์‹œ๋‹ค!


๐Ÿ”น ๋ธŒ๋žœ์น˜ ๊ธฐ๋ณธ ๊ทœ์น™

๐Ÿ“ ๋ธŒ๋žœ์น˜๋ช…์€ ์†Œ๋ฌธ์ž๋กœ ์ž‘์„ฑํ•˜๋ฉฐ, -(ํ•˜์ดํ”ˆ)์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

  • main: ํ•ญ์ƒ "๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ" ์ƒํƒœ ์œ ์ง€
  • feat/์ž‘์—…๋ช…: ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์šฉ
  • fix/์ด์Šˆ๋ช…: ๋ฒ„๊ทธ ์ˆ˜์ •์šฉ
  • hotfix/๊ธด๊ธ‰ํŒจ์น˜๋ช…: ๋ฐ”๋กœ ๋ฐฐํฌํ•ด์•ผ ํ•˜๋Š” ๊ธด๊ธ‰ ์ˆ˜์ •
  • release/๋ฒ„์ „๋ช…: ๋ฐฐํฌ ์ค€๋น„์šฉ (์„ ํƒ)

์˜ˆ์‹œ

  • feat/login-api
  • fix/typo-post-title
  • hotfix/login-redirect-error
  • release/v1.0.0

๐Ÿ”น ๋ธŒ๋žœ์น˜ ์ž‘์—… ๊ทœ์น™

  1. dev ๋ธŒ๋žœ์น˜ ์ตœ์‹  ๊ฐ€์ ธ์˜ค๊ธฐ : ๋ช…๋ น ์œ„์น˜(dev)

    git checkout dev
    git pull --rebase origin dev
  2. ๊ธฐ๋Šฅ(feat) ๋ธŒ๋žœ์น˜ ํŒŒ๊ธฐ : ๋ช…๋ น ์œ„์น˜(dev)

    git checkout -b feat/login
  3. ์ž‘์—… ์™„๋ฃŒ ํ›„ PR ์˜ฌ๋ฆฌ๊ธฐ ์ง์ „(dev์— PR) : ๋ช…๋ น ์œ„์น˜(feat ๋ธŒ๋žœ์น˜)

    git fetch origin
    git rebase origin/dev
    • ์ด ๋•Œ, Local์—์„œ conflict ํ•ด๊ฒฐ
  4. GitHub๋‚˜ GitLab์—์„œ PR ์˜ฌ๋ฆด ๋•Œ โ†’ "Squash and Merge"๋กœ ๋ณ‘ํ•ฉ

    • ํ•˜๋‚˜์˜ ๊น”๋”ํ•œ ์ปค๋ฐ‹์œผ๋กœ dev์— ๋จธ์ง€
  5. ๋ณ‘ํ•ฉ ํ›„ feat/login ๋ธŒ๋žœ์น˜๋Š” ์‚ญ์ œ : Local ๊ณผ ์›๊ฒฉ ๋ชจ๋‘.

    git branch -d feat/login

ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…


ERD

ERD ๋ณด๊ธฐ


API

  1. [API ์ธ์ฆ ํ๋ฆ„](API ์ธ์ฆ ํ๋ฆ„ ๋งํฌ)
  2. [API ์‘๋‹ต ๊ทœ๊ฒฉ](์‘๋‹ต ๊ทœ๊ฒฉ ๋งํฌ)
  3. [์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ๋ชฉ๋ก](์—๋Ÿฌ ๋ชฉ๋ก ๋งํฌ)

ํ”„๋กœ์ ํŠธ ๋„๋ฉ”์ธ ํ…Œํฌ์ŠคํŽ™

๋„๋ฉ”์ธ ํ…Œํฌ์ŠคํŽ™ ๋ฐ”๋กœ๊ฐ€๊ธฐ


๋ฐฐํฌ ํ™˜๊ฒฝ ๋ฐ CI/CD ํŒŒ์ดํ”„๋ผ์ธ

๊ด€๋ จ ๊ตฌ์„ฑ ๋ฐ ํŒŒ์ดํ”„๋ผ์ธ ์„ค๋ช… ์ž‘์„ฑ


์ฝ”๋“œ ํ’ˆ์งˆ ๊ด€๋ฆฌ ๋„๊ตฌ

์˜ˆ์‹œ

๋„๊ตฌ ์—ญํ•  ๋ชฉ์ 
.editorconfig
Checkstyle
JaCoCo
Java Test Fixtures
SonarQube
โš ๏ธ **GitHub.com Fallback** โš ๏ธ