JongTachi의 개발 블로그

SVN이란? 본문

IT_Tools

SVN이란?

JongTachi 2023. 2. 10. 11:06
728x90
반응형

1. SVN의 정의

SVN은 SuvVersion의 줄임말로 형상관리/소스관리 툴이다. SVN은 project를 여러명이서 작업하는 경우 버전관리나 각자 만든 소스의 통합과 같은 문제를 쉽게 해결하기 위해 따로 저장소를 만들어 그곳에 소스를 저장해 소스의 중복이나 여러 문제를 해결하기 위한 Software이다. 즉 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있도록 도와주는 틀이다. (git과 비슷한 개념이라 생각하면 된다.)

 

Project 소스는 SVN 서버의 Trunk라는 곳에 위치해있고 자신의 Local에 Trunk의 소스를 다운받아 수정 및 추가 후 다시 업로드(Commit) 하는 방식이다. 자신만의 소스를 다른 개발자들과 떨어져서 작업하려면 Branch를 만들어 작업 후 자기 자신만 접근하여 개발하며 완성되면 Merge 하여 Trunk와 소스를 합치면 된다.

 

'철수'라는 사람이 수정한 소스나 폴더를 Commit하면 '민지'는 해당 소스를 Update 받으면 최신의 소스를 받아올 수 있다. 

 

2. SVN과 GIT의 차이점 

1) SVS -> 중앙 집중식 버전 관리 시스템(CVSC)

SVN

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

 

2) git -> 분산 버전 관리 시스템(DVSC)

git

DVCS에서는 클라이언트가 파일들의 마지막 스냅샷을 가져오는 대신 저장소를 통째로 복제한다. 이는 서버에 문제가 생기면 모든 버전관리 작업이 All Stop 되는 CVCS와 달리 클라이언트의 내용을 서버에 복사하면 서버를 복구할 수 있다. 체크아웃 할 때마다 전체를 백업한다. DVCS에서는 다수의 원격 저장소(repository)를 갖는 것이 가능하기 때문에 동시에 여러 그룹과 여러 방법으로 함께 작업할 수 있다.

 

 

 

 

728x90
반응형

'IT_Tools' 카테고리의 다른 글

Apache Jmeter(성능, 부하 테스트)  (0) 2023.02.13
파싱(Parsing)이란? (파싱, 토큰, 파스트리)  (0) 2022.11.02
VPN이란?  (0) 2022.10.21
AWS란? (클라우드 개념 포함)  (1) 2022.09.29
API 정의, 특징, 종류  (0) 2022.08.08