๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ… ๊ธฐ๋กํ•˜๊ธฐ +/์•Œ๋ฉด ์ข‹์„ ๋‚ด์šฉ

์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€

by ์ข…์ด๋นจ๋Œ€ 2023. 9. 17.
TOP

๋ชฉ์ฐจ

    ๐Ÿ”–์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€

    1. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€?

    • ์ปค๋ฐ‹(commit)์€ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์“ฐ์—ฌ์ง€๋Š” ๋กœ์ปฌ ํŒŒ์ผ๋“ค์˜ ๋‹จํŽธ๋ณธ
    • git์€ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ๋งŒ ๊ธฐ๋กํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ํŒŒ์ผ์˜ ๋ฒ„์ „์„ ๋ชจ๋‘ ๊ธฐ๋กํ•จ
    • ์ปค๋ฐ‹๊ณผ ์ปค๋ฐ‹ํ•˜์ด์— ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ด ์—†๋‹ค๋ฉด, git์€ ๋™์ผํ•œ ํŒŒ์ผ์— ๋Œ€ํ•ด ๋งํฌ๋งŒ ์ƒ์„ฑ

    2. ์ปค๋ฐ‹๋ฉ”์„ธ์ง€๊ฐ€ ์ค‘์š”ํ•œ ์ด์œ 

    • ์ฝ”๋“œ ๋ฆฌ๋ทฐ์‹œ๊ฐ„ ๋‹จ์ถ• → ๋Šฅ๋ฅ ์  ์ฒ˜๋ฆฌ
    • ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ดํ•ด์— ๋„์›€
    • ์ฝ”๋“œ๋งŒ์œผ๋กœ ์„ค๋ช…์ด ์–ด๋ ค์šด "์™œ ์ด๋ ‡๊ฒŒ ํ–ˆ์„๊นŒ"๋ฅผ ์„ค๋ช…
    • ์ถ”ํ›„ ์ž‘์—…ํ•  ์‚ฌ๋žŒ์ด ์™œ/์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋งŒ๋“ค์–ด์กŒ๋Š”์ง€ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€
    • ๋ฌธ์ œ ํ•ด๊ฒฐ๊ณผ ๋””๋ฒ„๊น… ์‰ฝ๊ฒŒ๋งŒ๋“ฆ

    3. ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€ ๊ตฌ์กฐ

    • Header, Body, Footer๋Š” ๋นˆํ–‰์œผ๋กœ ๊ตฌ๋ถ„
      ํƒ€์ž…(Type) (<scope>): ์ œ๋ชฉ(Subject)  //ํ—ค๋”
      

    ๋ณธ๋ฌธ(Body) //๋ฐ”๋””

    ๋ฐ”๋‹ฅ๊ธ€(Footer) //ํ‘ธํ„ฐ

    
    ### 3.1. Header
    #### 3.1.1. Type
    - ํ•„์ˆ˜
    
    | ํƒ€์ž… ์ด๋ฆ„ | ๋‚ด์šฉ |
    | --- | ---|
    | Feat | ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ปค๋ฐ‹ |
    | Fix | ๋ฒ„๊ทธ ์ˆ˜์ • |
    | Build | ๋นŒ๋“œ ๊ด€๋ จ ํŒŒ์ผ ์ˆ˜์ • |
    | Ci | Ci ๋ฌธ์„œ(๋ฌธ์„œ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ) |
    | Docs | ๋ฌธ์„œ ์ˆ˜์ • |
    | Style | ์Šคํƒ€์ผ(์ฝ”๋“œ ํ˜•์‹, ์„ธ๋ฏธ์ฝœ๋ก  ์ถ”๊ฐ€ ๋“ฑ), ๊ธฐ๋Šฅ์ˆ˜์ • ์—†๋Š” ๊ฒฝ์šฐ |
    | Design | ์‚ฌ์šฉ์ž UI ๋””์ž์ธ ๋ณ€๊ฒฝ(CSS ๋“ฑ)
    | Refactor | ์ฝ”๋“œ ๋ฆฌํŽ™ํ† ๋ง |
    | Test | ํ…Œ์ŠคํŠธ(ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ), ๊ธฐ๋Šฅ์ˆ˜์ • ์—†๋Š” ๊ฒฝ์šฐ |
    | Perf | ์„ฑ๋Šฅ ๊ฐœ์„  |
    | Chore | ๊ธฐํƒ€ ๋ณ€๊ฒฝ์‚ฌํ•ญ(๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ˆ˜์ • ๋“ฑ) |
    | Rename | ํŒŒ์ผ ํ˜น์€ ํด๋”๋ช… ์ˆ˜์ • |
    | Remove | ํŒŒ์ผ ์‚ญ์ œ๋งŒ ํ•œ ๊ฒฝ์šฐ |
    
    #### 3.1.2. scope
    - ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ๋ชจ๋“  ์ปค๋ฐ‹์— ์ž‘์„ฑX
    - ex) ํ•จ์ˆ˜ ๋ณ€๊ฒฝ์‹œ `ํ•จ์ˆ˜๋ช…`, ๋ฉ”์†Œ๋“œ์ถ”๊ฐ€์‹œ `ํด๋ž˜์Šค๋ช…` ๊ธฐ์ž… ๋“ฑ
    
    #### 3.1.3. Subject
    - ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€ ์ œ๋ชฉ
    1. ์ œ๋ชฉ๊ณผ ๋ณธ๋ฌธ์€ `๋นˆ ํ–‰์œผ๋กœ ๊ตฌ๋ถ„`
    2. ์ œ๋ชฉ์€ `50๊ธ€์ž` ์ด๋‚ด๋กœ ์ œํ•œ
    3. ์ œ๋ชฉ์˜ `์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑ`
    4. ์ œ๋ชฉ ๋์— `๋งˆ์นจํ‘œ ๋„ฃ์ง€ ์•Š๊ธฐ`
    5. ์ œ๋ชฉ์€ `๋ช…๋ น๋ฌธ`์œผ๋กœ ์‚ฌ์šฉ O, `๊ณผ๊ฑฐํ˜• ์‚ฌ์šฉ X`
    
    #### 3.2. Body
    - ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€ ๋ณธ๋ฌธ
    - ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ๋ชจ๋“  ์ปค๋ฐ‹์— ์ž‘์„ฑX
    1. ์ œ๋ชฉ๊ณผ ๋ณธ๋ฌธ์€ `๋นˆ ํ–‰์œผ๋กœ ๊ตฌ๋ถ„`
    2. ๋ณธ๋ฌธ์˜ `๊ฐ ํ–‰์€ 72๊ธ€์ž ๋‚ด`๋กœ ์ œํ•œ
    3. ์–ด๋–ป๊ฒŒ ๋ณด๋‹ค๋Š” `๋ฌด์—‡ & ์™œ`๋ฅผ ์„ค๋ช…
    
    #### 3.3. Footer
    - ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€ ๋งบ์Œ๋ง
    - ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ๋ชจ๋“  ์ปค๋ฐ‹์— ์ž‘์„ฑX
    - ์ด์Šˆ ์ถ”์ ์„ ์œ„ํ•œ ID์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉ
      + `ํ•ด๊ฒฐ` - ํ•ด๊ฒฐ ์ด์Šˆ ID
      + `๊ด€๋ จ` - ํ•ด๋‹น ์ปค๋ฐ‹์— ๊ด€๋ จ๋œ ์ด์Šˆ ID
      + `์ฐธ๊ณ ` - ์ฐธ๊ณ ํ• ๋งŒํ•œ ์ด์Šˆ ID
    
    | ์‚ฌ์šฉ ์‹œ์  | ์‚ฌ์šฉ ํ‚ค์›Œ๋“œ |
    | --- | --- |
    | ํ•ด๊ฒฐ | `Closes(์ข…๋ฃŒ)`, `Fixes(์ˆ˜์ •)`, `Resolves(ํ•ด๊ฒฐ)` |
    | ์ฐธ๊ณ  | `Ref(์ฐธ๊ณ )`, `Related to(๊ด€๋ จ)`, `See also(์ฐธ๊ณ )` |
    
    
    ## 4. ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€ ์˜ˆ์‹œ

    Feat: ๊ด€์‹ฌ์ง€์—ญ ์•Œ๋ฆผ ON/OFF ๊ธฐ๋Šฅ ์ถ”๊ฐ€(#123)

    ์‹œ๊ตฐ๊ตฌ์˜ ์•Œ๋ฆผ์„ ๊ฐ๊ฐ ON/OFF ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€๋Šฅ ์ถ”๊ฐ€ํ•จ

    • opnion0055: ๊ตฌ๋ถ„ ์ฝ”๋“œ

    ํ•ด๊ฒฐ: close #123

    ```

    5. ๊ธฐํƒ€

    5.1. ์ž‘์„ฑ์ฐธ์กฐ ๋งํฌ