DINKIssTyle (61.♡.73.102)
2026년 4월 22일 PM 03:26
1. Git이란 정확히 무엇인가?
Git은 '분산 버전 관리 시스템(Distributed Version Control System, DVCS)'입니다.
스냅샷 방식: 단순히 파일의 변경 차이(Diff)를 기록하는 것이 아니라, 파일 전체의 상태를 스냅샷으로 저장합니다. 덕분에 속도가 매우 빠르고 데이터 무결성이 뛰어납니다.
분산형 구조: 중앙 서버가 없어도 모든 개발자가 전체 프로젝트 히스토리의 완전한 복사본을 로컬에 가집니다. DINKI님이 오프라인 상태에서 씽크패드로 코딩하고 나중에 맥 미니와 동기화할 수 있는 이유가 바로 이 구조 덕분입니다.
2. 최초 개발자: 리누스 토발즈 (Linus Torvalds)
Git의 아버지는 리눅스 커널을 만든 리누스 토발즈입니다.
탄생 배경 (2005년)
당시 리눅스 커널 개발팀은 BitKeeper라는 유료 버전 관리 시스템을 무료로 지원받아 사용 중이었습니다. 그런데 리눅스 커널 개발자 중 한 명이 BitKeeper의 프로토콜을 역설계(Reverse Engineering)하려다 들통나는 사건이 발생합니다. 화가 난 BitKeeper 측은 무료 라이선스를 철회해 버립니다.
당시 리누스는 기존의 다른 시스템들(CVS, SVN 등)이 너무 느리고 설계가 엉망이라며 싫어했습니다. 결국 그는 "내가 일주일 안에 더 나은 걸 직접 만들겠다"고 선언하고, 실제로 약 2주 만에 Git의 핵심 동작 원리를 완성했습니다.
재미있는 사실: 'Git'은 영국 슬랭으로 '재수 없는 놈' 혹은 '멍청이'라는 뜻입니다. 리누스는 자신의 성격에 빗대어 "나는 모든 프로젝트 이름을 나 자신(Linus -> Linux, Git -> Git)을 따서 짓는다"라고 농담 섞인 말을 남기기도 했습니다.
3. 대중화 과정: GitHub의 등장
Git이 처음 나왔을 때는 명령어가 너무 복잡해서 전문가들만 쓰는 도구라는 인식이 강했습니다. 이를 대중의 영역으로 끌어올린 결정적인 계기가 바로 GitHub(깃허브)입니다.
2008년 GitHub 런칭: 웹 기반의 UI를 제공하면서 코드 리뷰, 이슈 관리, 'Pull Request'라는 협업 문화를 정착시켰습니다.
오픈소스의 성지: 리눅스, 안드로이드, 그리고 현재 DINKI님이 사용하시는 Go, Python, Rust 관련 수많은 라이브러리들이 GitHub를 통해 공유되면서 Git은 개발자의 필수 소양이 되었습니다.
MS의 인수 (2018): 마이크로소프트가 GitHub를 인수하면서 기업용 시장에서도 독점적인 위치를 굳히게 되었습니다.
4. Git의 핵심 철학
리누스 토발즈는 Git을 설계할 때 세 가지에 집착했습니다.
속도: 0.1초도 기다리게 하지 마라.
단순한 설계: 내부 구조는 매우 단순해야 한다.
비선형적 개발: 수천 개의 브랜치가 동시에 뻗어나가고 합쳐져도 완벽해야 한다.
이 철학 덕분에 오늘날 개발자들이 로컬 환경에서 LLM 모델을 최적화하고 복잡한 백엔드 로직을 짤 때, 버전 충돌 걱정 없이 Clean af하게 코드를 관리할 수 있게 된 것입니다.
아침에 af 뜻 물어봤다고...
"버전 충돌 걱정 없이 존나 깨끗하게 코드를 관리할 수 있게 된 것입니다."
라고 응답하는군요 ㄷㄷ
여하튼 git 사용법은 잘 몰라서 이전 버젼으로만 가지만..
undo 증후군을 소중히 지킬 수 있으니 여기저기 다 git 만들고 있습니다. ㄷㄷ
댓글 (7)
-
너너구리남편
04.22 · 112.♡.220.208
- T
tessking
04.22 · 61.♡.49.64
옛날에 CSV, 그 다음에 서브버전 썼었는데 git으로 넘어갈 때 진입장벽을 확실히 느꼈었습니다. 그러나 쓰면 쓸수록 토발즈의 의도가 이해되는... 계속 쓰면 쓸수록 그 내면을 더 많이 알게 되는 툴인 것 같아요. 체화시키려면 시간이 필요한 건 맞는 것 같습니다.
- 졸
졸음
→ tessking
04.22 · 104.♡.44.104
이전 것들은 내가 작업하려는 파일들을 서버에 먼저 락 걸어 놓고 남이 못 건드리게 하고 했던 듯 합니다. 오래되서 기억이 가물. 그래서 클라이언트 뷰로 보면 이 파일을 다른 사람이 체크 아웃 먼저 했나 보이는. git으로 넘어오면서 내 로컬 repo에서 작업한다는 개념을 이해 하는데(그래서 락이 필요 없이 마구 수정해도 되는) 시간이 좀 걸렸던 듯 요.
- 졸
졸음
04.22 · 104.♡.44.104
리누스 천재
-
Mmtrz
04.22 · 180.♡.14.183
혼자만 쓰다보니 여전히 활용 수준이 초보에 머물러 있긴 하지만 유용하게 잘 쓰고 있습니다.
전 git이 처음에 가장 이해가 안 됐던 것이 "나한테도 저장소가 있다고? 어디에?" 이거 였습니다.
전 개인적으로 리누스 토발즈에게 노벨 평화상, 경제학상, 물리학상을 한번에 모두 수여해야 한다고 생각합니다.
모든 것이 그의 업적은 아니지만 인터넷에 대해 중요한 계기를 제공하고 그 문을 오랫동안 열고 있는 사람이니까요.
모든 오픈 소스 개발자들을 대표해서 수상할 만 하죠.
-
가가랑비
04.22 · 118.♡.4.217
remote tracking repository 라는 개념을 알고나서 쬐끔 익숙해졌습니다. 책이나 유투브에서도 잘 안 다루던데, (저는)이 개념이 없는 상태에서는 git 가 하나도 이해 안 되었네요.ㅎ
-
DDINKIssTyle
작성자
04.22 · 118.♡.4.18
꼭 동기화를 안한데도 로컬에서 히스토리 만드는 안정감이 훌륭합니다 ㅎㅎ
댓글을 작성하려면 이 필요합니다.
그러나 깃도 초기 접근 장벽이 좀 있어서 잘못 다루면...