들어가며
Git이 현재의 버전 관리 표준이라면, 그 이전 세대에서 널리 사용되던 시스템은 바로 **SVN(Subversion)**입니다.
SVN은 중앙 집중형 버전 관리 시스템(Centralized Version Control System, CVCS)으로, 현재도 여전히 일부 대기업, 공공기관, 레거시 프로젝트에서 사용되고 있습니다.
이 글에서는 SVN의 개념, 구조, Git과의 차이점, 실무에서의 사용 맥락을 소개하며 SVN 카테고리의 첫 글을 시작하겠습니다.

SVN이란?
SVN(Subversion)은 중앙 서버에 모든 소스와 이력을 저장하고, 사용자는 그 서버에서 체크아웃하여 작업하는 방식의 버전 관리 시스템입니다.
2000년대 초반에 CVS의 한계를 극복하기 위해 만들어졌으며, Git이 대중화되기 전까지 가장 널리 사용된 버전 관리 도구였습니다.
주요 특징
- 중앙 저장소 방식: 모든 버전 관리와 변경 이력이 중앙 서버에서 관리됨
- 작업 단위는 디렉토리: trunk, branches, tags 구조 사용
- 파일 잠금 기능 지원: 동시에 수정되면 충돌이 발생할 수 있는 파일 보호 가능
- 빠른 속도보다는 안정성과 통제력 중시
SVN의 구조와 기본 용어
1. 저장소(Repository)
- 중앙 서버에 위치한 전체 프로젝트 소스 및 이력 저장소
2. 작업 복사본(Working Copy)
- 개발자가 체크아웃한 로컬 복사본 (개인 작업 공간)
3. 커밋(Commit)
- 로컬 변경 사항을 중앙 서버에 반영
4. 업데이트(Update)
- 중앙 서버의 변경 사항을 로컬 작업 복사본에 반영
5. 브랜치/태그
- Git의 브랜치와 달리 디렉토리 복사 방식으로 구현 (예: branches/feature-x, tags/v1.0.0)
SVN vs Git 비교
항목 | SVN | Git |
저장 방식 | 중앙 서버 | 분산 저장소 (로컬 + 원격) |
브랜치 | 디렉토리 복사 기반 | Lightweight 브랜치 체계 |
네트워크 의존성 | 항상 중앙 서버 연결 필요 | 로컬에서도 대부분의 작업 가능 |
성능 | 대규모 이력 처리에 상대적으로 느림 | 빠름 (로컬 저장소 활용) |
충돌 해결 | 수동 병합 필요 빈도 높음 | 다양한 병합 도구, 전략 내장 |
실무에서 SVN은 언제 사용될까?
- 이미 구축된 레거시 프로젝트를 유지보수할 때
- 보안 통제가 강한 조직에서 외부 Git 서버 사용이 제한될 때
- 디자인 파일, 문서 등 충돌 우려가 높은 바이너리 파일을 잠금 기반으로 관리할 때
- *표준화된 릴리즈 디렉토리 구조(trunk/branches/tags)**가 필요할 때
SVN 명령어 기본 예시
svn checkout <http://svn.example.com/repo/project>
svn update
svn add filename
svn commit -m "설명"
svn status
svn diff
svn log
마치며 – 앞으로 다룰 SVN 주제들
SVN은 Git과 비교하면 다소 낡은 기술처럼 보일 수 있지만, 특정 상황에서는 여전히 유효하고 신뢰할 수 있는 버전 관리 시스템입니다.
이 블로그에서는 다음과 같은 SVN 관련 실무 주제를 다룰 예정입니다:
- SVN 서버 구성 및 클라이언트 설치 방법
- trunk/branches/tags 구조로 브랜칭 전략 운영하기
- SVN GUI 도구 (TortoiseSVN, SmartSVN) 활용법
- 충돌 해결 및 백업 전략
- SVN → Git 마이그레이션 실전 방법
과거를 이해하면 현재를 더 잘 다룰 수 있습니다. SVN도 그 흐름의 일부로 함께 이해해봅시다!
📌 다음 글 미리보기
👉 SVN 서버 구성 및 클라이언트 설치 방법
📚 Git 시리즈 전체 보기
👉 https://jobreview.tistory.com/category/scm/svn
댓글