반응형
✅ 버전 관리 시스템이란?
버전 관리 시스템(Version Control System, VCS)은 소스 코드의 변경 이력을 저장하고, 여러 개발자가 동시에 작업할 수 있도록 돕는 시스템이다. 코드를 실수로 삭제하거나 잘못 수정했을 때, 이전 버전으로 되돌릴 수 있는 기능을 제공한다.
대표적인 버전 관리 도구에는 Git과 SVN(Subversion)이 있다.
🧩 SVN (Subversion)
SVN은 중앙집중형 버전 관리 시스템(Centralized VCS)이다. 모든 코드가 중앙 서버에 저장되며, 개발자들은 해당 서버에서 소스를 받아와 수정하고, 다시 업로드(commit)한다.
📌 구조
[중앙 서버]
↑ ↑ ↑
개발자 A, B, C
📊 특징
- 모든 코드가 중앙 서버에 있음
- 서버 장애 시 전체 개발 중단 위험
- Commit 시 항상 서버에 연결 필요
- 이력 관리가 단순하고 직관적
🐙 Git
Git은 분산형 버전 관리 시스템(Distributed VCS)이다. 각 개발자가 전체 저장소를 로컬에 복제하여, 서버 연결 없이도 커밋, 브랜치 생성, 이력 조회가 가능하다.
📌 구조
개발자 A (로컬 저장소)
개발자 B (로컬 저장소)
↓
[원격 저장소 - GitHub / GitLab]
📊 특징
- 각 개발자가 저장소 전체 복제 (Offline 작업 가능)
- 브랜치(branch) 기반의 병렬 개발에 강함
- 속도 빠름 — 커밋이 로컬에서 처리됨
- GitHub, GitLab, Bitbucket 등 다양한 호스팅 서비스 존재
⚖️ Git vs SVN 비교
| 구분 | Git | SVN |
|---|---|---|
| 관리 방식 | 분산형 | 중앙집중형 |
| 저장소 구조 | 로컬 + 원격 | 서버 중심 |
| 커밋 위치 | 로컬 | 중앙 서버 |
| 작업 가능 여부 | 오프라인 가능 | 항상 온라인 필요 |
| 브랜치 관리 | 가볍고 빠름 | 무겁고 느림 |
| 병합(merge) | 유연하고 자동화 | 충돌이 잦음 |
| 이력 관리 | 로컬 + 원격 모두 관리 | 중앙 서버에만 존재 |
| 대표 서비스 | GitHub / GitLab / Bitbucket | VisualSVN / TortoiseSVN |
📈 어떤 걸 써야 할까?
- 👥 여러 명이 협업한다면 → Git (브랜치 중심 협업, 충돌 관리 용이)
- 🏢 내부 시스템 단일 서버에서만 관리한다면 → SVN (보안·통제 중심)
- 💡 대규모 오픈소스 / 클라우드 연동이 필요하면 → Git
🧠 Visual Studio에서 Git 사용
Visual Studio 2022 이상에서는 Git 기능이 기본 내장되어 있다. 메뉴에서 [보기] → [Git 변경 내용]을 클릭하면, 커밋, 브랜치, 병합, 푸시 등을 GUI로 수행할 수 있다.
Git → 커밋 → 원격 저장소 설정 (GitHub 등)
또한 Azure DevOps나 GitLab 등 외부 Git 서버도 연동 가능하다.
🧠 Visual Studio에서 SVN 사용
SVN을 사용하려면 SVN 확장 플러그인을 설치해야한다. 플러그인을 설치하면 Git과 마찬가지로 관리할 수 있다.
📝 정리
- SVN: 중앙집중형, 단일 서버 기반의 안정적 관리
- Git: 분산형, 브랜치 기반의 빠르고 유연한 협업
- 최근 대부분의 프로젝트는 Git 기반으로 전환 중
- 팀 규모·환경·보안 요구사항에 따라 선택이 달라질 수 있음
반응형