1. SVN 이란?
- 버전 관리 시스템(VCS, Version Control System) 의 한 종류
- Apache Software Foundation에서 관리하는 오픈소스 프로젝트
- 소스 코드나 문서 파일처럼 시간에 따라 변경되는 데이터의 버전을 체계적으로 관리 가능
- 중앙집중형 버전 관리 시스템(Centralized Version Control System, CVCS)
- 중앙 저장소(Repository)에서 관리되며, 개발자들은 이 저장소로부터 파일을 내려받고, 변경사항을 반영하며 관리
2. SVN VS Git

SVN | Git | |
구조 | 중앙집중형(CVCS) | 분산형(DVCS) |
저장소 | 중앙 서버에 저장 | 각 개발자의 로컬에도 전체 저장소 복사 |
속도 | 서버 의존도가 높아 상대적으로 느림 | 로컬 작업이 많아 속도가 빠름 |
협업 방식 | 항상 중앙 저장소와 통신 | 로컬에서 작업 후 푸시(Push) |
브랜치 | 브랜치 생성 비용이 크고 병합이 번거로움 | 브랜치가 가볍고 병합이 쉬움 |
사용 용도 | 정형화된 협업, 변경 제어가 중요한 조직 | 빠른 개발, 분산 협업 환경에 유리 |
3. 관련 용어
용어 | |
Repository (저장소) | 소스 코드와 이력 정보가 저장되는 중앙 공간 |
Working Copy (작업 사본) | 로컬에 체크아웃(Checkout)한 복사본 (개발자는 이 로컬 복사본에서 작업 후 커밋) |
Checkout | 저장소로부터 파일을 내려받아 로컬에서 작업 사본( Working Copy )을 만드는 과정 |
Update | 중앙 저장소의 변경사항을 작업 사본에 반영하는 과정Git의 pull과 유사) |
Commit | 작업 사본의 변경 내용을 중앙 저장소에 반영하는 작업(Git의 push 와 다르게 바로 중앙 저장소에 저장) |
Revert | 변경 사항을 이전 상태로 되돌림 (커밋 전/후 모두 가능하나 상황에 따라 다르게 작동) |
Diff | 두 버전 간의 변경사항을 비교하는 기능 |
Log | 저장소에서 발생한 커밋 이력 (날짜, 작성자, 메시지 등) |
Branch | 독립적인 개발을 위한 분기선 (SVN에서는 브랜치가 디렉토리 복사 방식으로 관리되어 Git에 비해 무겁고 병합이 번거로움) |
Tag | 특정 시점의 소스 상태를 "이름"으로 보존하는 방식 (릴리즈 버전 관리 등에 사용) |
Merge | 브랜치나 작업 사본의 변경사항을 다른 곳으로 병합하는 작업 (Git보다 복잡함) |
Conflict | 여러 사용자가 같은 파일의 같은 부분을 수정했을 때 충돌 발생. (수동으로 해결) |
- 예시 코드
# 저장소에서 파일 내려받기
svn checkout http://www.example.com/project/main
# 작업 내용 서버에 업데이트
svn commit -m "수정한 내용 설명"
# 중앙 저장소의 변경사항을 로컬로 업데이트
svn update
# 작업한 파일 변경 사항 확인
svn status
svn diff
# 변경 내용을 이전으로 되돌리기
svn revert filename
4. commit 메시지 작성 요령 예시 (컨벤션)
- svn 을 커밋할 때, 메시지를 일정한 양식을 사용하여 유지보수 편의성을 증가시킬 수 있음
ex> svn commit -m "[type] : 수정한 내용"
- type 예시
- feat: 새로운 기능 추가
- fix: 버그 수정
- docs: 문서 수정 (예: README.md 수정)
- style: 코드의 스타일이나 포맷 변경 (기능 변경 없음)
- refactor: 코드 리팩토링 (기능 변경 없음)
- test: 테스트 코드 추가 또는 수정
- chore: 빌드 프로세스 또는 기타 설정 변경
'etc' 카테고리의 다른 글
[SVN] TortoiseSVN 설치 및 사용법 (0) | 2025.03.23 |
---|---|
[SVN] SVN 사용 전략 (0) | 2025.03.23 |
[알고리즘] MST (0) | 2024.10.21 |
[JavaScript] JSONView 브라우저에서 Json 표기 변환 (0) | 2024.01.24 |
Git 사용법 (0) | 2023.04.26 |