Ground Rule - 3sam5oh/webtoon-search-service GitHub Wiki

โš™๏ธ Ground Rule

๐Ÿค Collaboration

์šฐ๋ฆฌ ํŒ€์€ ํšจ์œจ์ ์ธ ํ˜‘์—…์„ ์œ„ํ•ด ๋‹ค์Œ ๋„๊ตฌ๋“ค์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค

  1. GitHub Discussions
 - ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ํ† ๋ก  ๋ฐ ์•„์ด๋””์–ด ๊ณต์œ 
 - ์ฃผ๊ฐ„ ํšŒ์˜ ์•ˆ๊ฑด ๋ฐ ๊ฒฐ๊ณผ ์ •๋ฆฌ (์ผ์ผ ํšŒ์˜)
 - ๊ธฐ์ˆ ์  ์˜์‚ฌ๊ฒฐ์ • ๊ธฐ๋ก (๋ฉ˜ํ† ๋ง ์ผ์ง€)
  1. GitHub Projects
 - ์Šคํ”„๋ฆฐํŠธ ๊ณ„ํš ๋ฐ ์ž‘์—… ํ•ญ๋ชฉ ๊ด€๋ฆฌ
 - ๊ฐ ์ž‘์—…์˜ ์ง„ํ–‰ ์ƒํ™ฉ ์ถ”์ 
 - ๋งˆ์ผ์Šคํ†ค ๋ฐ ๋ฆด๋ฆฌ์Šค ๊ณ„ํš ์ˆ˜๋ฆฝ
  1. Discord
 - ์‹ค์‹œ๊ฐ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋ฐ ๋น ๋ฅธ ์˜์‚ฌ๊ฒฐ์ •
 - ๊ธฐ์ˆ  ์ง€์› ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ์ฑ„๋„ ์šด์˜
  1. Wiki
 - ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ฌธ์„œํ™”
 - ๋„์ž… ๊ธฐ์ˆ  ๋ฌธ์„œํ™” 

๋งจ ์œ„๋กœ โ†‘

๐Ÿ’ฌ Git Commit Convention

Commit Structure

 - ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ž‘์„ฑ ์‹œ ์ฃผ์˜์‚ฌํ•ญ
 1. ์ œ๋ชฉ์€ 50์ž ์ด๋‚ด๋กœ ์ œํ•œ

 2. ์ œ๋ชฉ์˜ ํ˜•์‹: `\<type> \<title>`
     - `type`๊ณผ `scope`๋Š” ๋ฐ˜๋“œ์‹œ ์˜๋ฌธ ์†Œ๋ฌธ์ž๋กœ ์ž‘์„ฑ
     - `title`์€(๋Š”) ์ฒซ ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž(์˜๋ฌธ ๊ธฐ์ค€)๋กœ ์‹œ์ž‘

 3. ์ œ๋ชฉ ๋์— ๋งˆ์นจํ‘œ ์ƒ๋žต

 4. ์ œ๋ชฉ ์ž‘์„ฑ ๊ทœ์น™
     - ์˜๋ฌธ: ๋™์‚ฌ ์›ํ˜•์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น๋ฌธ์œผ๋กœ ์ž‘์„ฑ (์˜ˆ: "Add feature", "Fix bug")
     - ํ•œ๊ธ€: ๋ช…์‚ฌํ˜•์œผ๋กœ ๋๋‚˜๋„๋ก ์ž‘์„ฑ (์˜ˆ: "๊ธฐ๋Šฅ ์ถ”๊ฐ€", "๋ฒ„๊ทธ ์ˆ˜์ •")

 5. ๋ณธ๋ฌธ์€ ํ•œ๊ธ€ ๋˜๋Š” ์˜๋ฌธ์œผ๋กœ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•˜๋ฉฐ, 20์ž๋งˆ๋‹ค ์ค„๋ฐ”๊ฟˆ (์ ์ ˆ ๊ธธ์ด๋ฅผ ์œ ์ง€ํ•ด ์ฃผ์„ธ์š”!)

 6. ๋ณธ๋ฌธ์€ "์–ด๋–ป๊ฒŒ"๋ณด๋‹ค "๋ฌด์—‡์„", "์™œ"์— ์ดˆ์ ์„ ๋งž์ถฐ ์ž‘์„ฑ

  • ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ
<type> <title>

<body>

<footer>

  • ์˜ˆ์‹œ(์˜๋ฌธ)
feat Implement createUser method

- Add createUser method in UserService
- Implement input validation for user data
- Create unit tests for createUser method

something if needed

  • ์˜ˆ์‹œ(ํ•œ๊ธ€)
feat CreateUser ๋ฉ”์†Œ๋“œ ๊ตฌํ˜„

- UserService์— createUser ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€
- ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ž…๋ ฅ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ตฌํ˜„
- createUser ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ

์ถ”๊ฐ€ ์„ค๋ช…์ด ํ•„์š”ํ•  ์‹œ ์ž‘์„ฑ

  • ์˜ˆ์‹œ(ํ•œ๊ธ€-์˜๋ฌธ ํ˜ผํ•ฉ)
feat UpdateUser ๋ฉ”์†Œ๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”

- Implement caching for frequently accessed user data
- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ ์ตœ์ ํ™”๋กœ ์‘๋‹ต ์‹œ๊ฐ„ 50% ๋‹จ์ถ•
- Add logging for tracking update operations

์ถ”๊ฐ€ ์ ์ธ ์„ค๋ช…์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์ž‘์„ฑ

Commit Types

Type ์„ค๋ช…
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
bug ๋ฒ„๊ทธ ์ˆ˜์ •
docs ๋ฌธ์„œ ์ˆ˜์ •
style ์ฝ”๋“œ ํฌ๋งทํŒ…, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ, ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ
refactor ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ฆฌํŒฉํ† ๋ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
chore ๋นŒ๋“œ ์—…๋ฌด ์ˆ˜์ •, ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ •
question ์ถ”๊ฐ€ ์ •๋ณด ์š”์ฒญ
wontfix ์ˆ˜์ • ํ•˜์ง€ ์•Š์€ ์ด์Šˆ (๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ๋‹น์žฅ ์ˆ˜์ • ๋ถˆ๊ฐ€)
  • ๊ฐ ์ปค๋ฐ‹ ํƒ€์ž…์˜ ์˜๋ฏธ
  1. feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๊ด€๋ จ ์ปค๋ฐ‹
  2. bug: ๋ฒ„๊ทธ ์ˆ˜์ • ๊ด€๋ จ ์ปค๋ฐ‹
  3. docs: ๋ฌธ์„œ ์ž‘์„ฑ ๋ฐ ์ˆ˜์ • ๊ด€๋ จ ์ปค๋ฐ‹
  4. style: ์ฝ”๋“œ ์Šคํƒ€์ผ ํ˜น์€ ํฌ๋งท ๋“ฑ์— ๊ด€ํ•œ ์ปค๋ฐ‹
  5. refactor: ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์— ๋Œ€ํ•œ ์ปค๋ฐ‹
  6. test: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •์— ๋Œ€ํ•œ ์ปค๋ฐ‹
  7. chore: ๊ทธ ์™ธ ์ž์ž˜ํ•œ ์ˆ˜์ •์— ๋Œ€ํ•œ ์ปค๋ฐ‹ (๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ˆ˜์ • ๋“ฑ)
  8. question: ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์งˆ๋ฌธ ํ˜น์€ ์ถ”๊ฐ€ ์ •๋ณด ์š”์ฒญ
  9. wontfix: ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ์ด์Šˆ์— ๋Œ€ํ•œ ์ปค๋ฐ‹

๋งจ ์œ„๋กœ โ†‘

๐ŸŒฟ Branching Strategy

Github Flow ์ „๋žต

GitHub Flow๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ๋ธŒ๋žœ์นญ ์ „๋žต์œผ๋กœ, ์ง€์†์ ์ธ ๋ฐฐํฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ „๋žต์˜ ํ•ต์‹ฌ์€ main ๋ธŒ๋žœ์น˜์™€ ๊ธฐ๋Šฅ๋ณ„ ๋ธŒ๋žœ์น˜์˜ ์‚ฌ์šฉ์ž…๋‹ˆ๋‹ค.

1. main ๋ธŒ๋žœ์น˜
   - ํ•ญ์ƒ ์•ˆ์ •์ ์ด๊ณ  ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
   - ๋ชจ๋“  ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ์ด ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.

2. ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜
   - ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด๋‚˜ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ์œ„ํ•ด ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
   - main ๋ธŒ๋žœ์น˜์—์„œ ๋ถ„๊ธฐํ•˜์—ฌ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
   - ๋ช…๋ช… ๊ทœ์น™: `์ž‘์—…์œ ํ˜•/๊ธฐ๋Šฅ๋ช…`
   - ์˜ˆ: `feat/payment-gateway`, `fix/login-error`

์ž‘์—… ํ๋ฆ„

1. ์ƒˆ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋˜๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • ์‹œ
   - main ๋ธŒ๋žœ์น˜์—์„œ ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

2. ์‚ฌ์šฉ ์ค‘์ธ ์ž‘์—…์œ ํ˜•(ex. feat) ์žฌํ™œ์šฉ
   - `style`, `refactor`, `test`, `chore`, `question`, `wontfix`์™€ ๊ฐ™์€ ์ปค๋ฐ‹ ํƒ€์ž…์€
      feat ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋งจ ์œ„๋กœ โ†‘

๐Ÿ”€ Pull Request Guidelines

Code Review Process

1. ๋ฆฌ๋ทฐ์–ด ์ง€์ •
   - ์ตœ์†Œ 3๋ช…์˜ ๋ฆฌ๋ทฐ์–ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
   - ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ํ•ด๋‹น ๊ธฐ๋Šฅ ๋˜๋Š” ์˜์—ญ์— ์ต์ˆ™ํ•œ ํŒ€์›์„ ํฌํ•จ์‹œํ‚ต๋‹ˆ๋‹ค.

2. ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต ๋ฐ ์ˆ˜์šฉ
   - ๋ฆฌ๋ทฐ์–ด๋Š” ๊ฑด์„ค์ ์ด๊ณ  ๊ตฌ์ฒด์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
   - PR ์ž‘์„ฑ์ž๋Š” ๋ชจ๋“  ํ”ผ๋“œ๋ฐฑ์— ๋Œ€ํ•ด ์‘๋‹ตํ•˜๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

3. ์Šน์ธ ๋ฐ ๋ณ‘ํ•ฉ
   - ์ตœ์†Œ 2๋ช…์˜ ์Šน์ธ์ด ์žˆ์–ด์•ผ ๋ณ‘ํ•ฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
   - ๋ชจ๋“  CI/CD ๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

image

4. PR์— ๊ด€๋ จ๋œ ์ด์Šˆ๋Š” Development์—์„œ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

image

PR Template Example

## ๊ฐœ์š”
<!---- ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฐ ๊ด€๋ จ ์ด์Šˆ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์–ด๋–ป๊ฒŒ๋ณด๋‹ค ๋ฌด์—‡์„ ์™œ ์ˆ˜์ •ํ–ˆ๋Š”์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. -->

## PR ์œ ํ˜•
์–ด๋–ค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ๋‚˜์š”?

- [ ] ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
- [ ] ๋ฒ„๊ทธ ์ˆ˜์ •
- [ ] CSS ๋“ฑ ์‚ฌ์šฉ์ž UI ๋””์ž์ธ ๋ณ€๊ฒฝ
- [ ] ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ(์˜คํƒ€ ์ˆ˜์ •, ํƒญ ์‚ฌ์ด์ฆˆ ๋ณ€๊ฒฝ, ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ)
- [ ] ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
- [ ] ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •
- [ ] ๋ฌธ์„œ ์ˆ˜์ •
- [ ] ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€, ํ…Œ์ŠคํŠธ ๋ฆฌํŒฉํ† ๋ง
- [ ] ๋นŒ๋“œ ๋ถ€๋ถ„ ํ˜น์€ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ •
- [ ] ํŒŒ์ผ ํ˜น์€ ํด๋”๋ช… ์ˆ˜์ •
- [ ] ํŒŒ์ผ ํ˜น์€ ํด๋” ์‚ญ์ œ
- [ ] ์ฝ”๋“œ ์ค‘๊ฐ„ ํ†ตํ•ฉ

## PR Checklist
PR์ด ๋‹ค์Œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

- [ ] ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ปจ๋ฒค์…˜์— ๋งž๊ฒŒ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.  Commit message convention ์ฐธ๊ณ   (Ctrl + ํด๋ฆญํ•˜์„ธ์š”.) 
- [ ] ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค.(๋ฒ„๊ทธ ์ˆ˜์ •/๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ).

๋งจ ์œ„๋กœ โ†‘

โš ๏ธ **GitHub.com Fallback** โš ๏ธ