
ํผ์ ํ๋ ํ๋ก์ ํธ์๋ โ๋ฒ์ ๊ด๋ฆฌโ๊ฐ ํ์ํ ๊น์?
ํผ์ ํ๋ ํ๋ก์ ํธ์๋ โ๋ฒ์ ๊ด๋ฆฌโ๊ฐ ํ์ํ ๊น์? ๊ด๋ จ
์์ฆ ๊น(Git)์ด๋ ๊นํ๋ธ(GitHub)๋ก ๋ํ๋๋ ๋ฒ์ ๊ด๋ฆฌ๋ ํ์ ์ ์ํ ํด์ด๋ผ๋ ์ธ์์ด ๊ฐํฉ๋๋ค. ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ํ๋์ ํ๋ก์ ํธ์ ๋ํด์ ์์ ํ ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์์ ํ๊ธฐ ์ํด, ๊ทธ๋ฆฌ๊ณ ๋ฆด๋ฆฌ์ฆ๋ ๋ฒ์ ๊ณผ ๊ฐ๋ฐ ์ค์ธ ๋ฒ์ ์ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋ธ๋์น๋ฅผ ๋๋๊ธฐ ๋๋ฌธ์ด์ฃ .
์ด๋ฌํ ์ธ์์ผ๋ก ํผ์ ํ๋ ํ๋ก์ ํธ์์๋ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๊ตณ์ด ์ ๊ฒฝ ์ฐ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ทจ์ ์ ์ํ ๊ฐ์ธ ํ๋ก์ ํธ, ํ์ง ๊ฐ๋ฐ์๊ฐ ํ๋ ์ฌ์ด๋ ํ๋ก์ ํธ, ์ฌ์ง์ด ํ์ฌ ํ๋ก์ ํธ๋ ๊ท๋ชจ๊ฐ ํฌ์ง ์์ ํผ์ ํ๋ ์ํฉ์ด๋ผ๋ฉด, ๋ธ๋์น์ ์ปค๋ฐ์ ๊ด๋ฆฌํ๊ธฐ๋ณด๋ค๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ๋์ฑ ์ง์คํฉ๋๋ค. ๋ค๋ฅธ ๊ฐ๋ฐ์์ ์ฝ๋์ ๋ด ์ฝ๋๊ฐ ์์ด๋ ๊ฒ๋ ์๋๊ณ , ๋ชจ๋ ์ฝ๋์ ๊ถํ์ด ๋ ์์ ์๊ฒ ์๊ธฐ ๋๋ฌธ์ ๊ตณ์ด ๋ฒ์ ๊ด๋ฆฌ๊ฐ ํ์ํ๊ฐ๋ ์ถ์ฃ . ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ๋์ถฉ ์ ์ด๋, ํ ์ปค๋ฐ์ ์ด๊ฒ์ ๊ฒ ์๋ฌด๋ ๊ฒ๋ ๋ฃ์ด๋ ์๊ด์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ฌํ ๊ด๋ฆฌํด ๋ดค์ ๋ณผ ์ฌ๋๋ ์์ผ๋ ๊ท์ฐฎ๊ธฐ๋ง ํ์ฃ .
๊ทธ๋ฌ๋ ๋ฒ์ ๊ด๋ฆฌ๋ ์ ํ์ฉํ๋ฉด ํผ์ ํ๋ ํ๋ก์ ํธ์์๋ ๊ฐ๋ ฅํ ๋์์ ์ค ์ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ํ์ ์ ์ํ ๋ฒ์ ๊ด๋ฆฌ์์ ๋ฒ์ด๋, ๊ฐ์ธ ํ๋ก์ ํธ์์์ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ํ๋ก์ ํธ์ ์งํ์์ ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์๋ก์์ ๋ฐ์ ์ ์ด๋ค ๋์์ ์ฃผ๋์ง ํ์ฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
๋ฒ์ ๊ด๋ฆฌ ์์๋ณด๊ธฐ
โ๋ฒ์ ๊ด๋ฆฌโ๋ ๋ง ๊ทธ๋๋ก ์ฝ๋์ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฐ์ ๋ฐ๋ผ ๊ธฐ๋กํ๊ณ ๊ด๋ฆฌํ๋ ์์คํ ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ (Version Control System, VCS)์ด๋ผ๊ณ ํฉ๋๋ค. ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ๋ฒ์ ๊ด๋ฆฌ๋ ํ์ ๊ณผ ํฐ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ์ ์ฝ๋์ ๋ณ๊ฒฝ ๋ด์ญ์ ๊ด๋ฆฌํ ๋ฟ์ด์ฃ .

<์ถ์ฒ: Unsplash - Roman Synkevych>
1. ๊น๊ณผ ๊นํ๋ธ
๋ฒ์ ๊ด๋ฆฌ๊ฐ ์ต์ํ์ง ์์ผ๋ฉด ๊น๊ณผ ๊นํ๋ธ๋ฅผ ํผ๋ํ๊ณ ๋ ํฉ๋๋ค. ๊น๊ณผ ๊นํ๋ธ๋ ๋ ๋ค ๋ฒ์ ๊ด๋ฆฌ์ ์ฃผ๋ก ์ฌ์ฉ๋์ง๋ง, ์ ํ ๋ค๋ฅธ ๊ฐ๋ ์ ๋๋ค.
- ๊น: ๋ฒ์ ๊ด๋ฆฌ ์์คํ
- ๊นํ๋ธ: ๊น ์ ์ฅ์๋ฅผ ํธ์คํ ํ๋ ์น ์๋น์ค
์ฆ, ๋ฒ์ ๊ด๋ฆฌ๋ ๊น์ ์ญํ ์ด๋ฉฐ, ๊นํ๋ธ๋ ์ด๊ฒ์ ์จ๋ผ์ธ์ ์ ์ฅํ ์ ์๋๋ก ํธ์คํ ํ๋ ์๋น์ค์ผ ๋ฟ์ ๋๋ค. ๊นํ๋ธ ์ธ์๋ ๊น๋ฉ, ๋น๋ฒํท๋ฑ ๋ค์ํ ๊น ํธ์คํ ์ฌ์ดํธ๊ฐ ์์ต๋๋ค. ๋ ์ด๋ฌํ ์จ๋ผ์ธ ํธ์คํ ์ฌ์ดํธ๋ฅผ ์ด์ฉํ์ง ์๋๋ผ๋, ๋ก์ปฌ์์๋ ์ถฉ๋ถํ ๊น ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
์ด๋ฒ ๊ธ์์๋ ๋ํ์ ์ธ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ธ ๊น์ ์์ฃผ๋ก ์ค๋ช ํ๋ ค๊ณ ํฉ๋๋ค. ๋ค๋ง ๊น ์ธ์ ๋ค๋ฅธ ์์คํ ๋ค๋ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ค๋ ๋ชฉ์ ์ ๊ฐ์ผ๋ฏ๋ก, ์ด๋ ํ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ด์ฉํ๋๋ผ๋ ๋ชจ๋ ์ ์ฉํ ์ ์์ต๋๋ค.
2 ๊ธฐ๋ณธ ์ฉ์ด
์ฐ์ ๊ฐ์ธ ํ๋ก์ ํธ์์์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ ๊ธฐ๋ณธ์ ์ธ ๊น ์ฉ์ด๋ฅผ ๋ช ๊ฐ์ง๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ปค๋ฐ
์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ๋ ์์ ์ ๋๋ค. ํ๋์ ์ปค๋ฐ์ ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ์ปค๋ฐ ๋ฉ์์ง๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ์ ๋ํ๋ผ ์ ์๋ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ๋ ๊ฒ์ด ํจ์จ์ ์ธ ์ปค๋ฐ์ ํต์ฌ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๋ธ๋์น
๋ ๋ฆฝ์ ์ธ ๊ฐ๋ฐ์ ์ํด ์ฝ๋๋ฅผ ๋ถ๊ธฐ์ํจ ๊ฒ์ ๋๋ค. ๊ฐ์ธ ํ๋ก์ ํธ์์๋ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๋์์ ๊ฐ๋ฐํ๋ ค๊ณ ํ ๋, ์คํ์ ์ธ ๊ธฐ๋ฅ์ ๋์ ํด ๋ณด๊ณ ์ ํ ๋ ์ฃผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ณํฉ
์ฌ๋ฌ ๋ธ๋์น๋ฅผ ํฉ์น๋ ๊ฒ์ ๋๋ค. ๋ ๋ฆฝ์ ์ผ๋ก ์งํํ ๊ฐ๋ฐ์ด ์๋ฃ๋์์ ๋, ํด๋น ์ฌํญ์ ๋ณํฉ์ํด์ผ๋ก์จ ํ๋ก์ ํธ์ ์ค์ ๋ก ๋ฐ์์ํฌ ์ ์์ต๋๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ
์ฝ๋์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ์ ์ฅํ๋ ๊ณต๊ฐ์ ๋๋ค. ์ฌ๋ฌ ์ปค๋ฐ๊ณผ ๋ธ๋์น ๋ฑ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ฐ์ดํฐ๋ ๋ชจ๋ ๋ฆฌํฌ์งํ ๋ฆฌ ์์ ์ ์ฅ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ๋์ ํ๋ก์ ํธ๋ฅผ ํ๋์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ๊ด๋ฆฌํ์ง๋ง, ํญ์ ์ผ๋์ผ๋ก ๋์๋๋ ๊ฒ์ ์๋๋๋ค. ์ค์ ๋ก ๊ตฌ๊ธ์ ๋๋ถ๋ถ์ ํ๋ก์ ํธ๋ฅผ ๋จ ํ๋์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ๊ด๋ฆฌํ๋ ๋ชจ๋ ธ-๋ฆฌํฌ ๋ฐฉ์์ผ๋ก ์ ๋ช ํฉ๋๋ค.
๋ฒ์ ๊ด๋ฆฌ ํ์ฉ 1. ์ฝ๋ ๋ณต๊ตฌํ๊ธฐ
์ด์ฌํ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ฐ ์ด๋ ์๊ฐ ํ๋ ๋์ฉ ๊ผฌ์ด๊ธฐ ์์ํ๊ณ , ๊ทธ๋ฌ๋ค ๊ฒฐ๊ตญ ์ฝ๋๊ฐ ์ ๋ถ ์์ผ๋ฒ๋ ค์ ๋ชจ๋ ์์ด์ผ ํ๋ ๊ฒฝํ์ด ์์ผ์ ๊ฐ์? ๋ถ๋ช ์ด๋ ์๊ฐ๊น์ง๋ ๊ด์ฐฎ์๋ ๊ฒ ๊ฐ์๋ฐ, ์ ์ ์ ์ฐจ๋ ค๋ณด๋ ์๋ฌด๊ฒ๋ ํ ์ ์๋ ์ฝ๋๊ฐ ๋์ด ์์ต๋๋ค. Ctrl+Z๋ก ๋๋๋ฆฌ๋ ๊ฒ๋ ํ๊ณ๊ฐ ์๊ณ , ์ธ์ ๊น์ง ๊ด์ฐฎ์๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฒ์๋ถํฐ ๋ค์ ์์ํ๋ , ์ด ์ ๋ฌผ๊ณ ์ด๋ป๊ฒ๋ ์ํจ ์ฝ๋๋ฅผ ํ๋ , ํ๋ ๊ณ ํ์ ๊ธธ๋ง ๋จ์์์ฃ .
์ด๋ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํด ๋์๋ค๋ฉด ์คํธ๋ ์ค๋ฐ๋ ์ํฉ์ด ์๋๋ผ, ๋ช ๋ฒ์ ๋ช ๋ น์ด๋ง์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๊ฐ๋จํ ์ผ์ด ๋ฉ๋๋ค. ๊ทธ์ ์์ ํ ์ปค๋ฐ ๋ด์ญ์ ์ดํด๋ณด๊ณ , ๊ด์ฐฎ์ ๋ณด์ด๋ ์์ ์ผ๋ก ๋์๊ฐ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๊น์์๋ ์ด๋ฌํ ์์ ์ ๋ช ๊ฐ์ ๋ช ๋ น์ด๋ก ์ํํ ์ ์์ต๋๋ค.
์ฐ์ git log
๋ฅผ ํ์ฉํด ์ง๊ธ๊น์ง ์์
ํ ์ปค๋ฐ ๋ด์ญ์ ํ์ธํฉ๋๋ค. ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ๋ณด๊ณ ์ ๋นํ ์์ ์ผ๋ก git reset
๋ง ํด์ฃผ๋ฉด ๋ฉ๋๋ค. ๋ง์ง๋ง ์ปค๋ฐ์ผ๋ก ๋์๊ฐ๊ณ , ์ปค๋ฐ๋์ง ์์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ญ์ ํ๋ ค๋ฉด git resetโhard HEAD
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ณผ๊ฑฐ์ ํน์ ์ปค๋ฐ์ผ๋ก ๋์๊ฐ๊ณ , ๊ทธ ์ดํ์ ๋ชจ๋ ์ปค๋ฐ์ ์ญ์ ํ๊ธฐ ์ํด์๋ git log
๋ก ํ์ธํ ํด๋น ์ปค๋ฐ์ ํด์๋ฅผ ํ์ฉํด git reset โhard <ํด์>
์ ๊ฐ์ด ํ์ฉํฉ๋๋ค. ๋ง์ฝ ๊ณผ๊ฑฐ์ ์ปค๋ฐ์ผ๋ก ๋์๊ฐ๊ณ ๋ ์ถ์ง๋ง, ๊ทธ ์ดํ์ ์ปค๋ฐ์ ์ญ์ ํ์ง ์๊ณ ๋จ๊ฒจ๋๊ณ ์ถ๋ค๋ฉด git checkout <ํด์>
๋ฅผ ํ ์ ์์ต๋๋ค. ์ด ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ๋ธ๋์น์ ์ํ์ง ์์ ๋
๋ฆฝ์ ์ธ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๊ฒ ๋ฉ๋๋ค. ์ฌ๊ธฐ์์๋ถํฐ ์ฝ๋๋ฅผ ์ด์ด ๋๊ฐ๋ค๊ฐ ์ฝ๋๊ฐ ๋ง์์ ๋ ๋ค๋ฉด, git branch
๋ฅผ ํตํด ์๋ก์ด ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ์ฝ๋๋ฅผ ์ปค๋ฐํ๋ฉด ๋ฉ๋๋ค.
์ด์ฒ๋ผ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ์ฉํ๋ฉด ์ฝ๋๊ฐ ์ผ๋ง๋ ๋ง๊ฐ์ก๋์ง, ์ ์์ฑํด ๋์ ์ฝ๋๋ก ์ธ์ ๋ ์ง ๋์๊ฐ ์ ์์ต๋๋ค. ๋๋์๊ฐ ์์ ์์ ๋ค์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ผ๋, ์ต์ง๋ก ์ฝ๋๋ฅผ ์ด๋ฆฌ๋ ค๊ณ ์คํธ๋ ์ค๋ฐ์ง ์์๋ ๋ฉ๋๋ค. ๋์ ์๋กญ๊ฒ ์๊ฒ ๋ ๊ฒ๋ค์ ์ ์ฉํ์ฌ, ๋ค์ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด๋ฉด ์ข์ต๋๋ค.
๋ฒ์ ๊ด๋ฆฌ ํ์ฉ 2. ์ฌ๋ฌ ์์ ๋ ๋ฆฝ์ ์ผ๋ก ํ๊ธฐ
์ธ์ ๋ ์ง ๋์๊ฐ ์ ์๋ ์ฝ๋๊ฐ ์๋ค๋ ๊ฒ์ ์ด๋ค ์ฝ๋๋ผ๋ ๋ง์๊ป ์๋ํด ๋ณผ ์ ์๋ค๋ ์๋ฏธ์ ๋๋ค. ์กฐ์ฌ์ค๋ฝ๊ฒ ์งํํด์ผ ํ๋ ํฐ ๊ท๋ชจ์ ๋ฆฌํฉํ ๋ง์ด๋, ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ถ๊ฐ ๋ฑ ์๋ก์ด ํํ์ ์ฝ๋ ์์ฑ์ ๋์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ข ์ข ์ด๋ฌํ ์์ ๋ค์ ์๋ก ๊ฒน์น๊ธฐ๋ ํฉ๋๋ค. ํ๋ก์ ํธ์ ์ฝ๋๊ฐ ๋ณ๋ก์ธ ๊ฒ ๊ฐ์ ๋ฆฌํฉํ ๋งํ๊ณ ์๋๋ฐ, ์๋ก์ด ๊ธฐ๋ฅ์ ๋ง๋ค์ด์ผ ํ๋ ๊ฒฝ์ฐ์ฒ๋ผ ๋ง์ด์ฃ . ๋ฆฌํฉํ ๋ง์ด ํ์ฐฝ ์งํ ์ค์ธ ์ฝ๋์ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ง๋ค๋ฉด ์ฝ๋๊ฐ ์ํค๊ธฐ ์ฝ์ต๋๋ค. ์ด๋ด ๋ ๋ธ๋์น๋ฅผ ํ์ฉํ์ฌ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๋ค๋ฉด, ์งํ ์ค์ธ ์คํ์ ์ฝ๋๋ฅผ ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์์ ํ ์ ์๊ฒ ๋ฉ๋๋ค.
ํฐ ๊ท๋ชจ์ ๋ฆฌํฉํ ๋ง์ด๋ ์ ๊ธฐ๋ฅ์ ๋ง๋ค ๋ git branch
๋ฅผ ํตํด ์์
๊ณต๊ฐ์ ๋ถ๋ฆฌํด ๋ณด์ธ์. ๊ทธ๋ฆฌ๊ณ ์์
์ด ์๋ฃ๋์ง ์์๋๋ฐ ๋ค๋ฅธ ์์
์ ์์ํ ๋๊ฐ ์ค๋ฉด, ์์ ๋ธ๋์น์์ ๋ค์ ๋ณ๋์ ๋ธ๋์น๋ฅผ ์์ฑํด ๋ณด์ธ์. ์ฌ๋ฌ ์์
์ ์๋ก ๋
๋ฆฝ์ ์ผ๋ก ์์
ํ ์ ์์ผ๋ฏ๋ก, ๋ฆฌํฉํ ๋ง์ด๋ ์๋ก์ด ์ฝ๋๋ฅผ ์ธ์ ๋ ์๋ํ ์ ์์ต๋๋ค.

์๋ฅผ ๋ค์ด, develop์ด๋ผ๋ ์ด๋ฆ์ ๋ธ๋์น์์ ์์
์ค์ด๋ผ๋ฉด, ๋ฆฌํฉํ ๋ง์ ์ํด์๋ git branch refactoring
ํ, git checkout refactoring
์ผ๋ก ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ ํด๋น ๋ธ๋์น๋ก ์ด๋ํ ์ ์์ต๋๋ค.
๋ฆฌํฉํ ๋ง ๋์ค ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋ค๋ฉด, git checkout develop
๋ฅผ ํตํด ์์ ๋ธ๋์น๋ก ์ด๋ํ๊ณ , git branch login
ํ git checkout login
์ผ๋ก, ๋ฆฌํฉํ ๋ง ์ค์ธ ์ฝ๋์๋ ๋ฌด๊ดํ๊ฒ ๋ก๊ทธ์ธ ์ฝ๋๋ฅผ ์์
ํ ์ ์์ต๋๋ค. (git branch <๋ธ๋์น>
ํ git checkout <๋ธ๋์น>
๋ git checkout -b <๋ธ๋์น>
๋ก ์ค์ฌ์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.)
์์
์ด ๋๋๋ฉด git merge
๋ฅผ ํตํด ๋ธ๋์น์ ๋ณ๊ฒฝ ์ฌํญ์ ์์ ๋ธ๋์น์ ๋ฐ์ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ๋์ ์์
์ด ์๋ฒฝํ๊ฒ ์์ฑ๋์์ ๋๋ง ์์
๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ ์ ์๊ฒ ๋ฉ๋๋ค.
๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ์์
์ด ์๋ฃ๋์๋ค๋ฉด, git checkout develop
๋ก ์ด๋ํด git merge login
์ ํตํด ๋ก๊ทธ์ธ์ ์์
๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ git checkout refactoring
์ผ๋ก ๋ฆฌํฉํ ๋ง ๋ธ๋์น๋ก ๋์๊ฐ ํ, git merge develop
๋ฅผ ์คํํ๋ฉด ๋ฆฌํฉํ ๋ง ๋ธ๋์น์์๋ ๋ก๊ทธ์ธ ์ฝ๋๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ฒ์ ๊ด๋ฆฌ ํ์ฉ 3. ๊ณผ๊ฑฐ๋ก๋ถํฐ ๋ฐฐ์ฐ๊ธฐ
์ฐ๋ฆฌ๋ ํ ๋ฒ ๊ฒฝํํ๋ ์ผ์ด๋ผ๋ ๊ธ๋ฐฉ ์์ด๋ฒ๋ฆฝ๋๋ค. ๋ถ๋ช ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ์ ์ ํ๋ ์์ ์ธ๋ฐ, ์ด๋ป๊ฒ ํ๋์ง ๊ธฐ์ต๋์ง ์์ ์๋ฃ ์กฐ์ฌ๋ถํฐ ๋ค์ ํด์ผ ํ์ฃ . ์์ฑํด ๋ ์ฝ๋๋ฅผ ์ฐพ์๋ณธ๋ค๊ณ ํด๋, ํ๋์ ์์ ์ด ํ๋์ ์ฝ๋์๋ง ์ฐ๊ด๋ ๊ฒ์ด ์๋๋ผ, ๊ด๋ จ ์ฝ๋๋ฅผ ๋ชจ๋ ์ฐพ์๋ณด๋๋ผ ์๊ฐ์ ํ๋นํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ง๋ API๋ฅผ ์ฐ๋ํด ๋ฐฉ๋ฌธํ ์ฅ์์ ๊ทธ ์ด๋ ฅ์ ํ ํ์์ผ๋ก ํ์ํด์ผ ํ๋ ์ํฉ์ ํ ๋ฒ ๊ฒช์๋ค๋ฉด, API ์ฐ๋, ํ ํ์, ๋ฐฉ๋ฌธ ์ด๋ ฅ UI, ์๋ฒ์ ๋ฐ์ดํฐ ์์ฒญ๊ณผ ํ์ฑ ๋ฑ ๋ง์ ์์ ์ ํ์ ๊ฒ๋๋ค. ์ฌ๋ฌ ํ์ผ์ ๊ฑธ์ณ ์๋ ์ฝ๋๋ฅผ ์ดํด๋ณด๊ธฐ ์ํด์ ์ผ์ผ์ด ํ์ผ์ ์ด์ด ์ฐพ์๋ด์ผ ํฉ๋๋ค.
์ด๋ ์ปค๋ฐ์ ์ํด ๋์๋ค๋ฉด ๊ด๋ จ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํ๋์ ์ปค๋ฐ์์ ํ์ธํ ์ ์์ด, ์ด๋ฌํ ์๊ณ ๋ฅผ ๋ ์ ์์ต๋๋ค. ์์ ์ ์์ ํ ๋ ์ด๋ค ์ฝ๋๋ค์ ์์ฑํ๊ณ , ์ด๊ฒ๋ค์ด ์ด๋ป๊ฒ ์ฐ๊ด๋์ด ์๋์ง๋ฅผ ํ๋์ ํ์ ํ ์ ์์ฃ .

๋ ์๊ฐ์ด ์ง๋๋ฉด์ ์๋ก์ด ๊ธฐ๋ฅ์ด ๊ณ์ํด์ ์์ธ๋ค๋ฉด, ์ฝ๋๋ก ๊ตฌ๋ถ์ด ์ ์ ๋ ์ด๋ ค์์ง๋๋ค. ๋ง์ฝ ์ฌ๋ฌ ์ง๋๋ฅผ ์ง์ํ๋ค๋ฉด ๋ค์ํ ์ง๋ API ์ฐ๋์ ์ํ ๋ฆฌํฉํ ๋ง์ด ๋ฐ์ํ๊ณ , ๋ฐฉ๋ฌธ ์ด๋ ฅ๋ฟ๋ง ์๋๋ผ ํด๋น ์ง์ ์ ์์ธ ์ ๋ณด ํ์๊ฐ ์ถ๊ฐ๋ฉ๋๋ค. ๋ํ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ํ๋ฉด์ ์๋ฒ์ ๋ณด๋ด๋ ์์ฒญ ๋ฐฉ์์ด ๋ฌ๋ผ์ก๋ค๋ฉด, ์ฐพ๊ณ ์ ํ๋ ์ฝ๋๋ ์ด๋ฏธ ์์๋ณด๊ธฐ ํ๋ ์ํฉ์ด ๋์ด ์์ ๊ฒ๋๋ค.
๊ทธ๋ฌ๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ ๋ชจ๋ ์ปค๋ฐ์ ๋ํด ์ค๋ ์ท์ ์ ์ฅํ๋ฏ๋ก, ๊ธฐ๋ฅ์ ์ฒ์ ๊ตฌํํ์ ๋ ์ฆ, ํ์์ ์ธ ๋ณ๊ฒฝ ์ฌํญ๋ง ๊ณจ๋ผ์ ํ์ธํ ์ ์์ฃ . ์ด์ ๋ํด ์ฌ๋ฌ ์ง๋ API๋ฅผ ์ง์ํ๊ธฐ ์ํ ๋ฆฌํฉํ ๋ง์ ์ด๋ป๊ฒ ํ๋์ง, ์ค์๊ฐ ๋ฐ์ดํฐ ์์ฒญ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง ๋ฑ ์ ์ ๋ฆฌ๋ ๊ฒฝํ์ ์ฝ๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.
์ฌ๋ฐ๋ฅด๊ฒ ์ปค๋ฐํ๊ธฐ
์ง๊ธ๊น์ง ์ดํด๋ณธ ๋ฒ์ ๊ด๋ฆฌ ํ์ฉ๋ฒ์ ํตํด ์ต๋ ํจ์จ์ ์ด๋์ด๋ด๋ ค๋ฉด, ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ณผ์ ์์ ์ปค๋ฐ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํ๋ก์ ํธ๋ ์งํฅํ๋ ํ๋์ ํฐ ๋ชฉํ๊ฐ ์์ต๋๋ค. ์ด ๋ชฉํ๋ ๊ธฐ๋ฅ์ด๋ ์ฌ๋, ์ฐ์ ์์ ๋ฑ์ ๋ฐ๋ผ ์ฌ๋ฌ ์์ ๋ชฉํ๋ก ๋๋๊ณ , ์ด ๋ชฉํ๋ค์ ๋ค์ ๊ตฌํ ๊ณผ์ ๋ฑ์ ๋ ์์ ๋ชฉํ๋ค๋ก ์ธ๋ถํ๋ฉ๋๋ค. ์ด๋ฌํ ๊ณผ์ ์ ํตํด ๊ณ์ ๋ชฉํ๋ฅผ ์ ์ ๋ ์๊ฒ ๊ตฌ์ฒดํํ๋ค ๋ณด๋ฉด, ๊ฐ๋จํ๊ณ ๋ช ํํ๊ฒ ๊ตฌํํ ์ ์๋ ๋ชฉํ์ ๋๋ฌํ๊ฒ ๋ฉ๋๋ค. ์ ๋ ์ด๊ฒ์ ์ต์ ๋ชฉํ ๋จ์๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
์๋ฅผ ๋ค์ด, ๋ธ๋ก๊ทธ ์๋น์ค์ ๊ฒ์๊ธ ๋ฆฌ์คํธ๋ฅผ ๋ณด์ฌ์ค๋ค๋ ๋ชฉํ๊ฐ ์์ ๋, ์ด๊ฒ์ ํ์ด์ด๋ฒ ์ด์ค ์ฐ๋, ๊ฒ์๊ธ ๋ฆฌ์คํธ ๊ฐ์ ธ์ค๊ธฐ, ๋ฆฌ์คํธ์ ์คํ์ผ ์ ์ฉํ๊ธฐ ๋ฑ์ ์์ ๋ชฉํ๋ก ๋๋์ด์ง ์ ์์ต๋๋ค. ์ด๋ ์ต์ ๋ชฉํ ๋จ์๋ผ๊ณ ๋ถ๋ฅด๊ธฐ ์ํ ๋ชฉํ์ ํฌ๊ธฐ๋ ์ฌ๋๋ง๋ค ๋ค๋ฅผ ์ ์์ต๋๋ค. ๊ฒ์๊ธ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ธ์ค๋ ์์ ๊ณผ ์คํ์ผ ์ ์ฉํ๊ธฐ๋ฅผ ํฉ์ณ ์ต์ ๋จ์๋ผ๊ณ ๋ณผ ์๋ ์์ต๋๋ค.
์ปค๋ฐ์ ํ๋์ ์ต์ ๋ชฉํ ๋จ์๋ฅผ ๋ด๋นํด์ผ ํ๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ๋ถ๋ง์ ์ต์ ๋ชฉํ ๋จ์๋ฅผ ์ฐพ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด๋ ์ปค๋ฐ์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ์ปค์ง์ง ์๋๋ก, ๊ทธ๋ฆฌ๊ณ ์ปค๋ฐ์ ํฌํจ๋๋ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ต์ ๋จ์ ๋ชฉํ์๋ง ์ง์ค๋ ์ ์๋๋ก ์ ๊ฒฝ ์จ์ผ ํฉ๋๋ค.
๋ง์ฝ ๊ฒ์๊ธ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ๊ณผ, ์คํ์ผ์ ์ ์ฉํ๋ ๊ฒ ๋ชจ๋ ๊ฐ๋จํ๋ค๋ฉด ํ๋์ ์ปค๋ฐ์ผ๋ก ํฉ์น ์ ์์ ๊ฒ๋๋ค. ๊ทธ๋ฌ๋ ๊ฒ์๊ธ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ ๋ ฌ์ด๋ ํน์ ์กฐ๊ฑด์ผ๋ก ํํฐ๋ง, ํ์ด์ง๋ค์ด์ ๋ฑ ์ถ๊ฐ์ ์ธ ์ธ๋ถ ์ฌํญ์ ๊ตฌํํ๊ฑฐ๋, ์คํ์ผ์์๋ ๋ผ์ดํธ/๋คํฌ ๋ชจ๋, ๋ฐ์ํ ๋ฑ ๋ค๋ค์ผ ํ ๊ตฌ์ฒด์ ์ธ ๋ก์ง์ด ์๋ค๋ฉด, ์ปค๋ฐ์ ๋๋๋ ๊ฒ์ด ์ข์ ์๋ ์์ต๋๋ค.
ํต์ฌ์ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋ ผ๋ฆฌ๋ค์ด ์๋ก ๋ค์์ด์ง ์๊ณ , ์ปค๋ฐ์ผ๋ก ๊น๋ํ๊ฒ ์ ๋ฆฌ๋ ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ๋ชฉํ๋ฅผ ์ธ๋ถํํ๊ณ , ํ๋์ ๋ชฉํ์๋ง ์ง์คํ๋ ์ฐ์ต์ ํ๋ค ๋ณด๋ฉด, ํ๋ก์ ํธ๊ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์งํ๋๋ ๋๋์ ๋ฐ์ ์ ์์ต๋๋ค. ์ด๋ ์ ํ๊ณผ ์ง์ค์ ๋ํ ์ญ๋์ด ํฅ์๋๊ณ , ํ๋ก๊ทธ๋๋ฐ ์ค๋ ฅ๋ ํฌ๊ฒ ๋ฐ์ ํ ์ ์๋ ๊ฒ์ด์ฃ .
๋ง์น๋ฉฐ
๋ฒ์ ๊ด๋ฆฌ์ ์ํํ ํ๋ก์ ํธ๋ ์์นซ ๊ธธ์ ์๊ธฐ ์ฝ์ต๋๋ค. ์กฐ๊ทธ๋งํ ์ค์๋ ํ๋ก์ ํธ๊ฐ ์งํ์ ๋ฐ๋ผ ๋๋ฉ์ด์ฒ๋ผ ์ปค์ง ์ ์๊ณ , ๊ฒฐ๊ตญ ํ๋ก์ ํธ ์ ์ฒด๊ฐ ๊ฑท์ก์ ์ ์์ด ํ์ฒญ์ผ ์๋ ์์ต๋๋ค.
์ด๋ ๋ฒ์ ๊ด๋ฆฌ๋ ์ ์ ์์ด ๋ฌ๋ ค๊ฐ๋ ํ๋ก์ ํธ์์ ์ฌ๋ฌ๋ถ์ ์์ ๋ด์ญ์ ์ง์ผ์ฃผ๊ณ , ๋ชฉํ ์ธ๋ถํ๋ฅผ ํตํด ์ง์คํ ๋ ผ๋ฆฌ ๋จ์๋ฅผ ๊ณ ๋ฏผํจ์ผ๋ก์จ, ๋์ฑ ์ฑ์ฅํ ์ ์๊ฒ ํด์ฃผ๋ ์ค์ํ ์ต๊ด์ ๋๋ค. ๋ง์ฝ ํ๋ก์ ํธ๋ฅผ ํผ์ ์งํํ๊ฒ ๋๋๋ผ๋, ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํตํด ํ๋ก์ ํธ ๊ด๋ฆฌ๋ ๋ฌผ๋ก , ๋์ฑ ์ค๋ ฅ ์๋ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํ ๊ธฐํ๋ก ํ์ฉํด ๋ณด๊ธธ ๋ฐ๋๋๋ค.