์จ๋ผ์ธ์์ ํ ์คํธ๋ฅผ ๋น๊ตํ๋ ๋ฐฉ๋ฒ: Diff ๋๊ตฌ ์ฌ์ฉ ๊ฐ์ด๋
์จ๋ผ์ธ์์ ํ ์คํธ๋ฅผ ๋น๊ตํ๋ ๋ฐฉ๋ฒ: Diff ๋๊ตฌ ์ฌ์ฉ ๊ฐ์ด๋
๋ ํ ์คํธ ์กฐ๊ฐ์ ๋น๊ตํ์ฌ ์ฐจ์ด์ ์ ์ฐพ๋ ์์ (diffing)์ ๊ฐ๋ฐ์, ์๊ฐ, ํธ์ง์ ๋ฐ ๋ฌธ์ ์์ ์ ํ๋ ๋ชจ๋ ์ฌ๋์๊ฒ ํ์์ ์ธ ์์ ์ ๋๋ค. ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒํ ํ๊ฑฐ๋, ํ์ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ฑฐ๋, ํ์ผ์ ๋ ๋ฒ์ ๊ฐ์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋จ์ํ ํ์ธํ๋ ค๋ ๊ฒฝ์ฐ, ํ ์คํธ diff ๋๊ตฌ๋ ์ด ๊ณผ์ ์ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ๋ง๋ค์ด ์ค๋๋ค.
์ด ๊ฐ์ด๋์์๋ ์จ๋ผ์ธ์์ ํ ์คํธ๋ฅผ ๋น๊ตํ๋ ๋ฐฉ๋ฒ(diff ๋๊ตฌ์ ์๋ ๋ฐฉ์, ์ฌ์ฉ ์๊ธฐ, ๊ฒฐ๊ณผ ํด์ ๋ฐฉ๋ฒ)์ ๋ํด ์์์ผ ํ ๋ชจ๋ ๊ฒ์ ๋ค๋ฃน๋๋ค.
ํ ์คํธ ๋น๊ต๋ ๋ฌด์์ธ๊ฐ์?
ํ ์คํธ ๋น๊ต(diffing)๋ ๋ ํ ์คํธ๋ฅผ ๋ถ์ํ์ฌ ๋ชจ๋ ์ฐจ์ด์ ์ ์๋ณํ๋ ๊ณผ์ ์ ๋๋ค. diff ๋๊ตฌ๋ ๋ค์์ ๊ฐ์กฐ ํ์ํฉ๋๋ค:
- ์ถ๊ฐ(Additions): ์ ๋ฒ์ ์๋ ์์ง๋ง ์ด์ ๋ฒ์ ์๋ ์๋ ํ ์คํธ์ ๋๋ค.
- ์ญ์ (Deletions): ์ด์ ๋ฒ์ ์์ ์ ๊ฑฐ๋ ํ ์คํธ์ ๋๋ค.
- ์์ (Modifications): ๋ ๋ฒ์ ๊ฐ์ ๋ณ๊ฒฝ๋ ์ค์ ๋๋ค.
diff๋ผ๊ณ ํ๋ ์ถ๋ ฅ์ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ํ๋์ ์ฝ๊ธฐ ์ฌ์ด ๊ตฌ์กฐํ๋ ํ์์ผ๋ก ๋ณด์ฌ์ค๋๋ค.
์จ๋ผ์ธ์์ ํ ์คํธ๋ฅผ ๋น๊ตํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
์จ๋ผ์ธ diff ๋๊ตฌ๋ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋นํด ์ฌ๋ฌ ๊ฐ์ง ์ฅ์ ์ ์ ๊ณตํฉ๋๋ค:
- ์ค์น ๋ถํ์: ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด๊ณ ์ฆ์ ๋น๊ต๋ฅผ ์์ํ ์ ์์ต๋๋ค.
- ํฌ๋ก์ค ํ๋ซํผ: Windows, macOS, Linux, Chromebook์์ ์๋ํฉ๋๋ค.
- ๊ฐ์ธ์ ๋ณด ๋ณดํธ: ๋ง์ ์ต์ ๋๊ตฌ์ ๊ฒฝ์ฐ ๋ชจ๋ ์ฒ๋ฆฌ๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฃจ์ด์ง๋ฏ๋ก ํ์ผ์ด ๊ธฐ๊ธฐ๋ฅผ ๋ฒ์ด๋์ง ์์ต๋๋ค.
- ์๋: ์ค์ ์ด๋ ๊ตฌ์ฑ ์์ด ๋ช ์ด ๋ง์ ๋ถ์ฌ๋ฃ๊ณ ๋น๊ตํ ์ ์์ต๋๋ค.
ํ ์คํธ Diff ๋๊ตฌ ์ฌ์ฉ ๋ฐฉ๋ฒ
์จ๋ผ์ธ diff checker๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋จํ ์ํฌํ๋ก์ฐ๋ฅผ ๋ฐ๋ฆ ๋๋ค:
1๋จ๊ณ: ํ ์คํธ ์ ๋ ฅ
๋๋ถ๋ถ์ diff ๋๊ตฌ๋ ๋ ๊ฐ์ ํ ์คํธ ์์ญ์ ์ ๊ณตํฉ๋๋ค. ํ๋๋ "Original" ๋๋ "Old Text"๋ก, ๋ค๋ฅธ ํ๋๋ "Changed" ๋๋ "New Text"๋ก ๋ ์ด๋ธ์ด ์ง์ ๋์ด ์์ต๋๋ค. ๋ ๋ฒ์ ์ ๊ฐ๊ฐ์ ํ๋์ ๋ถ์ฌ๋ฃ์ผ์ธ์.
์๋ฅผ ๋ค์ด:
| Original | Changed | |----------|---------| | Hello world | Hello beautiful world | | This is a test | This is a test | | Goodbye for now | See you later |
2๋จ๊ณ: ๋น๊ต ์์
"Compare" ๋๋ "Diff" ๋ฒํผ์ ํด๋ฆญํ์ธ์. ๋๊ตฌ๋ ๋ ํ ์คํธ๋ฅผ ์ค ๋จ์๋ก, ๋ฌธ์ ๋จ์๋ก ์ฒ๋ฆฌํ์ฌ ๋ชจ๋ ์ฐจ์ด์ ์ ์๋ณํฉ๋๋ค.
3๋จ๊ณ: ๊ฒฐ๊ณผ ๊ฒํ
๋น๊ต ๋ณด๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์์ ์ฝ๋ฉ์ ์ฌ์ฉํฉ๋๋ค:
- ๋ น์ ๋๋ ๊ฐ์กฐ ํ์๋ ๋ฐฐ๊ฒฝ์ ์ถ๊ฐ๋ ํ ์คํธ๋ฅผ ๋ํ๋ ๋๋ค.
- ๋นจ๊ฐ์ ๋๋ ์ทจ์์ ์ ์ญ์ ๋ ํ ์คํธ๋ฅผ ๋ํ๋ ๋๋ค.
- ํฐ์ ๋๋ ๊ฐ์กฐ ํ์ ์์์ ๋ณ๊ฒฝ๋์ง ์์ ํ ์คํธ๋ฅผ ๋ํ๋ ๋๋ค.
๋ง์ ๋๊ตฌ๋ ๋ ๊ฐ์ง ํ์ ๋ชจ๋๋ฅผ ์ ๊ณตํฉ๋๋ค:
- ๋ณ๋ ฌ ๋ณด๊ธฐ(Side-by-side view): ๋๊ธฐํ๋ ์คํฌ๋กค๋ก ๋ ๋ฒ์ ์ ๋๋ํ ๋ณด์ฌ์ค๋๋ค. ํฐ ๋ฌธ์๋ฅผ ๊ฒํ ํ ๋ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค.
- ์ธ๋ผ์ธ ๋ณด๊ธฐ(Inline view): ์ถ๊ฐ ๋ฐ ์ญ์ ์ฌํญ์ด ์ธ๋ผ์ธ์ผ๋ก ํ์๋ ๋ณํฉ๋ ๋จ์ผ ๋ณด๊ธฐ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ง์ค์ ์ธ ์ฝ๊ธฐ์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค.
์ค์ฉ์ ์ธ ์: ํ ์คํธ ๋น๊ต
๋ค์์ diff ์ถ๋ ฅ์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง ๋ณด์ฌ์ฃผ๋ ๊ฐ๋จํ ์์ ๋๋ค. ์ด ๋ ๋ฌธ์ฅ์ ๋น๊ตํ ๋:
Old: The quick brown fox jumps over the lazy dog.
New: The quick brown fox jumps over the sleepy cat.
diff ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณด๊ณ ํฉ๋๋ค:
- "lazy"๊ฐ ์ญ์ ๋์์ต๋๋ค(๋นจ๊ฐ์์ผ๋ก ํ์๋จ).
- "sleepy"๊ฐ "cat" ์์ ์ถ๊ฐ๋์์ต๋๋ค(๋ น์์ผ๋ก ํ์๋จ).
- "dog"๊ฐ ์ญ์ ๋์์ต๋๋ค(๋นจ๊ฐ์์ผ๋ก ํ์๋จ).
- "cat"์ด "sleepy" ๋ค์ ์ถ๊ฐ๋์์ต๋๋ค(๋ น์์ผ๋ก ํ์๋จ).
ํ ์คํธ ๋น๊ต์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก
์ฝ๋ ๋ฆฌ๋ทฐ
๊ฐ๋ฐ์๋ pull request๋ฅผ ๋ณํฉํ๊ธฐ ์ ์ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋น๊ตํฉ๋๋ค. diffing์ ์ถ๊ฐ, ์ ๊ฑฐ ๋๋ ์์ ๋ ์ค์ ์ ํํ ๊ฐ์กฐ ํ์ํ์ฌ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ๋ง๋ญ๋๋ค.
๋ฌธ์ ๋ฒ์ ๊ด๋ฆฌ
์๊ฐ์ ํธ์ง์๋ ์ด์ ๊ฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํฉ๋๋ค. ๋ ๋ฒ์ ์ ๋น๊ตํ๋ฉด ๋ฌด์์ด ์์ ๋์๋์ง ์๋ณํ๋ ๋ฐ ๋์์ด ๋๋ฉฐ, ์ค์๋ก ์์ค๋๊ฑฐ๋ ๊ฐ๊ณผ๋๋ ๋ด์ฉ์ด ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
๊ตฌ์ฑ ํ์ผ ๊ฐ์ฌ
์์คํ ๊ด๋ฆฌ์๋ ์๋ฒ ๋๋ ํ๊ฒฝ ๊ฐ์ ๊ตฌ์ฑ ํ์ผ์ ๋น๊ตํฉ๋๋ค. diff๋ ํ๋ก๋์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ์๋ํ์ง ์์ ํธ์ฐจ๋ฅผ ๋น ๋ฅด๊ฒ ๋๋ฌ๋ ๋๋ค.
๋ฐ์ดํฐ ๊ฒ์ฆ
ํ ์คํฐ๋ ์์ ์ถ๋ ฅ๊ณผ ์ค์ ์ถ๋ ฅ์ ๋น๊ตํฉ๋๋ค. ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ๋ ๋ก๊ทธ ํ์ผ์ ์๋์ผ๋ก diffingํ๋ ๊ฒ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ง๋ง, ์๋ํ๋ ๋๊ตฌ๋ ๋ชจ๋ ๋ถ์ผ์น๋ฅผ ์ก์๋ ๋๋ค.
๋ ๋์ ํ ์คํธ ๋น๊ต๋ฅผ ์ํ ํ
๊ณต๋ฐฑ ์ ๊ทํ
๋ค์ชฝ ๊ณต๋ฐฑ๊ณผ ์ผ๊ด๋์ง ์์ ์ค ๋์ diff์์ ๊ฑฐ์ง ์์ฑ์ ์์ฑํ ์ ์์ต๋๋ค. ์๋ฏธ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ง์คํ๊ธฐ ์ํด "๊ณต๋ฐฑ ๋ฌด์" ์ต์ ์ ์ ๊ณตํ๋ ๋๊ตฌ๋ฅผ ์ฐพ์ผ์ธ์.
๋จผ์ ์ค ๋จ์๋ก ๋น๊ตํ๊ธฐ
ํฐ ๋ฌธ์์ ๊ฒฝ์ฐ, ๋จผ์ ์ค ์์ค diff๋ก ์์ํ์ฌ ์ด๋ค ์น์ ์ด ๋ณ๊ฒฝ๋์๋์ง ๊ฐ์๋ฅผ ํ์ ํ์ธ์. ํ์ํ ๊ฒฝ์ฐ์๋ง ๋ฌธ์ ์์ค ์ธ๋ถ ์ ๋ณด๋ฅผ ์ํด ํน์ ์น์ ์ผ๋ก ๋๋ฆด๋ค์ดํ์ธ์.
์์ ์ ์ ํฉํ ๋๊ตฌ ์ฌ์ฉํ๊ธฐ
- ์งง์ ์ค๋ํซ(100์ค ๋ฏธ๋ง): ์ต๋ ์ ๋ฐ๋๋ฅผ ์ํ ๋ฌธ์ ์์ค diff.
- ์ฝ๋ ํ์ผ: ๊ตฌ๋ฌธ ๊ฐ์กฐ ํ์๊ฐ ์๋ ์ค ์์ค diff.
- ๊ตฌ์ฑ ํ์ผ: ๊ณต๋ฐฑ์ด ๋ฌด์๋ ์ค ์์ค diff.
์ง๊ธ ์ฌ์ฉํด ๋ณด์ธ์
์ ํฌ ๋ฌด๋ฃ ํ ์คํธ diff checker๋ ์ฆ๊ฐ์ ์ธ ๋ณ๋ ฌ ๋ฐ ์ธ๋ผ์ธ ๋น๊ต ๋ณด๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ ํ ์คํธ๋ฅผ ๋ถ์ฌ๋ฃ๊ณ Compare๋ฅผ ํด๋ฆญํ๋ฉด ๋ชจ๋ ์ฐจ์ด์ ์ด ๋ช ํํ๊ฒ ๊ฐ์กฐ ํ์๋ฉ๋๋ค. ๊ฐ์ ๋ถํ์, ์ ๋ก๋ ๋ถํ์, ์์ ํ ๊ฐ์ธ์ ๋ณด ๋ณดํธ.