Solution/SVN

SVN 이란?

FreeEnd 2010. 9. 13. 22:46
반응형

 SVN 은 Subversion의 약자로 형상관리를 하기 위한 어플리케이션의 일종이다.
 간단히 말해 각 수정된 소스 파일에 일률적인 버젼과 로그를 남기고 각 파일의 빌드 이력을 남겨 하나의 프로젝트를 지원하기 위한 어플리케이션 이라고 이해하면 얼추 맞을 것이다.

 이 어플리케이션 자체 하나만 보고 생각하면 굉장히 간단한 어플리케이션이다. 개발자, 혹은 파일을 수정하는 누군가가 어떤 파일을 수정하고 해당 이력을 남기고 서버에 저장하면 다른 사용자는 해당 변경된 내역을 기록과함께 열람하고 자신이 가지고 있는 파일의 변경사항을 변경, 적용할수 있도록 도와주는 것이다. 말하니깐 뭐 간단하진 않쿠만.

 이러한 어플리케이션이 왜 필요하는가??????????????????????????
  왜묻는것인가. 당신은....-_-;

 개발자가 1~2명에 불과한 소형 프로젝트에서는 이러한 소스 변경 사항을 기록, 공유를 돕는 어플리케이션이 절대적으로 필요하진 않다. 뭐 두명이 개발하는데 옆에서... "나 이거 수정했어... 너도 수정해. 텍스트 파일로 줄께 비교해봐" 라던지.. 아니면 "내가 인서트 모듈만 개발할께 너는 셀렉만 해라" 뭐 이런 상황이면 구지 소스 공유, 이력 공유 따위는 절대 필요 없다. 더 귀찮겠지뭐.

 하지만 일반적은 개발 프로젝트는 그렇치 않다. 개발자만 수십명인 프로젝트에서 각 소스들은 전문적으로 모듈화 되어 있다고는 하지만 각 모듈, 혹은 프로젝트는 서로 연관성이 다분하고 의존적이며, 심지어는 상속관계 일 경우에. 일반적인 텍스트 파일 공유나 전화로는 한계가 다분히 느껴질 것이다.
  이에 따라 소스 파일 업데이트 이력이 점차 중요해지고, 그 이외의 다양한 기능이 요구된 것이다.

 SVN은 이러한 난감하고 답답한 상황을 어느정도 해소해 준다. 소스의 변경사항 이력관리가 가능하고, 타인의 변경 사항에 대해서 현재 작업중인 파일에 대한 비교, 조합(Merge) 가 가능하며, 변경사항에 대해서 다른 개발 방향으로 분기(Branch)가 가능하다.
 
 이러한 기능은 형상관리(SCM : Software Configration Management) 에 절대적으로 필요한 기능중 하나이다. 형상관리란... 아.. 자꾸 말하다 보니 깊히 들어간다. 간단히 말해 어떠한 프로그램에 대하여 큰 형태의 구조적인 모습(형상)을 이루어 나가는 하나의 프로세스라고 생각하면 된다. 더 간단히 말하자면... 어떤 로보트를 만든다면 부분별로 만들어 하나로 합치는 거라고 생각하자. 아. 밤늦게 자꾸 깊히 말하려니깐 졸리다. 나중에 형상관리에 대해서 다시 한번 깊히 생각해보자.
 여튼. 로봇을 만들라면 팔이나 다리나 구조적으로 어느정도 조합이 되어야 하나로 조립하고 큰 틀을 만들어 나가지 않겠는가. 이렇게 구조적인 모습을 만들어 나가는 프로세스를 형상관리라고 표한하고 이렇게 구조적인 모습을 만들어나가는 부분을 이력관리 할수 있게 도와주는 어플이 바로 SVN이라고 말하고 싶다. 아.. 내가 무슨 말 하고 있는지.. 참..

 여튼. 내가 이렇게 까지 말했으면 좀 이해 하자. SVN은 소스에 대한 이력관리, 버젼관리하는 프로그램이다. 이걸 지금껏 설명한 것이다.

 참고로 SVN은 오픈소스 프로젝트이고 이것을 이용해서 subclipse, TortoiseSVN, RapidSVN 등의 다양한 서프파트 프로젝트가 개발되어 있거나 개발 중이니 자신이 원하는 목적에 맞게 개발, 수정, 사용하면 되겠다. 지영옹.

 SVN 프로젝트 홈페이지 : http://subversion.tigris.org/

반응형