※ Git & GitHub
구분 | Git | GitHub |
정의 | 코드를 쉽게 관리할 수 있도록 해주는 버전 관리 프로그램 | Git으로 관리되는 프로젝트의 코드가 저장되는 저장소 |
설치 여부 | 로컬 PC에 직접 설치 필요 | 웹/클라우드 서비스로 설치 불필요 |
저장소 위치 | 개발자 PC(로컬 저장소)와 원격 저장소(서버) | 원격 저장소 제공 (github.com) |
주요 기능 | 버전 관리, 브랜치 관리, 협업을 위한 merge/rebase | 코드 공유, Pull Request(PR), 이슈 관리, CI/CD, 협업 도구 |
사용 목적 | 코드 변경 이력 관리, 되돌리기, 브랜치 기반 개발 | 오픈소스 프로젝트 협업, 팀 프로젝트 관리, 포트폴리오 공개 |
오프라인 사용 | 가능 (네트워크 없이도 커밋 가능) | 불가능 (인터넷 필요) |
예시 | git init, git commit, git merge | Pull Request, Issue, Actions |
※ Git vs SVN 비교
> Git
장점
· 분산 버전 관리(DVCS)라서 로컬에서도 작업 가능
· 브랜치 생성/병합이 가볍고 유연함
· 속도가 빠름 (커밋, 브랜치, 되돌리기 등)
· 오픈소스 커뮤니티와 툴(GitHub, GitLab 등) 지원이 풍부
단점
· 개념이 다소 복잡하여 초보자가 배우기 어려움
· 프로젝트 규모가 크면 로컬 저장소 용량이 커질 수 있음
> SVN
장점
· 중앙 집중식 관리라 구조가 단순하고 이해하기 쉬움
· 서버에서 버전 관리가 일원화되어 보안/권한 관리가 용이
· 대규모 기업/문서 관리에 적합
단점
· 서버 접속이 반드시 필요 (오프라인 작업 불가)
· 브랜치/머지 작업이 무겁고 불편
· 서버 장애 시 개발이 중단될 수 있음
> Git vs SVN
구분 | Git | SVN |
관리 방식 | 분산 버전 관리 (로컬+원격) | 중앙 집중식 버전 관리 |
오프라인 작업 | 가능 | 불가능 |
속도 | 빠름 (로컬 처리) | 느림 (항상 서버 의존) |
브랜치 관리 | 가볍고 유연 | 무겁고 불편 |
안정성 | 서버 장애에도 로컬에서 복구 가능 | 서버 장애 시 전체 작업 중단 |
난이도 | 초보자에겐 다소 어렵다 | 비교적 직관적이고 단순 |
> 정리
· Git은 현대 개발 표준(특히 오픈소스 & 협업 중심)
· SVN은 단순 관리가 필요한 기업 환경에 적합
· Git ↔ GitHub
· SVN ↔ SVN 서버 (자체 구축 or 호스팅 서비스)
※ GitHub vs GitLab 비교
구분 | GitHub | GitLab |
소유 | Microsoft | GitLab Inc. |
철학 | 오픈소스 중심 협업 | DevOps 올인원 플랫폼 |
CI/CD | GitHub Actions | GitLab CI/CD (강력) |
설치 방식 | 클라우드(기본) | 클라우드 + 자체 서버 설치 가능 |
커뮤니티 | 세계 최대 오픈소스 커뮤니티 | 상대적으로 규모 작음 |
적합한 대상 | 오픈소스, 스타트업, 개인 개발자 | 기업, 보안 중요 환경 |
> 정리
· GitHub : 오픈소스 협업에 최적화된 세계 최대 개발자 플랫폼
· GitLab : 기업용 DevOps 올인원 솔루션 (특히 자체 서버 운영에 강점)