1. 형상관리란? 그리고 CVN, SVN, GIT의 차이
개발을 하다 보면 코드가 계속해서 바뀌고, 여러 명이 함께 작업하게 되면 누가 언제 어떤 내용을 바꿨는지 추적하는 게 중요해집니다. 이럴 때 필요한 것이 바로 형상관리(Version Control, Revision Control)입니다.
형상관리는 코드뿐 아니라 설정파일, 문서 등 프로젝트에 포함된 모든 리소스의 변경 이력을 관리할 수 있게 해주는 시스템입니다. 단순히 백업하는 것을 넘어서, 이전 버전으로의 롤백, 다자간 협업, 충돌 해결, 기록 추적 등을 가능하게 해주죠.
이번 글에서는 대표적인 형상관리 도구인 CVN, SVN, Git의 개념과 특징을 간단히 정리해보겠습니다.
1️⃣ CVN (Concurrent Versions System)
CVN은 형상관리 시스템의 원조격인 도구입니다. 리눅스 커널이 태동하던 시절부터 사용되었으며, CVS(Concurrent Versions System)라고도 불립니다.
- 📌 특징
- 중앙 집중형 구조
- 텍스트 기반 파일 관리에 최적화
- CLI 중심의 인터페이스
- 브랜치 및 병합 기능이 제한적
- ⚠️ 단점
- 브랜치/머지 지원이 미흡해 대규모 협업에 부적합
- 바이너리 파일 처리에 약함
- 현재는 거의 사용되지 않음 (SVN이나 Git으로 대체됨)
2️⃣ SVN (Subversion)
SVN은 CVN의 단점을 보완한 중앙집중형 버전 관리 시스템입니다. 많은 기업과 오픈소스 프로젝트에서 Git이 나오기 전까지 주요 형상관리 도구로 사용되었습니다.
- 📌 특징
- 중앙 저장소(Repository) 기반의 구조
- 디렉터리 단위로 버전을 관리
- 브랜치 및 태그 개념 존재 (하지만 Git만큼 강력하진 않음)
- GUI 툴(TortoiseSVN 등)도 잘 갖춰져 있어 접근성이 좋음
- ✅ 장점
- 대형 바이너리 파일 처리에 유리
- 단순한 프로젝트에서는 Git보다 직관적
- ⚠️ 단점
- 브랜치 간 병합이 번거롭고 충돌 관리가 어려움
- 중앙 저장소가 없으면 작업 자체가 불가능
3️⃣ GIT
Git은 리누스 토르발즈가 리눅스 커널 개발을 위해 만든 분산형 버전 관리 시스템입니다. 현재 가장 널리 사용되는 형상관리 도구죠.
- 📌 특징
- 분산 저장 구조 (개발자 로컬에도 전체 이력이 저장됨)
- 강력한 브랜치/병합 기능
- 커밋 단위 추적 및 롤백 용이
- GitHub, GitLab, Bitbucket 등 다양한 호스팅 플랫폼과 연동
- ✅ 장점
- 빠른 속도와 유연한 워크플로우
- 오프라인에서도 작업 가능
- 오픈소스 커뮤니티와의 연계가 활발
- ⚠️ 단점
- 초보자에게는 다소 진입장벽이 높음
- 대용량 바이너리 파일에는 다소 불편 (→ LFS 사용 필요)
🔚 결론
구분 구조 협업 방식 브랜치 기능 사용 현황
CVN | 중앙집중형 | 제한적 | 매우 약함 | 사용 거의 안 함 |
SVN | 중앙집중형 | 가능 | 있으나 제한적 | 일부 기업 및 레거시 프로젝트 |
GIT | 분산형 | 매우 강력 | 유연하고 강력 | 현재 가장 널리 사용 |
형상관리는 단순한 도구의 선택을 넘어 개발 문화와 협업 방식을 정의합니다. Git이 대세인 시대지만, 프로젝트의 성격이나 팀의 기술 스택에 따라 SVN 등 다른 도구를 선택하는 것도 고려할 수 있습니다.
아티팩토리(Artifactory)
- 아티팩트를 관리하는 툴
jfrog artifactory 와 sonatype nexus 가 가장 많이 쓰인다
- 사진은 sonatype에서 제공한 비교표인데 너무한거 아닌지 ㅋㅋㅋㅋ 본인들 솔루션에 유리한 항목표로 오히려 반감든다..
2023 software artifact 순위 - https://jfrog.com/artifact-state-of-union/