이모저모
내가 진행하는 프로젝트들은 모두 git을 통한 이슈, 버전 관리를 진행 했다.
타사 PM님들을 만나보니 Perforce라는 툴을 이용하고 있다는 이야기를 들어서, Git과의 차이점을 간단하게 조사하고 기록해둔다.
Git 과 Prerforce의 차이
| Git | Perforce |
|---|
| 분산형 버전 관리 시스템 | 중앙 집중형 버전 관리 시스템 |
| 라이선스 비용 X | 라이선스 비용 O |
| 로컬 작업 가능 (네트워크 연결 X) | 중앙 서버 의존형 (네트워크 연결 필수) |
| 전체 저장소의 복사 | 필요한 파일만 다운로드하여 사용 |
| 로컬에서 자유롭게 브랜치 생성, 조작 가능 | 브랜치 작업 시 중앙 서버와 동기화 필요 |
버전 관리 구조의 차이
- Git은 프로젝트 규모가 커질수록 성능이 떨어질 수 있다. (로컬에 전체 저장소를 가져와야 하므로)
- Perforce는 클라이언트가 필요한 파일만 서버에서 내려받기 때문에 프로젝트 규모가 커질수록 효율적일 수 있다.
브랜치
- Git에서 브랜치는 로컬에서 빠르고 쉽게 생성되고 삭제될 수 있으며, 하나의 명령으로 생성하거나 전환할 수 있다.
- 내가 진행한 프로젝트는 이를 통해서 내 작업을 테스트 하기 위한 만들고 빌드해보기도 했었음.
- Perforc는 모든 코드와 파일 변경 내역이 중앙 서버에 저장되고 관리되기 때문에 브랜치 작업은 중앙 서버와 연동된 상태에서 이루어진다. (중앙 서버 동기화 필수)
- Perforce의 브랜치는 파일 간의 관계를 정의하는 일종의 매핑 규칙에 가깝다
파일 잠금 기능
- Git은 기본적으로 분산된 구조로 인해 파일 잠금 기능이 없다.
- 그래서 여러 사용자가 동일한 파일을 동시에 수정할 수 있으며, 충돌이 발생 하면 머지 할 때 문제가 생길 수 있다. (수동으로 해결은 가능하지만 복잡해진다.)
- 바이너리 파일(예: 이미지, 동영상, 모델 파일)은 충돌 해결이 불가능해서 수정 시 꼭 노티가 필요했음.
- Helix Core는 중앙 집중형 구조이기 때문에 파일 잠금(Lock)을 지원 해준다.
- 내가 특정 파일을 수정하는 동안 다른 사용자가 수정할 수 없도록 할 수 있음 (무결성 유지에 Good)
Perforce 라이선스 비용을 알아보니, 사용자당 연간 라이선스 비용은 $800~%1,000 수준이라고 함.