Chapter 01
Git이란 무엇인가?
버전 관리가 왜 필요한지, Git과 GitHub는 어떻게 다른지 이해합니다.
🎯 이 챕터를 마치면
- 버전 관리가 왜 필요한지 설명할 수 있다
- Git과 GitHub의 차이점을 구분할 수 있다
- Git의 분산 버전 관리 개념을 이해한다
1. 버전 관리가 없다면 일어나는 일
개발을 처음 시작하면 이런 상황을 한 번쯤 겪게 됩니다.
😱 버전 관리 없이 6개월 작업한 폴더
📁 my-project/
📄 index.html
📄 index_backup.html
📄 index_final.html
📄 index_final_진짜.html
📄 index_final_진짜최종.html
📄 index_최종_진짜진짜최종.html
📄 index_20240101.html
📄 index_20240215_이거쓰자.html
📁 backup/
📁 backup_old/
📁 backup_really_old/
⚠️ 어떤 파일이 최신 버전인지 알 수 없음
⚠️ 누가 언제 무엇을 수정했는지 알 수 없음
⚠️ 2주 전으로 되돌리고 싶어도 불가능
⚠️ 누가 언제 무엇을 수정했는지 알 수 없음
⚠️ 2주 전으로 되돌리고 싶어도 불가능
Git을 사용하면 이 모든 문제가 해결됩니다. 파일은 하나만 유지하면서, 변경 이력을 자동으로 관리해줍니다.
✅ Git을 사용하면
🔖 버전 추적
언제, 무엇이 바뀌었는지 자동으로 기록
⏪ 시간 여행
과거 어느 시점으로든 되돌리기 가능
👥 협업
여러 명이 동시에 작업, 충돌 시 해결 가능
🌿 브랜치
실험적인 작업을 안전하게, 메인 코드 보호
2. Git이란?
Git은 소프트웨어 개발에서 사용하는 분산 버전 관리 시스템(DVCS)입니다. 2005년 리눅스 창시자 리누스 토르발스가 만들었습니다.
Git의 핵심 동작 방식
📸 스냅샷 기반 — 커밋할 때마다 그 순간을 통째로 저장
index.html v1
style.css v1
Commit 1
→
index.html v2
style.css v1 (동일)
Commit 2
→
index.html v2
style.css v2
Commit 3 (현재)
Git의 주요 특징
| 특징 | 설명 |
|---|---|
| 🖥️ 로컬 작동 | 인터넷 없이도 대부분의 작업 가능 |
| ⚡ 빠른 속도 | 로컬에서 작동하므로 매우 빠름 |
| 🔒 무결성 | SHA-1 해시로 모든 변경을 추적, 데이터 손상 감지 |
| 🌿 브랜치 | 가볍고 빠른 브랜치 생성/전환 |
| 📦 분산 | 모든 개발자가 전체 히스토리를 로컬에 보유 |
3. GitHub이란?
GitHub는 Git 저장소를 클라우드에서 호스팅하는 웹 플랫폼입니다. Git이 도구라면, GitHub는 그 도구를 사용하는 온라인 공간입니다.
Git vs GitHub — 핵심 차이
🌿
Git
✔ 내 컴퓨터에 설치
✔ 버전 관리 도구
✔ 인터넷 없이 동작
✔ 오픈소스 소프트웨어
🔗
Git을
온라인에서
🐙
GitHub
✔ 웹사이트 (클라우드)
✔ 원격 저장소 제공
✔ 팀 협업 도구
✔ 포트폴리오 공간
GitHub 외에도 GitLab, Bitbucket 등의 유사한 플랫폼이 있습니다.
💡 비유로 이해하기
Git은 내 컴퓨터의 사진 앱 (사진 찍고 관리)
GitHub는 구글 포토 (온라인에 올려서 공유)
✅ 정리
Git = 도구 (설치 필요)
GitHub = 서비스 (가입 필요)
둘 다 함께 써야 진정한 협업 가능!
4. 형상관리(SCM)란?
형상관리(Software Configuration Management)는 소프트웨어 개발 과정에서 코드, 문서, 설정 파일 등의 변경사항을 체계적으로 추적하고 관리하는 활동입니다.
| 목표 | 설명 |
|---|---|
| 버전 관리 | 소프트웨어의 여러 버전을 기록, 특정 시점으로 되돌릴 수 있음 |
| 변경 추적 | 누가, 언제, 무엇을 변경했는지 기록 |
| 협업 지원 | 여러 개발자가 동시에 작업할 수 있도록 충돌 방지 |
| 품질 보장 | 체계적인 관리로 오류를 줄이고 품질 향상 |
Git은 형상관리 도구 중 현재 가장 널리 사용되는 표준입니다. 전 세계 개발자의 약 93%가 Git을 사용합니다.
✅ 이해도 체크 — 클릭하여 확인
버전 관리 없이 발생하는 문제점을 2가지 이상 말할 수 있다
Git은 내 컴퓨터에 설치하는 도구이고, GitHub는 온라인 서비스라는 차이를 이해했다
Git이 파일을 스냅샷 방식으로 저장한다는 것을 이해했다
분산 버전 관리 시스템(DVCS)이 무엇인지 설명할 수 있다
📌 이 챕터의 핵심 용어
Git
분산 버전 관리 시스템 — 로컬 컴퓨터에 설치
GitHub
Git 저장소 호스팅 플랫폼 — 클라우드 서비스
Repository (저장소)
프로젝트와 변경 이력이 저장되는 공간
Commit
변경사항을 저장소에 기록하는 행위 (스냅샷)