CVS, SVN 기억하시나요? 재미로 보는 버전 관리 역사와 현대 Git 저장소 3대장 비교

in #kr10 hours ago

0C23B1CA-CC78-4E36-A382-1257F488AFEA.png

안녕하세요, 가야태자 @talkit 입니다.

저는 요즘 AA(Application Architect)로서 정리해 두어야 할 문서들을 하나씩 정리해 나가고 있습니다. 아무래도 제가 주로 Java 베이스로 아키텍처를 설계하고, 최근에는 효율적인 CI/CD 파이프라인 구축 관련 일들을 많이 다루다 보니 자연스럽게 '버전 관리 저장소'와 그 생태계에 관심이 머물게 되더군요.

그래서 오늘은 우리가 매일 공기처럼 쓰고 있는 버전 관리의 간략한 역사와 현대적 버전 관리 시스템의 상징인 Git, 그리고 협업의 중심이 되는 온라인 저장소(GitHub, GitLab, Bitbucket)에 대한 이야기를 가볍지만 깊이 있게 풀어보려고 합니다.

1. 버전 관리 시스템(VCS)의 발전 흐름

우리가 지금 쓰고 있는 Git이 대세가 되기까지, 버전 관리 시스템은 기술의 발전과 협업 규모의 확장에 따라 크게 4가지 세대를 거치며 진화해 왔습니다.

[1세대: 로컬/초기] RCS (파일 단위 Lock)
       ▼
[2세대: 중앙 집중형] CVS ──> SVN (서버 중심, 네트워크 필수)
       ▼
[3세대: 분산형] Git, Mercurial (로컬 저장소, 독립적 브랜치)
       ▼
[4세대: 차세대 (현재 진행형)] Jujutsu(jj), Sapling 등 (Git 호환 및 사용성 극대화)
  • 1세대 (로컬 형): 네트워크 개념이 없던 초기에는 RCS 같은 도구를 사용해 내 컴퓨터 안에서만 버전을 관리했습니다. 동시 수정을 막기 위해 한 사람이 파일을 고치면 다른 사람은 손대지 못하게 잠그는 'Lock' 방식을 썼기 때문에 협업이 매우 답답했던 시절이었습니다.

  • 2세대 (중앙 집중형): CVS와 SVN(Subversion)이 대표적입니다. 하나의 원격 중앙 서버에 코드를 두고 여러 사람이 동시에 수정 후 병합(Merge)할 수 있게 되면서 본격적인 팀 협업이 가능해졌습니다. 다만, 모든 작업에 네트워크 연결이 필수였고, 중앙 서버가 다운되면 전체 개발 팀의 손이 묶이는 치명적인 단점이 있었습니다.

  • 3세대 (분산형): 리눅스 커널의 창시자 리누스 토르발스가 만든 Git이 대표 주자입니다. 중앙 서버에만 의존하지 않고 개발자 개개인의 PC에 전체 코드 히스토리를 통째로 복제(Clone)해 옵니다. 덕분에 오프라인에서도 커밋과 브랜치 생성이 가능하며 속도가 압도적으로 빨라 현재 글로벌 표준으로 자리 잡았습니다.

  • 4세대 (차세대): 최근에는 Git의 복잡한 명령어 체계를 혁신하고, 수천 명의 개발자가 하나의 거대한 저장소를 공유하는 거대 기업(구글, 메타 등)의 환경에 맞춰 성능을 극대화한 Jujutsu(jj)나 Sapling 같은 Git 호환 시스템들이 등장하여 미래를 준비하고 있습니다.

2. 현대 개발의 허브, 온라인 Git 저장소의 개념

로컬 PC에서 Git으로 소스 코드를 아무리 잘 관리하더라도, 이를 안전하게 백업하고 팀원들과 공유하려면 원격 서버가 필요합니다. 이를 클라우드나 가상 서버 형태로 편리하게 제공해 주는 서비스가 바로 온라인 Git 저장소(Hosted Git Repository)입니다.

단순히 파일만 올려두는 백업 공간을 넘어, 현대 소프트웨어 엔지니어링의 핵심인 DevOps(개발 및 운영)의 중심 허브 역할을 수행하며 다음과 같은 핵심 가치를 제공합니다.

  • 코드 백업 및 원격 동기화: 로컬의 변경 이력을 원격 서버에 안전하게 보관합니다.

  • 협업 및 코드 리뷰: 변경된 코드를 비교(Diff)하고 의견을 나누는 Pull Request(또는 Merge Request) 시스템으로 코드 퀄리티를 유지합니다.

  • CI/CD 파이프라인 내장: AA인 제가 가장 집중하고 있는 부분이기도 합니다. 코드가 원격지에 푸시되는 순간 자동으로 빌드, 테스트를 수행하고 운영 서버에 배포하는 자동화 엔진을 자체적으로 탑재하고 있습니다.

  • 이슈 트래킹 및 프로젝트 관리: 버그 추적(Issue), 기능 요구사항 관리, 칸반 보드 등을 한 곳에서 연동할 수 있습니다.

3. 주요 온라인 저장소 서비스 3대장 소개

현재 시장을 리드하고 있는 대표적인 3대 플랫폼입니다. 각 서비스는 지향점과 강점이 명확히 갈립니다.

🐙 GitHub (깃허브)

  • 공식 사이트: https://github.com

  • 한 줄 소개: 전 세계 오픈소스 생태계의 성지이자 사실상의 글로벌 표준.

  • 특징: 개발자들의 포트폴리오로 가장 널리 활용됩니다. 풍부한 서드파티 플러그인 생태계(Marketplace)를 자랑하며, 무엇보다 강력한 AI 개발 도구인 GitHub Copilot과의 연계성이 독보적입니다.

🦊 GitLab (깃랩)

  • 공식 사이트: https://about.gitlab.com

  • 한 줄 소개: 기획부터 보안, 모니터링까지 하나의 도구로 끝내는 '올인원 DevOps' 플랫폼.

  • 특징: 플랫폼 내부에 고도화된 자체 CI/CD 엔진이 내장되어 있어 별도의 툴(Jenkins 등)을 연동하지 않고도 강력한 파이프라인을 구축할 수 있습니다. DevSecOps(보안이 내장된 개발 프로세스)를 지향하는 기업들에게 인기가 높습니다.

💙 Bitbucket (비트버킷)

  • 공식 사이트: https://bitbucket.org

  • 한 줄 소개: 협업 툴의 명가 아틀라시안(Atlassian) 생태계의 핵심 Git 저장소.

  • 특징: 업무 관리 도구의 표준인 Jira(지라), 문서 협업 도구인 Confluence(컨플루언스)와 완벽하게 유기적으로 연동됩니다. 기존에 아틀라시안 제품군을 베이스로 업무 프로세스를 짜둔 기업 환경에서 최고의 시너지를 냅니다.

4. 한눈에 보는 저장소별 기능 및 정책 비교

프로젝트의 규모나 예산, 그리고 사내 보안 인프라 환경에 따라 어떤 저장소를 선택해야 할지 고민이 되실 텐데요. 각 플랫폼의 주요 특징을 표로 비교해 보았습니다.

항목GitHubGitLabBitbucket
대표 주소github.comabout.gitlab.combitbucket.org
무료 플랜제공 (개인/팀)
• 사용자 무제한
• 공개/비공개 저장소 무제한
제공 (개인/팀)
• 사용자 무제한
• 공개/비공개 저장소 무제한
제공 (소규모)
최대 5인까지 무료
• 비공개 저장소 무제한
기본 스토리지매우 넉넉함
• 저장소당 권장 1~5GB 제한
• 대용량 파일(LFS) 지원
네임스페이스당 10GB
• 초과 시 추가 구매 가능
워크스페이스 전체 총 1GB
• 초과 시 GB당 추가 비용
CI/CD 무료 제공월 2,000 빌드 분량월 400 빌드 분량월 50 빌드 분량
유료 플랜 가격
(사용자당/월)
Team: $4
Enterprise: $21
Premium: $29
Ultimate: $99
Standard: $3.65
Premium: $7.25
사내 내부 설치 가능 여부
(On-Premise / Self-Hosted)
가능 (Enterprise Server)
• 가상화 환경 및 자체 클라우드 내부 구축 가능
가능 (GitLab Self-Managed)
• 오픈소스 기반으로 시작되어 사내 폐쇄망 구축에 매우 강력함
가능 (Bitbucket Data Center)
• 대규모 클러스터링 및 고가용성(HA) 환경 사내 구축 지원

💡 AA의 시선: 엔터프라이즈 환경에서의 내부 설치(On-Premise) 고려사항

보안이 엄격한 금융권이나 대기업, 공공기관 프로젝트를 리드하는 AA의 관점에서는 소스 코드를 외부 클라우드(SaaS)에 두는 것이 불가능한 경우가 많습니다. 이때는 사내 폐쇄망 인프라에 Git 서버를 직접 설치해야 하는데, 세 플랫폼 모두 이를 지원합니다. 다만 아키텍처 설계 시 다음과 같은 기준으로 접근하는 것을 추천합니다.

  1. 보안 제어와 인프라 통제가 완벽해야 한다면 ➡️ GitLab Self-Managed 태생부터 사내 독립 구축 시장을 타깃으로 성장했기에, 외부망이 차단된 폐쇄망 안에서도 취약점 스캔(SAST/DAST)이나 모니터링 툴을 올인원으로 가장 매끄럽게 구동할 수 있습니다.

  2. 기존 사내 업무 프로세스와의 결합이 우선이라면 ➡️ Bitbucket Data Center 이미 사내에 Jira 서버나 Confluence 서버를 구축하여 전사 표준으로 사용 중인 조직이라면, Bitbucket을 결합했을 때 티켓-커밋-브랜치 추적성이 가장 뛰어납니다.

  3. 글로벌 표준 환경과 AI 어시스턴트 도입이 목표라면 ➡️ GitHub Enterprise Server 가장 대중적이고 개발자들에게 익숙한 UI를 사내망에 그대로 복제해 올 수 있으며, 최근 사내망용 AI 개발 비서(SaaS 연계형 혹은 독립형 Copilot)를 결합하려는 엔터프라이즈 트렌드에 힘입어 도입 비중이 늘고 있습니다.

블로그에 방문해 주신 분들은 현재 어떤 버전 관리 저장소를 주력으로 사용하고 계시나요? 조직의 성격과 인프라 환경에 맞춰 최적의 솔루션을 선택하는 데 이 글이 작은 도움이 되었으면 좋겠습니다.

다음에도 Java 아키텍처 설계나 CI/CD 파이프라인을 구축하면서 느낀 실무적인 인사이트를 담은 문서들로 찾아뵙겠습니다. 감사합니다! 😊

관련 글

[SVN Port] Subversion의 기본 포트 목록

Posted using SteemX

Sort:  

오홍.. 저한테도 많은 도움이 되는 글이네요~~ ^^

요즘 아키텍처 관련 글을 정리도하고 여러가지로 적어 보고 있습니다.

Jujutsu(jj)나 Sapling 을 제외하고는 거의 들어본(!) 것들이네요.
정리 고맙습니다.

넵 현대적 버전 관리 시스템이라서요.

저도 저 두가지는 모릅니다. ㅎㅎㅎ

Coin Marketplace

STEEM 0.04
TRX 0.33
JST 0.100
BTC 64603.72
ETH 1877.42
USDT 1.00
SBD 0.38