Jay's Developer Note

[SVN] SVN 용어 정리 본문

VCS/SVN

[SVN] SVN 용어 정리

Jay(J) 2022. 1. 19. 00:19
728x90

SVN 용어 정리(SVN Terms)

어떤 분야가 됐건 그 분야에 종사하는 사람과 대화를 하기 위해서는 기본적으로 통용되는 단어(용어)를 알아야 의사소통이 가능하다.

그뿐 아니라 그 용어들은 길게 표현해야 하는 의미를 함축적으로 전달할 수 있는 아주 좋은 방법이다.

그래서 필자는 프로젝트를 진행할 때 기본적으로 통용되는 용어 외에도 서로가 이해 가능한 용어를 사용하는 것을 좋아한다.

SVN 에도 마찬가지로 용어들이 존재한다. 지금부터 그 용어들에 대해 알아보도록 하겠다.

 

Repository : 저장소

SVN 에서 저장소는 보통 Remote Repository(원격 저장소)를 의미한다.

즉, 서버에 올라가 있는 저장소로 URL 이 있는 모든 사용자가 '접근'이 가능하다.

 

Revision : 리비전

저장소에 올라가 있는 파일들의 버전이라고 생각하면 된다. 이 리비전을 통해 롤백을 하거나 이전에 소스코드를 확인할 수 있다.

이 리비전 숫자는 commit 행위를 할 때마다 올라가게 되므로

커밋 시 어떤 변경사항들이 발생했는지 Commit Message 를 잘 작성해야 한다.

 

Trunk : 트렁크

트렁크는 영어 단어의 뜻답게 기둥이 되는 것이다. 해당 저장소의 중심이 된다는 의미이다.

말이 이해가 잘 안 갈 것이다. 밑에 브랜치와 함께 보도록 하겠다.

 

Branch : 브랜치

브랜치는 트렁크와 마찬가지로 영어 단어의 뜻적으로 접근하면 나뭇가지를 뜻한다. 나뭇가지는 나무의 몸통에서부터 파생되어 나온다.

 

* 그렇다면 트렁크는 중심에서 전체적으로 에러가 없이 잘 돌아가는 소스코드이고

   브랜치는 그 트렁크에서 기능 추가, 수정을 하기 위해 가지로 뻗어 나와 있는 기둥에 영향을 안 주는 소스코드이다.

   나뭇가지를 자른다고 기둥이 죽지는 않는다.

그림으로 표현하면 위와 같다.

그래서 보통 개발할 때는 기반이 되는 Trunk 소스코드에서 기능 별로 혹은 메뉴 별로 혹은 카테고리 별로(이건 프로젝트 내부 룰에 따라) Branch 만들어서 개발하고 나중에 Trunk 에 합치는 식으로 개발을 진행한다.

 

Tag : 태그

태그는 여러 브랜치들이 모여서 만들어진 트렁크에 대해 어느 특정 지점을 기록하기 위한 꼬리표라고 생각하면 된다.

주로 상용 서비스에서는 Release 단위에 따라 태그를 붙이는 편이다.

 

Checkout : 체크아웃

체크아웃은 초기에 원격 저장소에서 작업을 하기 위해 소스코드를 내 PC 로 내려받는 것을 의미한다.(Git 의 Clone 과 동일함)

 

Import : 임포트

임포트는 초기에 원격 저장소에 버전 관리할 소스 코드를 넣는 것을 의미한다.

 

Export : 익스포트

익스포트는 임포트와 반대로 원격 저장소에서 소스 코드를 가져오는 것을 의미한다. 체크아웃과 다른 점은 .svn 숨김 폴더는 제외한다는 것이다. 즉, 버전 관리 파일을 제외한 순수 소스 코드만 가져오는 것이다.

 

Commit : 커밋

커밋은 원격 저장소에 변경된 변경 사항들을 저장하는 것을 의미한다.

내 PC에서 아무리 열심히 해도 커밋을 안 한다면 아무 소용이 없다.

커밋을 하게 되면 저자(Author)와 커밋 메시지, 일자와 일시가 찍히고 리비전이 갱신된다.

 

Update : 업데이트

업데이트는 원격 저장소에서 다른 사람에 의해 변경된 소스 코드를 내 PC 에 반영하는 작업이다.

업데이트는 수시로 해주는 게 좋다. 작업을 시작하기 전에, 커밋을 하기 전에는 필수로 해준다.

 

Revert : 리버트, 롤백

리버트는 내 PC 에서 수정했던 작업 내역을 되돌리는 작업이다. 파일 단위로 할 수도 있고 폴더 단위로 할 수도 있다.

 

Merge : 머지, 병합

머지는 내 브랜치와 다른 사람이 작업해 둔 브랜치를 합치는 작업이다. 업데이트 시에는 자동적으로 진행되는 작업이다.

 

Conflict : 컨플릭트, 충돌

가장 까다롭고 귀찮은 녀석이다..

일단 충돌이 나는 이유는 동일한 파일을 서로 다른 프로그래머가 개발할 경우 자주 발생한다.

충돌이 발생하면 하나하나 비교해가면서 병합을 해야 한다..

사람이 하는 것이기에 휴먼에러가 발생할 가능성이 있고 그렇게 되면 개발됐던 소스 코드들을 날려버릴 수가 있다...

미연에 방지하기 위해서는 원격 저장소와 동일한 파일 상태에서 업데이틀 무조건 해주는 것이 정신건강에 이롭다..

 

Lock : 락

그래서 있는 것이 이 Lock(락) 이라는 것이다.

이 명령어를 파일에 걸어두면 락을 건 사용자만 해당 파일을 수정할 수 있다.

사용한 후에는 반드시 unlock 을 해주는 것을 잊지 말자.

 

Diff : 디프

단어를 보면 알다시피 Difference 의 약자이다. 현재 소스 코드 대비 특정 리비전의 소스 코드와 차이점을 볼 수 있다.

특정 리비전 2개의 차이점을 볼 수도 있다.

 

Add : 추가

원격 저장소에 커밋하기 위해 VCS 목록에 추가하는 것을 의미한다.

 

Ignore : 이그노어

Add 와는 반대로 커밋 목록에서 제외하는 것을 의미한다.

 

이 정도면 SVN 을 쓰는 현업에서는 어느 정도 대화에 참여할 수 있을 것이다.

다음 게시글에서는 TortoiseSVN 의 아주아주 간단한 사용법에 대해 다뤄보겠다.

728x90

'VCS > SVN' 카테고리의 다른 글

[SVN] IDE(Intellij) 에서 SVN 연동하기  (0) 2022.01.24
[SVN] TortoiseSVN 간단 사용법  (2) 2022.01.22
[SVN] TortoiseSVN 을 설치해보자!  (0) 2022.01.11
[SVN] SVN 이란 ?  (0) 2022.01.11