GitHub
한 줄 정의
Git 저장소를 원격으로 저장하고 코드 공유와 협업을 할 수 있게 해주는 플랫폼
1. 비유로 이해하기
Git이 내 컴퓨터 안에서 프로젝트의 변경 이력을 기록하는 기록장이라면, GitHub는 그 기록장을 인터넷에 올려 다른 사람과 함께 볼 수 있게 만든 공간이라고 생각하면 이해하기 쉽다.
예를 들어 혼자 프로젝트를 작업한다면 내 컴퓨터에 Git 저장소를 만들어 변경 내용을 기록할 수 있다.
하지만 다른 사람에게 프로젝트를 보여주거나, 여러 명이 함께 작업하거나, 내 컴퓨터에 문제가 생겼을 때 원격에 프로젝트를 보관하고 싶다면 별도의 공간이 필요하다.
이때 사용할 수 있는 것이 GitHub다.
GitHub에 Git 저장소를 올려두면 다른 사람이 접근할 수 있고, 프로젝트의 변경 이력을 함께 확인할 수 있다.
또한 단순히 코드를 저장하는 것뿐만 아니라,
코드 공유 → 이슈 작성 → 브랜치 작업 → Pull Request → 코드 리뷰 → 병합
같은 협업 과정을 지원한다.
그래서 GitHub를 단순한 “코드 저장 사이트”라고 생각하는 것보다, Git을 기반으로 개발 프로젝트를 공유하고 협업하기 위한 플랫폼이라고 이해하는 것이 더 정확하다.
2. 왜 필요한가
Git은 로컬 컴퓨터에서도 사용할 수 있지만, 혼자 작업하는 것을 넘어 다른 사람과 프로젝트를 함께 진행하려면 원격 저장 공간과 협업 기능이 필요하다.
GitHub를 사용하면 프로젝트의 Git 저장소를 원격에 보관할 수 있기 때문에 여러 개발자가 같은 프로젝트를 공유할 수 있다.
예를 들어,
내 컴퓨터의 Git → GitHub의 원격 저장소 → 다른 사람의 Git
처럼 저장소를 연결할 수 있다.
또한 GitHub에서는 단순한 파일 공유 외에도 개발 협업에 필요한 기능을 제공한다.
Pull Request를 통해 변경 내용을 제안하고 리뷰받을 수 있고, 이슈를 통해 작업 내용을 관리할 수도 있다.
특히 오픈소스 프로젝트에서는 여러 사람이 서로 다른 위치에서 작업하면서도 GitHub를 통해 코드를 공유하고 변경 사항을 검토할 수 있다.
3. 어디서 만났나
AI 에이전트 수업 2회차에서 GitHub를 처음 접했다.
이때 Git과 GitHub를 함께 사용하면서, Git은 버전 관리 도구이고 GitHub는 그 Git 저장소를 원격으로 공유하고 협업할 수 있게 해주는 플랫폼이라는 차이를 이해했다.
4. 헷갈리는 개념
| 이 용어 | 비슷하지만 다른 것 | 차이 |
|---|---|---|
| GitHub | Git | Git은 분산 버전 관리 시스템이고, GitHub는 Git 저장소를 원격으로 호스팅하고 협업 기능을 제공하는 플랫폼이다. |
| GitHub | 저장소(Repository) | 저장소는 프로젝트의 파일과 변경 이력이 관리되는 공간이고, GitHub는 그런 저장소를 원격에서 호스팅하고 관리할 수 있는 플랫폼이다. |
| GitHub | GitLab | 둘 다 Git 저장소를 호스팅하고 협업 기능을 제공하는 서비스지만 서로 다른 플랫폼이다. |
| GitHub | 포크(Fork) | GitHub의 기능 중 하나인 포크를 사용하면 다른 사람의 저장소를 내 계정으로 복사해 독립적으로 작업할 수 있다. |
| GitHub | Pull Request | Pull Request는 GitHub에서 내가 만든 변경 사항을 다른 브랜치나 저장소에 반영해 달라고 제안하고 리뷰받는 협업 기능이다. |
5. 많이들 오해하는 지점
GitHub가 Git 자체다?
가장 흔한 오해다.
이름이 비슷하고 보통 함께 사용하기 때문에 둘을 같은 것으로 생각하기 쉽다.
하지만 Git은 버전 관리 시스템이고, GitHub는 Git을 사용하는 프로젝트를 원격으로 저장하고 협업할 수 있게 해주는 플랫폼이다.
Git은 GitHub 없이도 사용할 수 있다.
GitHub에 코드를 올리면 Git이 없어도 된다?
GitHub에 프로젝트를 올려두었다고 해서 Git이 필요 없어지는 것은 아니다.
GitHub의 저장소 자체가 Git을 기반으로 동작하고, 로컬에서 변경 사항을 커밋하거나 브랜치를 만들고 원격 저장소와 변경 내용을 주고받는 과정에서 Git을 사용한다.
GitHub는 단순한 파일 저장소다?
파일을 저장할 수 있기 때문에 클라우드 드라이브처럼 생각하기 쉽다.
하지만 GitHub는 단순히 파일을 보관하는 것보다 코드의 변경 이력과 개발 협업 과정까지 관리하는 것에 의미가 있다.
Push하면 다른 사람의 코드가 자동으로 바뀐다?
내 로컬 저장소에서 변경 사항을 GitHub에 push했다고 해서 프로젝트의 최종 코드에 바로 병합되는 것은 아니다.
보통은 별도의 브랜치에서 작업한 뒤 Pull Request를 만들고, 리뷰와 확인을 거쳐 원하는 브랜치에 병합한다.
6. 관련 용어
Git · 저장소 · 커밋 · 푸시와 풀 · 포크 · Pull Request