25.02.13 TIL SVN

신성훈·2025년 2월 13일
0

TIL

목록 보기
132/162

1. SVN(Subversion)이란?

SVN(Subversion)은 중앙 집중식 버전 관리 시스템(CVCS, Centralized Version Control System) 중 하나로 코드 변경 사항을 추적하고 여러 개발자가 협업할 수 있도록 돕는 도구입니다.
Git과 같은 분산 버전 관리 시스템(DVCS)과 달리 중앙 저장소(Repository)를 사용하여 버전을 관리합니다.

SVN은 "CVCS" 방식으로 중앙 서버가 모든 버전을 관리하며 개발자들은 중앙 저장소에서 코드를 가져와 수정 후 다시 업로드합니다.


2. SVN의 기본 개념

개념설명
Repository (저장소)코드 및 변경 이력을 저장하는 중앙 서버
Working Copy (작업 복사본)개발자가 로컬에서 작업하는 코드
Commit로컬 변경 사항을 저장소에 반영
Update저장소에서 최신 변경 사항을 가져오기
Revert변경 사항을 이전 상태로 되돌리기
Branch기존 코드에서 분리하여 새로운 기능을 개발하는 공간
Merge분리된 브랜치의 변경 사항을 다시 통합
Conflict여러 개발자가 같은 파일을 수정할 때 발생하는 충돌

3. SVN 기본 명령어

명령어설명
svn checkout <URL>저장소에서 로컬로 프로젝트 다운로드
svn update저장소에서 최신 변경 사항 가져오기
svn add <파일>새 파일을 저장소에 추가 (Commit 필요)
svn commit -m "설명"변경 사항을 저장소에 반영
svn status변경된 파일 목록 확인
svn log변경 이력 조회
svn revert <파일>변경 사항을 취소하고 이전 상태로 되돌리기
svn merge <브랜치>특정 브랜치의 변경 사항을 현재 브랜치에 병합

4. SVN vs Git 비교

비교 항목SVN (Subversion)Git
구조중앙 집중식 (CVCS)분산형 (DVCS)
저장소서버에서 모든 변경 관리로컬에도 전체 이력 저장
속도네트워크 의존적로컬에서 빠르게 수행 가능
브랜치 관리무겁고 느림가볍고 빠름
충돌 해결서버 기반 충돌 해결로컬에서 병합 후 Push
네트워크 필요 여부항상 필요로컬에서도 작업 가능
  • SVN은 중앙 집중식 시스템으로 관리가 용이하지만, Git에 비해 협업 시 유연성이 부족합니다.
  • Git은 로컬에서도 자유롭게 작업할 수 있어 분산 개발 환경에 더 적합합니다.

5. SVN 브랜치와 태그

1) 브랜치 생성

svn copy http://svn.example.com/repos/project/trunk \
         http://svn.example.com/repos/project/branches/new-feature \
         -m "새 브랜치 생성"

2) 브랜치 병합

svn merge http://svn.example.com/repos/project/branches/new-feature

3) 태그 생성 (릴리즈 버전 관리)

svn copy http://svn.example.com/repos/project/trunk \
         http://svn.example.com/repos/project/tags/v1.0 \
         -m "버전 1.0 태그 생성"

6. SVN의 장점과 단점

- 장점

  • 중앙 집중식 관리로 통제 용이
  • 대규모 프로젝트에서 사용 용이
  • 파일 단위 버전 관리 지원 (Git은 전체 변경 사항을 트래킹)
  • 바이너리 파일 관리가 Git보다 효율적

- 단점

  • 네트워크 연결 없이는 작업 불가
  • Git보다 브랜치 관리가 불편
  • 속도가 느림 (모든 작업이 서버와 통신 필요)

7. SVN 실무 활용 예시

1) 프로젝트 저장소에서 체크아웃

svn checkout http://svn.example.com/repos/myproject

2) 새로운 기능 개발

cd myproject
echo "새 기능 추가" >> feature.txt
svn add feature.txt

3) 저장소에 반영 (커밋)

svn commit -m "새 기능 추가"

4) 최신 변경 사항 업데이트

svn update

5) 변경 이력 확인

svn log

8. 마무리

SVN은 한때 버전 관리 시스템의 표준이었지만 Git이 등장하면서 사용이 줄어들고 있습니다.
하지만 대규모 기업 환경에서는 여전히 SVN을 사용하는 곳도 많으며 바이너리 파일 관리에 강점이 있습니다.
SVN을 사용하면서 중앙 집중식 시스템의 장점과 단점을 모두 경험할 수 있었고 Git과 비교하며 버전 관리 시스템의 발전을 체감할 수 있었습니다.

profile
조급해하지 말고, 흐름을 만들고, 기록하면서 쌓아가자.

0개의 댓글