재밌고 어려운 IT를 이해해보자~!

SVN 본문

개인공부

SVN

언제나즐거운IT 2024. 11. 7. 15:54

SVN은 SubVersion 단어의 줄임말로 중앙집중관리식 형상관리 소스 관리 툴이다.

 

각각의 개발자들이 본인의 코드 변경 사항을 하나의 중앙 저장소 (Center Repository) 에 commit 하는 방식으로 운영합니다.

즉, 로컬 PC에서 커밋 시 중앙 저장소에 바로 반영되고 중앙 저장소에 있는 내용들을 다른 로컬 PC에 업데이트 시킬 수 있습니다.

이해가 직관적이라는 장점이 있지만 중앙 저장소에 문제가 발생될 경우에 서비스 자체가 중단되는 현상이 발생할 수 있습니다.

 

SVN이라고 하는 형상관리 툴이 저장소의 파일들의 이름을 변경할 수 없는 한계, 디렉토리의 이동이나 이름 변경을 지원하지 않는 한계, 유니코드로 된 파일 이름을 제한적으로만 지원하는 한계점들을 가지고 있어 이를 보완하기 위한 형상관리 툴입니다.

 

SVN 장점


원자적인 커밋을 지원하므로 다른 사용자의 커밋과 얽히지 않습니다. 롤백도 가능합니다.
파일과 디렉토리의 삭제, 이동 이름 변경, 복사같은 기능들을 지원합니다.
소스 파일 이외에 이진 파일(텍스트 파일이 아닌 컴퓨터 파일) 도 효율적으로 저장 가능합니다.
디렉터리도 버전 관리를 할 수 있습니다.
저장소의 크기에 상관없이 일정한 시간 안에 가지치기나 태그를 할 수 있습니다.
처리 속도가 상대적으로 빠릅니다.


 SVN 단점
소스코드는 merge가 가능하지만 이진파일은 어느 한쪽을 버릴 수 밖에 없습니다.
개별 개발자만의 개발 이력을 가질 수 없습니다.
잦은 커밋이 발생하면 리비전 번호가 크게 증가할 수 있습니다.
충돌이 일어날 확률이 높습니다.

 

git 같은 형상관리 툴이었다!

그럼 git과의 차이는 뭘까 ??

 

SVN과 Git의 차이점
- Git이 SVN과 다른 점은 분산형 관리 시스템이라는 것

SVN : 중앙 서버에 소스코드와 히스토리를 저장

Git : 소스코드를 여러 개발 PC와 저장소에 분산해서 저장- 그렇기 때문에 중앙 서버에 장애가 발생해도 로컬 저장소에 커밋을 할 수 있으며, 로컬 저장소들을 이용하여 중앙 저장소의 복원도 가능하다.

사본을 로컬에서 관리하기 때문에 GIT이 SVN에 비해 훨씬 빠르다. (SVN은 변경 로그 하나 보는 것도 인터넷을 경유해야 한다.)

 

 

 

 

 

 

 

 

 

 

 

 

 

*참조 

https://jindevelopetravel0919.tistory.com/208

https://hahahoho5915.tistory.com/40

'개인공부' 카테고리의 다른 글

Nginx  (2) 2024.11.11
CodeIgniter  (2) 2024.11.07
금융, 증권IT  (1) 2024.11.06
AWS로 만든 서버에 접속하기  (0) 2024.11.02
웹 개발자의 Linux 사용 이유  (0) 2024.11.01
Comments