๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Dev/GIT

Git์˜ ์ €์žฅ ๋ฐฉ์‹: ์Šค๋ƒ…์ƒท(Snapshot)๊ณผ ๋ธํƒ€(Delta)

yesolz 2024. 8. 15. 02:08
728x90

 

commit์„ ํ•˜๋ฉด ๊ทธ ํ”„๋กœ์ ํŠธ์˜ ๋ฒ„์ „์„ ํ†ต์งธ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ!?

ํ•œ ์ˆ˜์—…์—์„œ ๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ ์ด๋ ‡๊ฒŒ ๋ง์”€ํ•˜์…จ๋‹ค. 

์ด ๋ง์ฒ˜๋Ÿผ, ์ปค๋ฐ‹์„ ๋“ค์–ด๊ฐ€ browse files ํ•˜๋ฉด ? ๊ทธ ๋‹น์‹œ์˜ ํ”„๋กœ์ ํŠธ์˜ ์ƒํƒœ, ๋ฒ„์ „์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด Git์€ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์ €์žฅํ•˜๋Š” ๊ฑธ๊นŒ? -> ๋‹น์—ฐํžˆ ์•„๋‹ˆ๋‹ค. 

Git์˜ ์ €์žฅ ๋ฐฉ์‹์€ ํšจ์œจ์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉฐ,
์ด๋Š” ์Šค๋ƒ…์ƒท(Snapshot)๊ณผ ๋ธํƒ€(Delta, Δ ๋ณ€ํ™”๋Ÿ‰)์˜ ๊ฐœ๋…์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

1. ์Šค๋ƒ…์ƒท(Snapshot)

  • Git์€ ๊ฐ ์ปค๋ฐ‹ ์‹œ์ ์—์„œ ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ์Šค๋ƒ…์ƒท์œผ๋กœ ์ €์žฅํ•จ. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ํŒŒ์ผ์„ ๋งค๋ฒˆ ๋ณต์‚ฌํ•˜์ง€ ์•Š์Œ. ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋งŒ ์ƒˆ๋กญ๊ฒŒ ์ €์žฅํ•˜๊ณ , ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ํŒŒ์ผ์€ ์ด์ „ ์ปค๋ฐ‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•จ.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, 100๊ฐœ์˜ ํŒŒ์ผ์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ 2๊ฐœ์˜ ํŒŒ์ผ๋งŒ ์ˆ˜์ •๋œ ๊ฒฝ์šฐ, Git์€ ๊ทธ 2๊ฐœ์˜ ํŒŒ์ผ๋งŒ ์ƒˆ๋กœ ์ €์žฅํ•˜๊ณ  ๋‚˜๋จธ์ง€ 98๊ฐœ์˜ ํŒŒ์ผ์€ ์ด์ „ ์ปค๋ฐ‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•จ.

2. ๋ธํƒ€(Delta)

  • Git์€ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„(๋ธํƒ€)๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ. ์ฆ‰, ํ…์ŠคํŠธ ํŒŒ์ผ์—์„œ ํ•œ ์ค„๋งŒ ์ˆ˜์ •๋˜์—ˆ์„ ๊ฒฝ์šฐ, ๊ทธ ์ค„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ๊ธฐ๋กํ•จ.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, 500์ค„์˜ ์ฝ”๋“œ์—์„œ 5์ค„๋งŒ ์ˆ˜์ •๋˜์—ˆ๋‹ค๋ฉด, Git์€ ๊ทธ 5์ค„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ์ €์žฅํ•จ.

3. Garbage Collection (GC)

  • Git์€ ์ €์žฅ ๊ณต๊ฐ„์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด Garbage Collection(GC)์„ ์‹คํ–‰ํ•จ. GC๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ ํŒŒ์ผ์„ ์ „์ฒด ์Šค๋ƒ…์ƒท์œผ๋กœ ์œ ์ง€ํ•˜๊ณ , ์ด์ „ ๋ฒ„์ „๋“ค์€ ๋ธํƒ€๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ด€๋ฆฌํ•จ.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, 5MB ํŒŒ์ผ์„ 10๋ฒˆ ์ˆ˜์ •ํ–ˆ๋‹ค๊ณ  ํ•  ๋•Œ, Git์€ ํ•„์š”์— ๋”ฐ๋ผ ์ฒซ ์ปค๋ฐ‹์€ ์ „์ฒด ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ณ , ๋‚˜๋จธ์ง€๋Š” ๋ธํƒ€๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ. ๋ธํƒ€๊ฐ€ ํšจ์œจ์ ์ด์ง€ ์•Š์„ ๊ฒฝ์šฐ, Git์€ ์ค‘๊ฐ„์— ๋‹ค์‹œ ์ „์ฒด ์Šค๋ƒ…์ƒท์„ ์ €์žฅํ•  ์ˆ˜๋„ ์žˆ์Œ.

4. ์ฒดํฌ์•„์›ƒ(Checkout)

  • ํŠน์ • ์ปค๋ฐ‹์„ ์ฒดํฌ์•„์›ƒํ•˜๋ฉด Git์€ ํ•ด๋‹น ์‹œ์ ์˜ ์Šค๋ƒ…์ƒท์„ ๋ณต์›ํ•จ. ๋งŒ์•ฝ ๊ณผ๊ฑฐ ์ปค๋ฐ‹์œผ๋กœ ๋Œ์•„๊ฐ€๋ฉด ์ตœ์‹  ์Šค๋ƒ…์ƒท์— ๋ธํƒ€๋ฅผ ์ ์šฉํ•˜์—ฌ ๊ทธ ์‹œ์ ์˜ ํŒŒ์ผ ์ƒํƒœ๋ฅผ ์žฌํ˜„ํ•จ.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•œ ์ปค๋ฐ‹์œผ๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•  ๊ฒฝ์šฐ, Git์€ ์ตœ์‹  ํŒŒ์ผ๊ณผ ๋ธํƒ€๋ฅผ ์กฐํ•ฉํ•ด ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ์ ์˜ ํŒŒ์ผ์„ ์ •ํ™•ํžˆ ๋ณต์›ํ•จ.

5. Git์˜ ํŒ๋‹จ

  • Git์€ ๊ฐ ์ปค๋ฐ‹์—์„œ ์Šค๋ƒ…์ƒท๊ณผ ๋ธํƒ€ ์ค‘ ๋ฌด์—‡์„ ์ €์žฅํ• ์ง€ ์Šค์Šค๋กœ ํŒ๋‹จํ•จ. ํฐ ๋ณ€๊ฒฝ์ด ์žˆ์„ ๊ฒฝ์šฐ ์Šค๋ƒ…์ƒท์œผ๋กœ, ์ž‘์€ ๋ณ€๊ฒฝ์ด ์žˆ์„ ๊ฒฝ์šฐ ๋ธํƒ€๋กœ ์ €์žฅํ•จ.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๋ฏธ์ง€ ํŒŒ์ผ๊ณผ ๊ฐ™์ด ์ „์ฒด๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ๋Š” ์Šค๋ƒ…์ƒท์œผ๋กœ, ์ฝ”๋“œ์˜ ๋ช‡ ์ค„๋งŒ ์ˆ˜์ •๋œ ๊ฒฝ์šฐ๋Š” ๋ธํƒ€๋กœ ์ฒ˜๋ฆฌํ•จ.

 

์ฐธ๊ณ 
https://github.com/sujinnaljin/TIL/blob/master/git%EC%9D%98%20%EC%A0%80%EC%9E%A5%EB%B0%A9%EC%8B%9D%20(feat.%20snapshot%20%26%20delta).md

 

728x90