
์ง์ ๋ง๋ค๋ฉด์ ๋ฐฐ์ฐ๋ Git Internals
Jayce
๋ฒ์ ๊ด๋ฆฌ ๋๊ตฌ์ ์ฌ์ค์ ํ์ค์ธ Git ๋์์ ๊น๊ฒ ํ์ตํ๊ณ ์ง์ ๋ง๋ค์ด๋ณด์ธ์!
์ด๊ธ
Git, internals, Go
์ ๋ช ํ ๋ ผ๋ฌธ, ์ฑ , ์ํฐํด์ ํตํด ๊ธ๋ก๋ฒ ์ค์ผ์ผ์ ์๋น์ค์ ๊ณตํต์ ์ธ ์ปดํฌ๋ํธ๋ฅผ ํ์ตํด์.
์์คํ ์ค๊ณ
์ปดํจํฐ๊ณตํ
๋ถ์ฐ์์คํ
๋ณต์กํ๊ณ ์ด๋ ค์ ๋ณด์ด๋ ๋ถ์ฐ ์์คํ
,
์ฌ์ค ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํจํด์ด ์๋ค๋ ๊ฑฐ ์์๋์? โญ
๋๊ท๋ชจ ์์คํ ์ ๊ฒฝํํ ์ ์๋๋ฐ, ์ด์งํ๊ณ ์ถ์ ํ์ฌ๋ ๋๊ท๋ชจ ์์คํ ์ง์์ ์๊ตฌํ๋ค...
๋ถ์ฐ ์์คํ ์ ๊ณต๋ถํด ๋ณด๊ณ ์ถ์๋ฐ ์ด๋์๋ถํฐ ์์ํด์ผ ํ์ง?
๋๊ท๋ชจ ์์คํ ์ ๋ง๋ค์ด์ผ ํ๋๋ฐ, ์ด๋ค ๋ฌธ์ ๊ฐ ์์์ง, ์ด๋ป๊ฒ ํด๊ฒฐํ๋ ๊ฒ ์ข์์ง ๋ชจ๋ฅด๊ฒ ์ด.
๋ถ์ฐ ์์คํ ์ ์ ๋ง ์ด๋ ค์ด ์์ญ์ด์์. ๋ถ์ฐ ์์คํ ์ผ๋ก ๊ตฌ์ฑ๋ ์๋น์ค๊ฐ 100๊ฐ๊ฐ ์๋ค๋ฉด ๊ฐ ์๋น์ค๋ ์ํฉ์ ๋ง๊ฒ ๋ชจ๋ ๋ค๋ฅธ ์ ๋ต์ผ๋ก ๋ถ์ฐ ์์คํ ์ ํ์ฉํ๊ณ ์์ต๋๋ค. ํ์ง๋ง ๋ถ์ฐ ์์คํ ์์ ํด๊ฒฐํด์ผ ํ๋ ๋ฌธ์ ๋ ์ผ๋ฐ์ ์ธ ํจํด์ ๋ฐ๋ฅด๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์. ๋ฐ๋ผ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ๋ ํจํดํ๋์ด ์์ด์.
๊ฐ์์์๋ Planet-scale์ ์๋น์ค๋ค์ด ์ด๋ค ๊ณ ๋ฏผ์ ํ๋ฉด์ ๊ฐ๋ฐ๋์์ง ์ ๋ช ํ ๋ ผ๋ฌธ์ ํตํด ๊ณต๋ถํด์. ๋๊ท๋ชจ ์๋น์ค์์ ๋ง๋ ์ ์๋ ๊ณตํต์ ์ธ ๋ฌธ์ ๋ฅผ ์ ๋ช ํ ์ฑ , ๋ ผ๋ฌธ, ์ํฐํด์ ํตํด ํ์ตํฉ๋๋ค.
์ ๊ฐ ์ฃผ๋์ด ๋ ํ์ฌ ์๋์ด๋ถ์๊ฒ "์ ๊ฐ ๋๊ท๋ชจ ์์คํ ์ ๊ฐ๋ฐํด ๋ณธ ์ ์ด ์์ผ๋, ์ง๊ธ ๋ง๋ค๊ณ ์ ํ๋ ๊ฒ์ด ์ข์ ๋ฐฉ๋ฒ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ด์."๋ผ๋ ์๊ธฐ๋ฅผ ํ ์ ์ด ์์ด์.
์๋์ด๋ถ์ ์ ์๊ฒ "์๋ฌด๋ ํ์ฌ ์ํฉ์ ์ ํํ ๊ฒฝํํด ๋ณธ ์ ์ ์์ด์. ๋๊ท๋ชจ ์์คํ ์ ํ์ฌ๋ง๋ค ๋ง์ฃผํ๋ ๋ํ ์ผํ ๋ฌธ์ ๊ฐ ๋ค๋ฅด๊ฑฐ๋ ์. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋น์ทํ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ๊น๊ฒ ๊ณต๋ถํด์ ์ฐ๋ฆฌ์ ๋ง๋ ํด๊ฒฐ์ฑ ์ ์ฐพ์์ผ ํด์."๋ผ๋ ๋ง์ ํด์ฃผ์ จ์ต๋๋ค.
์ ๋ ์ด๋ฐ ๋ฌธ์ ๋ค์ ๊ณต๋ถํ๊ธฐ ์์ํ๊ณ ์ด ๊ณผ์ ์์ ์ด๋ป๊ฒ ๊ณต๋ถํ๋ฉด ์์ง๋์ด๋ก์ ์ฑ์ฅํ ์ ์๋ค๋ ๊ฑธ ์๊ฒ ๋์ต๋๋ค. ์ ๊ฐ์๋ฅผ ํตํด ์ฃผ๋์ด ๊ฐ๋ฐ์ ์ฌ๋ฌ๋ถ๋ค์ด ๊น์ด ์๊ฒ ๊ณต๋ถํ๋ ๋ฐฉ๋ฒ์ ์ ์ ์๊ฒ ๋๋ฉด ์ข๊ฒ ๋ค์.
๊ฐ์์์๋ ๋ถ์ฐ ์์คํ ์ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ธ Replication, Sharding, Consistent Hashing ๋ฑ ์ปดํฌ๋ํธ๋ฅผ ๋ฐฐ์๋๋ค. ์ดํ, ๋ฐฐ์ด ์ปดํฌ๋ํธ๋ค์ด ์ ์ฉ๋ ์ ๋ช ํ ์ค์ ์ฌ๋ก๋ฅผ ํ์ตํฉ๋๋ค.
์น์ 0 Introduction
๊ฐ์ ์ ๋ฐ์ ์๊ฐํฉ๋๋ค. ๊ฐ์ ๋ชฉํ ๋ฐ ์๊ฐ ๋์, ๊ฐ์ ์ฃผ์ ๋ด์ฉ ๋ฐ ์งํ ๋ฐฉ์์ ํ์ธํ ์ ์์ต๋๋ค.
์น์ 1 ๋๊ท๋ชจ ์์คํ ๊ธฐ๋ณธ ์ด๋ก
์์คํ ์ค๊ณ์ ๋์ ์ ์ธ CAP ์ด๋ก ๊ณผ ๋ถ์ฐ ์ ์ฅ๊ธฐ๋ฒ์ธ ๋ ํ๋ฆฌ์ผ์ด์ , ํํฐ์ ๋, ์ค๋ฉ์ ํ์ตํฉ๋๋ค.
์น์ 2 ๋ถ์ฐ ์์คํ ์ ์ปดํฌ๋ํธ
๋ถ์ฐ ์์คํ ์ค๊ณ ์ ์์ฃผ ์ ํ๊ฒ ๋๋ ์ปดํฌ๋ํธ์ธ Consistent Hashing, Rate Limiter(์ฒ๋ฆฌ์จ ์ ์ด), Unique ID Generator๋ฅผ ํ์ตํฉ๋๋ค.
์น์ 3 Case Study
๋ ผ๋ฌธ์ ๋ฐํ์ผ๋ก ๊ธ๋ก๋ฒ ๊ธฐ์ ์ธ ์๋ง์กด, ํ์ด์ค๋ถ, ์ธ์คํ๊ทธ๋จ์ ๋ถ์ฐ์์คํ ๊ตฌํ ์ฌ๋ก๋ฅผ ์ดํด๋ด ๋๋ค.
๐ข ์๊ฐ ์ ํ์ธํด ์ฃผ์ธ์!
๋๊ท๋ชจ ์์คํ ์ค๊ณ๋ฅผ ๊ฒฝํํด ๋ณธ ์ ์๋ ์ฃผ๋์ด ๊ฐ๋ฐ์
๋ถ์ฐ ์์คํ ์ ์ปดํฌ๋ํธ๋ฅผ ๊ณต๋ถํ๊ณ ์ถ์ ๊ฐ๋ฐ์
๋ณต์กํ ์์คํ ์ ๊ฑฐ์์ ์ด๊ณ ์ด๋ก ์ ์ผ๋ก ๊ณต๋ถํ๊ณ ์ถ์ ๋ถ
๋ฐฑ์๋ ์์คํ ์ ๊ฐ๋ฐํ๋ 1~3๋ ์ฐจ ๋ฐฑ์๋ ๊ฐ๋ฐ์
๐ ์ด ๊ฐ์์ ํจ๊ปํด์!
Q. ์ปดํจํฐ ๊ณตํ์ ์ ๋ชจ๋ฅด๋๋ผ๋ ๊ด์ฐฎ์๊น์?
๊ธฐ๋ณธ์ ์ธ CS ์ง์์ด ์๊ตฌ๋๊ธด ํฉ๋๋ค. ์ด๋ ์ ๋๋ฅผ ๊ธฐ๋ณธ์ด๋ผ๊ณ ๋ง์๋๋ฆฌ๊ธฐ ์ด๋ ต์ง๋ง, Backend ์์ง๋์ด๋ก ์ผํ ์ ์๋ ์ ๋๋ผ๋ฉด ๋๋จธ์ง ๋ถ์กฑํ ์ง์์ ์ง๋ฌธ๊ณผ ๊ฒ์์ผ๋ก ํด๊ฒฐํ ์ ์์ ๊ฒ์ผ๋ก ์์๋ผ์.
Q. ์ค์ต์ด ์๋์?
์ด ๊ฐ์๋ ์ด๋ก ๊ฐ์์ ๋๋ค. ๋ถ์ฐ ์์คํ ์ ๊ฐ๋จํ๋ผ๋ ๊ฐ๋ฐํด ๋ณด๋ ๊ฒ์ ์ ๋ง ์ ์๋ฏธํ ๊ณต๋ถ ๋ฐฉ๋ฒ์ด์ง๋ง, ๋ถ์ฐ ์์คํ ์ด ์ด๋ ค์ด ์ด์ ๋ ์ฅ์ ์ํฉ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ์ ์๋ ๋คํธ์ํฌ ์ฅ์ ๋ฅผ ์๋ฎฌ๋ ์ด์ ํด ๋ณด๋ ํ๊ฒฝ๊น์ง ๊ตฌ์ถํ๊ธฐ๋ ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ์ด ๊ฐ์์์๋ ๊ตฌํ ์ค์ต์ด ์์ต๋๋ค. ๋์ ์ค์ ์ฌ๋ก๊ฐ ์ด๋ป๊ฒ ์ฅ์ ๋ฅผ ํด๊ฒฐํ๋์ง ํ์ตํ ์ ์์ด์.
Q. ์ด ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด ์ด๋ค ๊ฑธ ๊ธฐ๋ํ ์ ์์๊น์?
์ด ๊ฐ์ ์๋ฆฌ์ฆ๋ ์ฃผ๋์ด ๊ฐ๋ฐ์๋ถ๋ค์ด ๋ถ์ฐ ์์คํ ์ง์์ ์ฉ์ด์ง์ฒ๋ผ ์ฌ์ฉ๋๊ธธ ๋ฐ๋๋๋ค. ๋ถ์ฐ ์์คํ ์์ ์ฌ์ฉ๋๋ ์ ๋ง ๊ณตํต์ ์ด๊ณ ์ ๋ช ํ ๋ฌธ์ ์ ์๋ฃจ์ ์ ์ด ๊ฐ์๋ก๋ถํฐ ์ต๋ํ๊ณ ์ ์ฌํ ๋ฌธ์ ๋ฅผ ๋ง๋๊ฑฐ๋ ํด๊ฒฐํ๋๋ก ์ค๊ณ๋ฅผ ํ ์ผ์ด ์์ ๋ ์ด ๊ฐ์ ๋ด์ฉ์ ๋ ์ฌ๋ฆด ์ ์์ต๋๋ค. ๋๋ ์์คํ ์ค๊ณ๋ฅผ ์๊ตฌํ๋ ๋ฉด์ ์์๋ ์ค๋๋ ฅ ์๋ ์ฃผ์ฅ์ ํ ์ ์์ด์.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
์ฃผ๋์ด ๋ฐฑ์๋ ๊ฐ๋ฐ์
๋ถ์ฐ ์์คํ ์ ๊ณต๋ถํ๊ณ ์ถ์ ์ฌ๋
์ ์ ์ง์,
ํ์ํ ๊น์?
๊ธฐ๋ณธ ๋คํธ์ํฌ ์ง์๊ณผ ์ฉ์ด
๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ง์๊ณผ ์ฉ์ด
363
๋ช
์๊ฐ์
12
๊ฐ
์๊ฐํ
3
๊ฐ
๋ต๋ณ
4.8
์
๊ฐ์ ํ์
2
๊ฐ
๊ฐ์
์๋ ํ์ธ์. ์ ๋ Jayce์ ๋๋ค. ํ์ฌ ์ ๋์ฝ ์คํํธ์ ์ ํ๋ซํผ ์์ง๋์ด๋ก ์ผํ๊ณ ์์ต๋๋ค.
์ ๋ ์ฐฝ์ ๋ ํ๊ณ ๋๊ท๋ชจ ์๋น์ค๋ฅผ ์ํ ๊ฐ๋ฐ๋ ํ๊ณ ๊ฐ๋ฐ์๋ฅผ ์ํ ํ๋ซํผ์ ๋ง๋ค๊ธฐ๋ ํ๋ฉด์ ์งง์ ์๊ฐ ๋์ ์๋น์ค ๊ฐ๋ฐ์๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ญํ ๋ ์ํํด๋ณด๊ณ ํ๋ซํผ ์์ง๋์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ญํ ๋ ์ํํ์ต๋๋ค. ๊ทธ ๊ณผ์ ์์ "์ํ๋ Software Engineer๋ ์ด๋ค ํน์ง์ด ์๊ณ ์ด๋ป๊ฒ ํด์ผ ๊ทธ๋ฐ ์ฌ๋์ด ๋ ์ ์๊ตฌ๋"๋ฅผ ๋๋ฆ๋๋ก ์ ๋ฆฝํ ์ ์์์ต๋๋ค.
์ ๋ ์งง๊ฒ ๋งํด์ Deep Dive ํ๋ ์ฌ๋๋ค์ ํจ๊ป ์ผํ๋ ์์ง๋์ด๋ก์ ๋งค๋ ฅ์ ์ด๋ผ๊ณ ๋๋๋๋ค. ๋จ์ํ ์ฃผ์ด์ง ์ผ์ ๊ธฐ๊ณ์ฒ๋ผ ์ณ๋ด๋ ์ฌ๋์ ์ด๋ค ์ํฉ์ ๋ํ ์ต์ ์ ์ ํ์ ๋ด๋ฆฌ๊ธฐ๊น์ง ๋น๊ต์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ฒ ๊ฐ์์. ๋ฐ๋ฉด ์ ์ด๋ฐ ๊ฒฐ์ ์ ํด์ผํ๋์ง ๊ธฐ์ ๋ด๋ฉด์ ๊ณตํ์ ์ธ ์ด์ ๋ฅผ ํ๊ณ ๋ค๋ฉฐ ์ดํดํ๋ ์ฌ๋๋ค์ ๊ธ๋ฐฉ ๋ค๋ฅธ ์์ฌ ๊ฒฐ์ ์์๋ ๊ณตํ์ ์ผ๋ก ์ค๋๋ ฅ ๊ฐํ ์ฃผ์ฅ์ ํ ์ ์๋ ์ฌ๋์ด ๋ฉ๋๋ค.
์ ๊ฐ ๋ง๋๋ ๊ฐ์๋ ์๋ก์ด ๊ธฐ์ ์ ์๊ฒ ์ตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ์ง ์์ต๋๋ค. ์ ๋ ์ฃผ๋์ด ๊ฐ๋ฐ์๋ค์ด ํ๋ฅญํ ํ ๋๋ฃ, ๋งค๋ ฅ์ ์ธ ๊ฐ๋ฐ์, ๋จ๋จํ ๊ธฐ์ ์๊ฐ ๋ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ๊ณ ์ถ์ต๋๋ค. ๋์ฑ ๋งค๋ ฅ์๋ ์์ง๋์ด๊ฐ ๋๊ธฐ ์ํด ์กฐ๊ธ ๋ ๊น์ ๋ด์ฉ์ ๊ณต๋ถํด๋ณด๊ณ ์ถ์ ์ฌ๋๋ค์๊ฒ ์ ํฉํ ๊ฐ์๋ฅผ ์ ์ต์ ์ ๋ ธ๋ ฅ์ผ๋ก ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ๐
์ ์ฒด
14๊ฐ โ (2์๊ฐ 10๋ถ)
ํด๋น ๊ฐ์์์ ์ ๊ณต:
1. ๊ฐ์ ์๊ฐ
02:01
2. Estimation
03:36
4. CAP ์ด๋ก
04:56
5. Replication
22:30
8. Rate Limiter - 1
08:01
9. Rate Limiter - 2
08:05
์ ์ฒด
11๊ฐ
4.9
11๊ฐ์ ์๊ฐํ
์๊ฐํ 13
โ
ํ๊ท ํ์ 5.0
์๊ฐํ 1
โ
ํ๊ท ํ์ 5.0
5
๋๊ท๋ชจ ํธ๋ํฝ์ด๋ ๊ฑฐ๋ํ ์์คํ ์ค๊ณ ์ด๋ก ์ ๊ด์ฌ์ด ์์ด์ ์๊ฐํ๋๋ฐ ์ ์ฒด์ ์ผ๋ก ์ข์์ต๋๋ค. ๊ด๋ จ ๋ถ์ผ์ ๊ด์ฌ์ด ์์ผ์ ๋ถ์ ์๊ฐํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์์. '์ด๋ฌํ ๊ฐ๋ ๊ณผ ์ด๋ก ์ด ์๊ณ , ์๋ง์กด ๊ฐ์ ํฐ ํ์ฌ์์ ์ด๋ฐ์์ผ๋ก ์ค๊ณํ๊ตฌ๋' ์ ๋๋ก ๊ฐ๋ตํ๊ฒ ์์๋ณด๋ ํ์์ผ๋ก ๊ฐ์๊ฐ ๊ตฌ์ฑ์ด ๋์ด์๊ณ , ์๊ฐ ํ์ ๊ฐ์ธ์ ์ผ๋ก ๋๊ท๋ชจ ํธ๋ํฝ๊ณผ ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ทธ๋ฆฌ๊ณ ์์คํ ์ค๊ณ ๊ด๋ จํด์ ๋ ํ์ตํด์ผ ํ ๋ฏ ํฉ๋๋ค. ์ ์ฒด์ ์ผ๋ก ๋ง์ํ์๋ ์๋๊ฐ ์กฐ๊ธ ๋น ๋ฅด๊ณ , ๊ฐ์ ์๋๊ฐ ์กฐ๊ธ ๋น ๋ฅธ ํธ์ ๋๋ค. ๊น๊ฒ ํ๊ณ ๋ค์ง๋ ์์ต๋๋ค. ๊ฐ์ ์๋ง์ด ์๊ธฐ๋ ํ๋ฐ PDF ์คํ๊ฐ ์๋ ๊ฒ ๊ฐ๋๋ผ๊ตฌ์. ๊ฒฐ๋ก ์ ์ถ์ฒํฉ๋๋ค~
์๊ฐํ 6
โ
ํ๊ท ํ์ 5.0
์๊ฐํ 1
โ
ํ๊ท ํ์ 5.0
์๊ฐํ 18
โ
ํ๊ท ํ์ 4.8
์ง์๊ณต์ ์๋์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!
๊ฐ์ ๋ถ์ผ์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!
โฉ39,600