๐ค 25๋ 8์ ํ๊ณ
๋ค์ด๊ฐ๋ฉฐโ
์คํ ๋ฅํฐ ์ ํํ์ 7์์ ์
์ฌํด ์จ๋ณด๋ฉ์ ๋ง์น๊ณ , 8์๋ถํฐ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ด๋ถ ์๋ฃจ์
๋ง์ด๊ทธ๋ ์ด์
์
๋ฌด๋ฅผ ๋ด๋นํ๊ฒ ๋์๋ค.
DB์ ๋ฐฑ์๋ ์ฝ๋๋ฅผ ํํ์ด ์ดํด๋ณด๋ฉฐ ๋น์ฆ๋์ค ๋ก์ง์ ํ์
ํ๊ณ ์์ง๋ง, ๋ก์ง์ด ๋ณต์กํด ํค๋งฌ ๋๊ฐ ๋ง์๋ค.
๋คํํ ๋๋ฃ๋ค๊ณผ ์ฌ์๋ถ์ ๋์์ผ๋ก ๋น ๋ฅด๊ฒ ์ ์ํด๋๊ฐ๊ณ ์๋ค. ๐๐ผ
8์ ํ ๋ฌ๊ฐ ์ผํ๋ฉฐ ๊ฐ์ฅ ํฌ๊ฒ ๋๋ ๊ฒ์ ํ์ํ ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ๋ง๋๋ ์ญ๋๊ณผ ์ผ์ ์ ์์ธกํ๊ณ ์ค์ํ๋ ํ๋ จ์ด ์๊ธํ๋ค๋ ์ ์ด์๋ค. ์ฐ๋ฆฌ๋ 2์ฃผ ๋จ์๋ก ์คํ๋ฆฐํธ ํ๋๋ ๋ฏธํ ์ ์งํํ๋ค. 8์ ๋์ ๋ด๊ฐ ๊ณต์ ํ๋ ์์ ๊ฐ๋ฐ ์ผ์ ์ ์ค์ ๋ก๋ ์ต์ 1.5๋ฐฐ์์ ์ต๋ 2๋ฐฐ๊น์ง ์์๋์๋ค. ์ด ๊ฐ๊ทน์ ์ค์ด๋ ๊ฒ์ ์์ต ๊ธฐ๊ฐ์ ํต์ฌ ๋ชฉํ๋ก ์ผ์์ผ๊ฒ ๋ค๊ณ ๋ค์งํ๋ค. PO๋๊ป์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉํฅ์ ์ ์ํด์ฃผ์ ์ ์ง์ฌ์ผ๋ก ๊ฐ์ฌํ๊ณ , ๋จ์ ์์ต ๊ธฐ๊ฐ์ ์ฒ ์ ํ ์ฐ์ตํด ๋ณผ ์๊ฐ์ด๋ค.
์ผ์ ์ด ๋ฐ๋ฆฌ๋ ์์ธ์ ๋ณตํฉ์ ์ด๋ค. ์ด ๊ธ์์๋ ์ด์ ํธ๋ฆฌ(Issue Tree)๋ฅผ ํ์ฉํด ๋ฌธ์ ๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ๋ถ์ํด๋ณด๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก 9์์ ์ด๋ป๊ฒ ์ฑ์ฅํด ๋๊ฐ์ง ๊ณํ์ ๊ณต์ ํ๊ณ ์ ํ๋ค.
1. Git, ์ด๋ก ์์ ์ค์ ์ผ๋กโ
์ด์ ์๋ Git์ ์ฌ์ฉํด๋ดค์ง๋ง, ์ด๋ฒ ๋ฌ์ฒ๋ผ ๊ทธ ์ค์์ฑ๊ณผ ๊น์ด๋ฅผ ์ฒด๊ฐํ ์ ์ ์์๋ค. ์ด๋ก ์ผ๋ก๋ง ์๋ ๊ฐ๋ ๋ค์ด ์ค์ ํ์ ๊ณผ์ ์์ ์ด๋ป๊ฒ ์๋ํ๋์ง ๊นจ๋ซ๊ฒ ๋ ํ ๋ฌ์ด์๋ค.
์คํ ๋ฅํฐ์ ๋ธ๋์น ์ ๋ต ๋ฐ ๋ณํฉ ๋ฐฉ์

์ฐ๋ฆฌ ํ์ git-flow ์ ๋ต์ ๊ฐ์ํํ์ฌ ํ์ฉํ๊ณ ์๋ค.
- main: ์ค์ ์ด์ ์ค์ธ ํ๋ก๋ํธ์ ์์ค ์ฝ๋๋ฅผ ๊ด๋ฆฌํ๋ค.
- develop: ๋ค์ ๋ฐฐํฌ ๋ฒ์ ์ ํฌํจ๋ ๊ธฐ๋ฅ๋ค์ด ์์ฌ์๋ ๋ธ๋์น๋ค.
- feature: ์ฌ๋ฌ ๊ธฐ๋ฅ์ด ์กฐํฉ๋ ํฐ ๊ท๋ชจ์ ์์ ์ ์งํํ ๋ ์ฌ์ฉํ๋ค. ์๋ฅผ ๋ค์ด 'ํน์ ํ์ด์ง ๋์์ธ ๊ฐํธ'์ฒ๋ผ ์ปดํฌ๋ํธ, ๋ ์ด์์, ๊ธฐ๋ฅ ๊ตฌํ์ด ๋ชจ๋ ํ์ํ ๊ฒฝ์ฐ ๋ณ๋์ feature ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ , ๊ทธ ์์์ feat/, fix/ ๋ฑ์ ์์ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ์์ ํ๋ค.
๊ฐ๋ณ ์์ ๋ธ๋์น๋ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์น ํ, feature ๋๋ develop ๋ธ๋์น๋ก ๋ณํฉ๋๋ค. ์ดํ ์ ํด์ง ์๊ฐ์ develop์ ์ฝ๋๋ฅผ main์ผ๋ก ๋ณํฉํ์ฌ ์ต์ข ๋ฐฐํฌ๋ฅผ ์งํํ๋ค.
์ค์ ๋๋ถ์ ์๊ฒ ๋ git reflog์ ์์คํจ
์ต๊ทผ 3์ผ๊ฐ ์์ ํ๋ ๋ฌ๋ ฅ ์ปดํฌ๋ํธ์ ๊ด๋ จ ๊ธฐ๋ฅ์ ํต์งธ๋ก ๋ ๋ ค๋ฒ๋ฆฌ๋ ์์ฐํ ์ค์๋ฅผ ํ๋ค. ๊ผฌ์ธ ๋ธ๋์น๋ฅผ ์ ๋ฆฌํ๋ ๊ณผ์ ์์ ์ค์๋ก ์์ ๋ธ๋์น๋ฅผ ์ญ์ ํด๋ฒ๋ฆฐ ๊ฒ์ด๋ค. ์ ๋ง์ ์ธ ์๊ฐ, git reflog๋ผ๋ ๋ช ๋ น์ด๋ฅผ ํตํด ์ฃฝ๋ค ์ด์๋ฌ๋ค.
git reflog๋ HEAD ํฌ์ธํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค(์: ์ปค๋ฐ ์์ฑ, ๋ธ๋์น ๋ณ๊ฒฝ, reset ๋ฑ) ๊ทธ ๊ธฐ๋ก์ ๋ก์ปฌ์ ๋จ๊ฒจ๋๋ ๋ช ๋ น์ด๋ค. ๋๋ถ์ ์ค์๋ก ์ฌ๋ผ์ง ์ปค๋ฐ์ '๋ฐ์์ทจ'๋ฅผ ์ถ์ ํ๊ณ ๋ณต๊ตฌํ ์ ์๋ค.
์์: ์ค์๋ก ๋๋ฃ์ ์ปค๋ฐ์ ๋ ๋ ธ์ ๋
$ git log --pretty=oneline
fdf4fc3344e67ab068f836878b6c4951e3b15f3d ๋๋ฃ์ ์ปค๋ฐ
cac0cab538b970a37ea1e769cbbde608743bc96d ๋ด ์ปค๋ฐ
๋๋ฃ์ ์ปค๋ฐ์ ์ค์๋ก ์ญ์ ํด๋ฒ๋ ธ๋ค๊ณ ๊ฐ์ ํด๋ณด์.
$ git log --pretty=oneline
cac0cab538b970a37ea1e769cbbde608743bc96d ๋ด ์ปค๋ฐ
reflog๋ฅผ ํ์ฉํด์ ์ญ์ ํน์ ๋๋ฝ๋ ์ปค๋ฐ์ ํ์ธํ ์ ์๋ค.
$ git reflog
1a410ef HEAD@{0}: reset: moving to cac0cab
fdf4fc3 HEAD@{1}: commit: ๋๋ฃ์ ์ปค๋ฐ
HEAD@1์ ๋๋ฃ์ ์ปค๋ฐ(fdf4fc3)์ด ๊ธฐ๋ก๋์ด ์๋ ๊ฒ์ ํ์ธํ๊ณ ,
git switch -c <๋ณต๊ตฌํ -๋ธ๋์น๋ช
> fdf4fc3 ๋ช
๋ น์ด๋ก ํด๋น ์ปค๋ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ์์
์ ๋์ด๋ฆด ์ ์๋ค.
์ด ๋ฐฉ๋ฒ์ผ๋ก 3์ผ๊ฐ์ ์์
์ ๋ฌด์ฌํ ๋ณต๊ตฌํ๋ ๊ฒฝํ์ Git ๋ช
๋ น์ด์ ์ค์์ฑ์ ๋ค์ ํ๋ฒ ๊นจ๋ซ๊ฒ ํด์ฃผ์๋ค. git merge์ Rebase์ ๋์ ์๋ฆฌ๋ ๋ค๋ฅธ ์ค์๋ค์ ๋ณ๋์ ๊ธฐ์ ํฌ์คํธ๋ก ์์ธํ ๋ค๋ค๋ณผ ์์ ์ด๋ค.
2. ์ผ์ ์์ธก ์คํจ, ์์ธ์ ํ๊ณ ๋ค๋คโ
"์ ๋๋ ์ผ์ ์ ์งํค๊ธฐ ์ด๋ ค์ธ๊น?"๋ผ๋ ์ง๋ฌธ์ ๋ต์ ์ฐพ๊ธฐ ์ํด, ์จ๋ณด๋ฉ ๊ต์ก์์ ๋ฐฐ์ด ์ด์ ํธ๋ฆฌ(Issue Tree)๋ฅผ ํ์ฉํด ์์ธ์ ๋ถ์ํด ๋ณด์๋ค.

๋ฌธ์ ๋ฅผ ํฌ๊ฒ '๊ณํ'๊ณผ '์คํ' ๋จ๊ณ๋ก ๋๋์ด ๋ด๊ฐ ๋์น๊ณ ์๋ ๋ถ๋ถ์ ํ์ ํ๋ค.
- ๊ณํ ๋จ๊ณ์ ๋ฌธ์ ์
- ๊ฐ๋ฐ ์ธ ์๊ฐ ๋ฏธ๋ฐ์: 2์ฃผ๊ฐ์ ๋ฏธํ , ๋ฆฌ๋ทฐ ๋ฑ ๊ฐ๋ฐ ์ธ ์๊ฐ์ ๊ณ ๋ คํ์ง ์๊ณ ์์ ๊ฐ๋ฐ ์๊ฐ๋ง์ผ๋ก ์ผ์ ์ ์ฐ์ ํ๋ค.
- ๊ธฐ์กด ์ฝ๋ ํ์ ๋ถ์กฑ: ๊ธฐ๋ฅ์ ์์ ํ๊ฑฐ๋ ๊ฐ์ ํ ๋, ๊ด๋ จ๋ ๊ธฐ์กด ์ฝ๋์ ๋ณต์ก๋๋ฅผ ํ์ ํ์ง ์์ ์ฑ ์ผ์ ์ ๊ณํํ๋ค.
- ์คํ ๋จ๊ณ์ ๋ฌธ์ ์
- ์๊ทน์ ์ธ ์ง๋ฌธ: ๊ธฐ์กด ๊ตฌํ ๋ฐฉ์์ ์ดํดํ๋ ๊ณผ์ ์์ ๋งํ๋ ๋ถ๋ถ์ด ์์ ๋, ๋ ์ ๊ทน์ ์ผ๋ก ์ง๋ฌธํ์ฌ ์๊ฐ์ ๋จ์ถํ์ง ๋ชปํ๋ค.
- ๋ถ์กฑํ ํ ์คํธ ์ต๊ด: ๊ธฐ๋ฅ ๊ตฌํ ํ, ๋ค์ํ ์ฃ์ง ์ผ์ด์ค์ ๋ํ ๊ผผ๊ผผํ ํ ์คํธ๊ฐ ๋ถ์กฑํ์ฌ QA ๋จ๊ณ์์ ์์์น ๋ชปํ ์์ ์ฌํญ์ด ๋ฐ์ํ๋ค.
์ด ๋ถ์์ ํตํด ์ป์ 4๊ฐ์ง ํฌ์ธํธ๋ฅผ ๋ฐํ์ผ๋ก, ๋ค์ ์คํ๋ฆฐํธ์์๋ ๋ ์ ํํ๊ฒ ์ผ์ ์ ์ฐ์ ํ๊ณ ์คํ์ ์์ฑ๋๋ฅผ ๋์ฌ๋ณด๋ ค ํ๋ค. ํ ํ๊ณ ์์ PO๋๊ป์ "๊ฐ๋ฐ์๊ฐ ์์ํ ์๊ฐ์ 2๋ฐฐ, ์ต์ํ์ง ์๋ค๋ฉด 3๋ฐฐ๊น์ง ์ฌ์ ๋ฅผ ๋๊ณ ์ผ์ ์ ์ฐ์ ํ๋ฉฐ ๊ทธ ๊ฐ๊ทน์ ์ค์ฌ๋๊ฐ๋ผ"๋ ํ์ค์ ์ธ ์กฐ์ธ์ ์ฃผ์ จ๋ค. ์ด ํ์ ์ ๊ทน์ ์ผ๋ก ํ์ฉํด ๋ณผ ๊ฒ์ด๋ค.
3.์ฑ์ฅ์ ๋ฐ๊ฑฐ๋ฆ, ๋๋ฃ๋ค์ ํผ๋๋ฐฑโ
์ ์ฌ ํ ๋ฌ์ด ์กฐ๊ธ ์ง๋ ์์ ์ ์์ต ์ค๊ฐ ํผ๋๋ฐฑ์ ๋ฐ๋ ์๊ฐ์ด ์์๋ค. ๊ฐ์ธ์ ์ผ๋ก ํผ๋๋ฐฑ์ ๋๋ ค์ํ์ง ์๊ณ ์ฑ์ฅ์ ๊ธฐํ๋ก ์ผ๋ ์ ์ ๋์ ํฐ ์ฅ์ ์ผ๋ก ์๊ฐํ๋ค.
PO๋๊ป์ ๋ง๋ค์ด์ฃผ์ ๋ถ๋๋ฌ์ด ๋ถ์๊ธฐ ์์์, ๋๋ฃ๋ค์ด ํ ๋ช ์ฉ ๋์๊ฐ๋ฉฐ CSS(Continue / Stop / Start) ํ๋ ์์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ทํ ํผ๋๋ฐฑ์ ๋๋ ์ฃผ์๋ค.

์ด๋ฐ ๊ทํ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์์๋ค. ํผ์ ์ผํ๋ฉด์ ๊ฐ์ ํ๋ ํผ๋๋ฐฑ์ ์ด๋ ๊ฒ ๋ฐ์ ์ ์๋ค๋ ์ง์ฌ์ผ๋ก ๊ฐ์ฌํ๋ค. ์์ ํผ๋๋ฐฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฌด ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๋ฉด ๋๊ฒ ๋ค๋ ์ธ์ฌ์ดํธ๊ฐ ์์๊ณ ๊ทธ๋์ ๋ง๋ค์ด๋ดค๋ค. ์์ผ๋ก ๋ ๋ง์ ํผ๋๋ฐฑ์ด ์๊ฒ ์ง๋ง ์ ๋ฌด ์ฒดํฌ๋ฆฌ์คํธ๋ง ์ ๊ด๋ฆฌํ๋ฉด ํด๊ฒฐํ ์ ์์ง ์์๊น ์ถ์ด ๊ณต์ ํด๋ณธ๋ค.
ํผ์ ์ผํ ๋๋ ๊ฒฐ์ฝ ์ป์ ์ ์์๋, ๊ฐ์ ํ๋ ํผ๋๋ฐฑ์ด์๋ค. ์ด ํผ๋๋ฐฑ์ ๋์น์ง ์๊ณ ์ค์ ํ๋์ผ๋ก ์ฎ๊ธฐ๊ธฐ ์ํด ๊ณง๋ฐ๋ก ์ ๋ฌด ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์๋ค.

์ฃผ๋ณ์์๋ ๋๋ฅผ 'ํ์ J'๋ผ๊ณ ํ์ง๋ง, ์ด๋ ๊ฒ ๊ตฌ์ฒด์ ์ธ ์ฅ์น๋ฅผ ๋ง๋ จํ์ง ์์ผ๋ฉด ๊ธฐ์กด์ ์ต๊ด์ ๊ณ ์น๊ธฐ ์ด๋ ต๋ค๊ณ ๋๊ผ๋ค.
ํ๋ฐ๊ธฐ ๋์ ์ด ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๊พธ์คํ ๋ค๋ฌ์ผ๋ฉฐ, ํจ๊ป ์ผํ๊ธฐ ํธํ ๋๋ฃ๋ก ์ฑ์ฅํด ๋๊ฐ๊ธฐ๋ก ๋ค์งํ๋ค.
๋ง์น๋ฉฐโ
8์์ ์๋ง์ ์ํ์ฐฉ์ค๋ฅผ ํตํด ํ ์์์ ํจ๊ป ์ผํ๋ ๋ฐฉ์์ ๋ฐฐ์ฐ๊ณ ์ตํ๋ ๊ท์คํ ์๊ฐ์ด์๋ค. ๋์์ ์ค ๋๋ฃ๋ค์๊ฒ ๋ค์ ํ๋ฒ ๊ฐ์ฌํ๋ฉฐ, 9์์๋ ๋ ๋์ ๋๋ฃ๊ฐ ๋๊ธฐ๋ฅผ ๊ธฐ๋ํด๋ณธ๋ค.
- 9์ ์ก์ ํฌ์ธํธ
๊ฐ๋ฐ ๊ด๋ จ
- ์ฌ๋ด ์ ์๋ฃจ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ๊ธฐ๋ฅ ๋น ๋ฅด๊ฒ ์ณ๋ด๊ธฐ (10์ ๊ตฌ์๋ฃจ์ ์ฌ์ฉํ์ง ์๊ธฐ ์ํด ๋ฌ๋ฆฌ์)
- ํ ์ค ํด๋ฆฐ ์ฝ๋ ๊ณต์๋ฌธ์ 1ํ๋ (9์)
- CLAUDE.MD๋ .cursorrule ๊ฐ์ ์ค์ ๊ด์ฌ๊ฐ์ง๊ณ ์ฌ์ฉํด๋ณด๊ธฐ
๊ทธ์ธ (์ปค๋ฎค๋์ผ์ด์ )
- ์คํ๋ฆฐํธ ์์ ๋ฏธํ ์ ์ ๋ช ํํ ์ผ์ ๊ณต์ ๋ฅผ ์ํด ์ ๋ฌด ์ชผ๊ฐ๋ ๊ณผ์ ์ด ์คํ ์๋
- ๋ฐ๋ฐ๋ผ ๋ฏผํ ๋ ผ๋ฆฌ์ ๊ธฐ์ ์ฝ๊ณ 9์์ ๋๋์ ์ ๋ฆฌ
- ํจ๊ป ์๋ผ๊ธฐ ์ฑ ์ฝ๊ณ ํ ๊ฐ์ง ์ธ์ฌ์ดํธ ์ ์ฉํด๋ณด๊ธฐ
