SVN 이란

2019. 9. 26. 15:57 from Tools with server

SVN 이란? SVN 사용이유


SVN은 SubVersion의 줄임말로 형상관리/소스 관리 툴이다


SVN의 사용목적: 여러명이서 작업하는 프로젝트의 경우 버전관리나 각자 만든 소스의 통합과 같은 문제를 해결하기 위해 저장소를 만들어 그곳에 소스를 저장해 소스 중복이나 여러 문제를 해결하기 위한 Software이다. 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 툴.


프로젝트 소스는 SVN 서버의 Trunk라는 곳에 위치 -> 자신의 Local에 Trunk의 소스를 다운 받아(update) 수정 및 추가 후  다시 업로드(commit)하는 방식


자신만의 소스를 다른 개발자들과 떨어져서 작업하려면 Branch(원 소스의 나뭇가지)를 만들어 작업 후 자기자신만 접근하여 개발하며 완성되면 Merge 기능을 사용하여 Trunk와 소스를 합치면 된다. 


A가 자신이 수정한 소스나 폴더를 Commit하면 B는 해당 소스를 Update받으면 최신의 소스를 받아올 수 있다


버전관리의 목적


작업 이력 관리

문제 파악

예전 버전의 파일 복원

수정한 부분 검증

협업 지원



SVN과 GIT의 차이점


SVN 중앙 집중식 버전 관리 시스템 (Centeralized Version Control System; CVCS)


CVCS에서는 버전 관리되는 모든 파일을 저장하는 하나의 서버와, 이 중앙 서버에서 파일들을 가져오는(checkout) 다수의 클라이언트가 존재 합니다. (SVN에서 프로젝트를 Checkout받아 프로젝트를 로컬에 가져오고, 이를 수정하고 커밋하면 다시 서버에 저장되는 구조)



이러한 CVCS는 단점이 하나 있는데 중앙 서버가 잘못되면 모든 것이 잘못된다는 점. 만약에 서버가 다운될 경우, 서버가 다시 복구 될 때까지 다른사람과의 협업이나, 진행 중이던 버전관리도 어려워지게 된다.


Git 분산 버전 관리 시스템(Distributed Version Control System; DVSC)


DVCS에서는 클라이언트가 파일들의 마지막 스냅샷을 가져오는 대신 저장소(Repository)를 통째로 복제. 이는 서버에 문제가 생기면 모든 버전관리 작업이 All Stop되는 CVCS와 달리, 클라이언트의 내용을 서버에 복사하면 서버를 복구 할 수 있다. 체크아웃 할 때마다 전체 백업.


게다가 대부분의 DVCS에서는 다수의 원격 저장소(remote repository)를 갖는 것이 가능하기 때문에 동시에 여러 그룹과 여러 방법으로 함께 작업할 수 있다. 이로 인해 CVCS에서는 할 수 없는 다양한 작업 방식 들을 사용해 볼 수 있다.


'Tools with server' 카테고리의 다른 글

github 란  (0) 2019.09.27
git 구조  (0) 2019.09.27
git 이란  (0) 2019.09.27
웹 호스팅  (0) 2019.09.26
웹(Web) 이란?  (0) 2019.09.26
Posted by 나무길 :