※ 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 올인원 솔루션 (특히 자체 서버 운영에 강점)

+ Recent posts