AngularJS Git Commit Message Conventions์ ์ฐธ๊ณ ํด ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ๋ค.
์ฐํ
์ฝ ํ๋ฆฌ์ฝ์ค 1์ฃผ์ฐจ ๋ฏธ์
์ ์๊ตฌ์ฌํญ์ ์ด๋ฐ ๊ฒ ํฌํจ๋์ด ์์๋ค. ์๋ฌธ์๋ผ ์์ ์ด ์์์ง๋ง๐ฅน 1์ฃผ์ฐจ ๋ชฉํ ์ค Git์ ์ต์ํด์ง๊ธฐ๋ ์๋ ๋งํผ ํด๋น ๋ฌธ์๋ฅผ ๊ผผ๊ผผํ ์ฝ์ด๋ณด๊ธฐ๋ก ํ๋ค ๐
์ ์ปค๋ฐ ๋ฉ์ธ์ง ์ปจ๋ฒค์ ์ ์ง์ผ์ผ ํ ๊น?
๋๋ ๊น์ ์ฒ์ ์ฌ์ฉํ ๋๋ ์ปค๋ฐ ์ปจ๋ฒค์
์ ์งํค์ง ์์๋ค. ๊ทธ๋ ๊ฒ ์ ํด๋ ๋์ผ๋๊น! ์ง๋๊ฐ ํ๋ก์ ํธ๋ฅผ ๋ค์ ๋ณผ ์ผ๋ ์์๊ณ , ๊ฐ์ธ ํ๋ก์ ํธ์ฌ์ ๋ด ์ปค๋ฐ ๋ด์ญ์ ๋ณผ ์ฌ๋๋ ์์๋ค.
๊ทธ๋ผ ์ ์ปจ๋ฒค์
์ ์งํค๋ผ๊ณ ํ๋ ๊ฑธ๊น? ๋ฐ๋ก ํ์
๊ณผ ๊ธฐ๋ก ๋๋ฌธ์ด๋ค.
1. ํด๋น ์ปค๋ฐ์ด ์ด๋ค ๋ด์ฉ์ ๋ด๊ณ ์๋์ง ์ดํดํ๊ธฐ ์ฌ์์ง๋ค.
ํ์์ ์ ์งํจ ์ปค๋ฐ ๋ฉ์ธ์ง๋ ์ปค๋ฐ ๋ด์ญ์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ํด์ค๋ค. ๋ค๋ฅธ ํ์, ์๋ก ๋ค์ด์จ ํ์, ๋์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ดํด๋ณด๋ ๋ฉด์ ๊ด ๋ฑ ์ฒ์ ๋ณด๋ ์ฌ๋๋ ์ปค๋ฐ ๋ด์ญ์ ๋ณด๊ณ ์ด๋ค ์์
์ ์ํํ๋์ง ๋น ๋ฅด๊ฒ ํ์
ํ ์ ์๋ค.
2. CHANGELOG.md ์์ฑ์ ์๋ํํ ์ ์๋ค.

์ด๋ฐ ํ์ผ์ ๋ณธ ์ ์์ํ
๋ฐ ์ด๊ฒ ๋ฐ๋ก ๋ณ๊ฒฝ ๋ก๊ทธ๋ค. ์ด๊ฑธ ์ฌ๋์ด ์ง์ ๊ด๋ฆฌํ๋๊ฑด ์ฌ๋ฌ๋ชจ๋ก ๋ฒ๊ฑฐ๋ก์ด ์ผ์ด์ง๋ง, ํ์์ ์ ์งํจ ์ปค๋ฐ ๋ฉ์ธ์ง๋ ๊ธฐ๊ณ๊ฐ ๋ฉ์ธ์ง๋ฅผ ๋ถ์ํด์ ์๋์ผ๋ก ํ์ผ์ ์
๋ฐ์ดํธํด์ค๋ค๊ณ ํ๋ค๐ฒ ๊ทธ๋ฌ๋๊น ์ฐ๋ฆฌ๋ ๊ธฐ๊ณ๊ฐ ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ์ธ์ํ ์ ์๋๋ก ํ์์ ์ ์ง์ผ์ ์จ์ผํ๋ค.
1. ๋ณ๊ฒฝ ๋ก๊ทธ ์์ฑํ๊ธฐ
๋ฐฐํฌ ์ ์คํฌ๋ฆฝํธ๊ฐ ์๋์ ๊ฐ์ ๋ด์ฉ์ ๋ณ๊ฒฝ ๋ก๊ทธ์ ๊ธฐ๋กํ ์ ์๋ค. ๋ฌผ๋ก ์ค์ ๋ฐฐํฌ ์ ์ ๋ณ๊ฒฝ ๋ก๊ทธ๋ฅผ ์์ ํ ์๋ ์๋ค.
new features
: ์ ๊ธฐ๋ฅbug fixes
: ๋ฒ๊ทธ ์์ breaking changes
: ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ. ์ด์ ๋ฒ์ ๊ณผ ํธํ๋์ง ์์ ๋ ์ฌ์ฉํ๋ค.
์ต๊ทผ ๋ฐฐํฌ ์ดํ์ ์์ฑ๋ ๋ชจ๋ ์ปค๋ฐ ๋ฉ์ธ์ง์ ์ ๋ชฉ์ ํ์ธํ๋ ๋ช
๋ น์ด
git log <last tag> HEAD --pretty=format:%s
์ต๊ทผ ๋ฐฐํฌ์ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ ํ์ธํ๋ ๋ช
๋ น์ด
git log <last release> HEAD --grep feature
(1) ์ค์ํ์ง ์์ ์ปค๋ฐ ๊ฑธ๋ฌ๋ด๊ธฐ
๊ณต๋ฐฑ ์ ๊ฑฐ, ๊ฐํ, ์ฃผ์ ๋ฑ ์ค์ํ์ง ์์ ์ปค๋ฐ ๋ด์ฉ๋ ์๋ค. git bisect๋ฅผ ์ฌ์ฉํ๋ฉด ์ปค๋ฐ ๋ด์ญ ํ์ ์ ์ด๋ฐ ์ปค๋ฐ๋ค์ ๋ฌด์ํ ์ ์๋ค.
git bisect skip $(git rev-list --grep irrelevant <good place> HEAD)
(2) ์ปค๋ฐ ๋ด์ญ ํ์ ์ ๋ ์์ธํ ์ ๋ณด ์ ๊ณต
ํ์์ ์ ์งํจ ์ปค๋ฐ์ ํ๋ฉด, ์ฝ๋ ์ฌ๋์๊ฒ '๋งฅ๋ฝ' ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์๋ค. ์๋ ์ปค๋ฐ ๋ด์ญ์ ๋ณด๊ณ ์ด๋ค ๋ด์ฉ์ ๋ด์ ์ปค๋ฐ์ธ์ง ์๊ฐํด๋ณด์.

์ค์ ๋ก๋ ํ๊ฐ ๋ฐ์ดํฐ์ ๋ฐฐ์น ์ฌ์ด์ฆ๋ฅผ ์์ ํ ์ปค๋ฐ์ธ๋ฐ, ์ด๋ค ํ์ผ์ ์ด๋ป๊ฒ ์์ ํ๋์ง ํ๋๋ ๋ํ๋์ง ์๋๋ค. ๋ฌผ๋ก ๋ณ๊ฒฝ๋ ํ์ผ ๋ด์ญ์ ์ฐพ์๋ณด๋ฉด ์์ ๋ ํ์ผ์ ์ ์ ์์ง๋ง ๋ฒ๊ฑฐ๋กญ๋ค.

์ด๋ค ํ์ผ์ ์์ ํ๋์ง๋ ๋๋ฌ๋ฌ์ง๋ง, CSS ์คํ์ผ ํ๊ทธ๋ฅผ ๋ณ๊ฒฝํ๋ค๋ ๋ด์ฉ์ ํ๋๋ ๋๋ฌ๋์ง ์๋๋ค.

์ด ์ ๋๋ฉด ๋๋ต ์ด๋ค ํ์ผ์ ์ด๋ค ๋ถ๋ถ์ด ์์ ๋์๋์ง ํ์
ํ ์ ์๋ค.
๋ฉค๋ฒ ์กฐํ ๋ก์ง์ ๋ณ๋ ๋ฉ์๋๋ก ๋ถ๋ฆฌํ๋ค๋ฉด ๋น์ฆ๋์ค ๋ก์ง์ ๋ด์ MemberService๊ฐ ์์ ๋์์ ํ
๊ณ , API๋ฅผ ์ถ๊ฐํ๋ค๋ฉด Controller, Service์ ์๋ก์ด ๋ฉ์๋๊ฐ ์ถ๊ฐ๋๊ณ ResponseDTO ํด๋์ค๊ฐ ์์ฑ๋์์ ๊ฒ์ด๋ค.
2. ์ปค๋ฐ ๋ฉ์ธ์ง ํ์
<type>(<scope>): <subject>
<body>
<footer>
โ ๏ธ ์ปค๋ฐ ๋ฉ์ธ์ง๋ ํ ์ค์ 100์๋ฅผ ๋๊ธฐ๋ฉด ์๋๋ค.
(1) ์ ๋ชฉ (Subject Line)
์ ๋ชฉ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ๊ฐ๋ตํ ๋ด์ฉ์ด ํฌํจ๋์ด ์์ด์ผ ํ๋ค.
<type>
: ๋ณ๊ฒฝ ์ฌํญ์ ์ข ๋ฅ๋ฅผ ์ ์ํ๋ค.feat
: ์๋ก์ด ๊ธฐ๋ฅfix
: ๋ฒ๊ทธ ์์ docs
: ๋ฌธ์ ๋ณ๊ฒฝstyle
: ๋ก์ง ๋ณ๊ฒฝ ์๋ ํ์ ์์ ์ ์๋ฏธํ๋ค. (๋ค์ฌ์ฐ๊ธฐ, ๊ณต๋ฐฑ ์ถ๊ฐ ๋ฑ)refactor
: ๋ฆฌํฉํ ๋ง, ์ฆ ๋ฒ๊ทธ ์์ ์ด๋ ๊ธฐ๋ฅ ๋ณํ ์๋ ๋ก์ง ์์ ์ ์๋ฏธํ๋ค.test
: ๋๋ฝ๋ ํ ์คํธ ์ถ๊ฐ ๋ฐ ๊ธฐ์กด ํ ์คํธ ๋ณ๊ฒฝchore
: ์ฝ๋ ์์ ์์ด ์ค์ (๋น๋ ๋ฑ)์ ๋ณ๊ฒฝํ ๋
์ด ๊ท์น์ AngularJS ์ปค๋ฐ ์ปจ๋ฒค์ ์ ๋ฐํ์ผ๋ก ์์ฑ๋์๋๋ฐ, AngularJS ์ปค๋ฐ ์ปจ๋ฒค์ ์ ํ์ฌ ํ์ ์ด 7๊ฐ์์ 9๊ฐ๋ก ๋์ด๋ฌ๋ค๊ณ ํ๋ค. ์ง๊ธ์ chore๊ฐ ์ฌ๋ผ์ง๊ณ build, ci, perf๊ฐ ์ถ๊ฐ๋์๋๋ฐ ๋ด์ฉ์ ๊ฐ๊ฐ ์๋์ ๊ฐ๋ค.build
: ๋น๋ ์์คํ ๋๋ ์ธ๋ถ ์์กด์ฑ์ ์ํฅ์ ๋ฏธ์น๋ ๋ณ๊ฒฝ (gulp, npm ๋ฑ)ci
: CI ๊ตฌ์ฑ ํ์ผ ๋ฐ ์คํฌ๋ฆฝํธ ๋ณ๊ฒฝperf
: ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ์ฝ๋ ๋ณ๊ฒฝ
<scope>
: ์ด๋๊ฐ ๋ณ๊ฒฝ๋์๋์ง๋ฅผ ๋ช ์ํ๋ค.refactor: ๋ฉค๋ฒ ์กฐํ ๋ก์ง์ ๋ณ๋ ๋ฉ์๋๋ก ๋ถ๋ฆฌ
๋ฉ์ธ์ง์ ๊ฒฝ์ฐ, MemberService๊ฐ ์์ ๋์์ผ๋ฏ๋กrefactor(MemberService): ๋ฉค๋ฒ ์กฐํ ๋ก์ง์ ๋ณ๋ ๋ฉ์๋๋ก ๋ถ๋ฆฌ
๋ก ์์ฑํ ์ ์๋ค.
<subject>
: ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ํ ์งง์ ์ค๋ช ์ ํฌํจํ๋ค.- ํ์ฌ ์์ , ๋ช ๋ น๋ฌธ์ผ๋ก ์์ฑํ๋ค. changes๋ changed๊ฐ ์๋ change๋ก ์์ฑํ๋ผ๋ ๋ง์ด๋ค.
- ์์ด๋ก ์์ฑํ๋ ๊ฒฝ์ฐ, ์ฒซ ๊ธ์๋ ์๋ฌธ์๋ก ์์ฑํ๋ค.
- ๋ง์ง๋ง์ ์จ์ (.)์ ๋ถ์ด์ง ์๋๋ค.
(2) ๋ฉ์ธ์ง ๋ด์ฉ (Message Body)
- ํ์ฌ ์์ , ๋ช ๋ น๋ฌธ์ผ๋ก ์์ฑํ๋ค.
- ๋ณ๊ฒฝํ ์ด์ , ์ด์ ๊ณผ ๋ฌ๋ผ์ง ์ ์ ํฌํจํ๋ค.
(3) ๋ฉ์ธ์ง ํ๋จ (Message Footer)
- ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ (Breaking Changes): ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์ค๋ช , ๋ณ๊ฒฝ ์ด์ , ๋ง์ด๊ทธ๋ ์ด์ ๋ ธํธ๋ฅผ ํฌํจํด์ผ ํ๋ค.
- ๊ด๋ จ ์ด์ (Referencing Issues): ํด๋น ์ปค๋ฐ์ผ๋ก Closed ์ฒ๋ฆฌ๋ ์ด์๋ ์ปค๋ฐ ๋ฉ์ธ์ง ํ๋จ์ "Closes #์ด์๋ฒํธ, #์ด์๋ฒํธ"์ ๊ฐ์ด ๊ธฐ์ฌ๋์ด์ผ ํ๋ค. ์ด์๊ฐ ์์ํ๋ค๋ฉด ์ด ๊ธ์ ์ฐธ๊ณ ํ๋ฉด ์ข์๊ฒ๊ฐ๋ค :)
์๋ฅผ ๋ค์ด์..! ๋ก๊ทธ์ธ API์ HTTP Method๋ฅผ POST์์ GET์ผ๋ก ๋ณ๊ฒฝํ๋ ์์
์ ์๋์ ๊ฐ์ด ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ์์ฑํ ์ ์๋ค.
fix(LoginController): ๋ก๊ทธ์ธ ์์ฒญ API์ HTTP Method๋ฅผ GET์ผ๋ก ๋ณ๊ฒฝ
๋ก๊ทธ์ธ API์ HTTP Method๋ฅผ ๋ช
์ธ์์ ๋ง๊ฒ POST์์ GET์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
BREAKING CHANGE: ๋ก๊ทธ์ธ ์์ฒญ ์์ ์ค์ HTTP Method๋ฅผ ๋ช
์ธ์์ ๋ง๊ฒ POST์์ GET์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
ํด๋ผ์ด์ธํธ ์ฝ๋์ ๋ก๊ทธ์ธ ์์ฒญ ์์ ์ค์ ์๋์ ๊ฐ์ด ๋ง์ด๊ทธ๋ ์ด์
ํ์ธ์.
์ด์ ๋ฒ์ ์ ์์ ์ค: POST api.siltarae.com/login/{socialType}
์์ ๋ ๋ฒ์ ์ ์์ ์ค: GET api.siltarae.com/login/{socialType}
์ง๊ธ๊น์ง ์ปค๋ฐ ๋ฉ์ธ์ง ์ปจ๋ฒค์
์ ๋ํด ์์๋ดค๋ค.
์ฌ์ค ์ด์ ๋๋ก ์ฒ ์ ํ๊ฒ ์ง์ผ์ ์ปค๋ฐํด๋ณธ ์ ์ ์์๋๋ฐ body์ footer๊น์ง ๊ผผ๊ผผํ๊ฒ ์ดํด๋ณผ ์ ์๋ ๊ธฐํ์๋ค๊ณ ์๊ฐํ๋ค. ํนํ ์๋ฌด ์๊ฐ ์์ด ์งํค๋ ์ปค๋ฐ ๋ฉ์ธ์ง ์ปจ๋ฒค์
์ด ์ ํ์ํ์ง ๊นจ๋ฌ์ ์ ์์ด์ ๋์ฑ ์ข์๋คโจ
'๐๐ข๐ญ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
IntelliJ - Github ์ฐ๋ ์ค๋ฅ ํด๊ฒฐ: Access to this site has been restricted (0) | 2024.08.01 |
---|---|
[Github] ํจ์จ์ ์ธ ํ์ ์ ์ํ ์ด์ ์ฌ์ฉ (0) | 2023.12.11 |