Git을 쓰는데 왜 자꾸 게임회사 채용공고에 ‘Perforce 경험자 우대’가 붙을까요? 처음 보는 분들은 낯설 수 있는데, 실제 현업에서는 꽤 오래전부터 쓰여온 도구입니다. 특히 수십 GB짜리 3D 에셋을 수백 명이 동시에 작업하는 환경에서는 Git이 버티질 못합니다. 그 자리를 채우는 게 바로 Perforce(퍼포스)입니다.
Perforce가 뭔지 먼저 알고 가자
Perforce는 1995년 설립된 Perforce Software가 만든 버전 관리 시스템(VCS, Version Control System)입니다. 정확한 제품명은 Helix Core인데, 업계에서는 여전히 ‘Perforce’ 또는 ‘P4’로 통합니다.
Git이나 SVN처럼 코드 변경 이력을 추적하고 팀원들이 동시에 작업할 수 있게 도와주는 도구입니다. 그런데 구조 자체가 다릅니다. Git은 각자 로컬에 전체 저장소를 복제하는 분산형(Distributed)이고, Perforce는 중앙 서버가 모든 파일을 관리하는 중앙집중형(Centralized)입니다.
중앙집중형이 왜 지금도 쓰이나요?
분산형이 더 현대적인 방식처럼 느껴지지만, 중앙집중형에는 나름의 장점이 있습니다. 모든 파일과 이력이 서버 한 곳에 있기 때문에 관리가 명확합니다. 누가 어떤 파일을 체크아웃(Checkout)했는지 실시간으로 파악됩니다. 대규모 팀에서 파일 충돌(Conflict)을 사전에 막기 쉬운 이유입니다.
반면 Git은 로컬 브랜치가 자유롭게 갈라지다 보니, 수백 명이 동시에 수천 개 파일을 건드리면 머지(Merge) 지옥이 펼쳐집니다. 게임 프로젝트처럼 파일 하나하나가 수백 MB짜리인 경우엔 더 심각해집니다.
게임 개발 현장에서 Perforce를 쓰는 진짜 이유
EA, Ubisoft, Epic Games, Naughty Dog 같은 글로벌 게임사들이 Perforce를 쓰는 건 단순한 관성이 아닙니다. 분명한 기술적 이유가 있습니다.
대용량 바이너리 파일 처리
Git은 텍스트 기반 코드에 최적화되어 있습니다. 바이너리 파일(Binary File), 즉 이미지, 3D 모델, 사운드 파일 같은 것들은 변경 내역을 줄 단위로 비교할 수가 없습니다. Git은 이런 파일이 조금만 바뀌어도 전체를 새로 저장합니다. 수백 MB 텍스처 파일 10개만 수정해도 저장소가 수 GB씩 불어납니다.
Perforce는 바이너리 파일을 델타(Delta, 변경 부분만 저장) 방식으로 관리할 수 있고, 서버 측 압축도 효율적입니다. 수십 TB 규모의 게임 에셋도 안정적으로 운영되는 이유입니다.
💡 팁: Git에도 대용량 파일을 다루는 Git LFS(Large File Storage) 확장이 있습니다. 하지만 수백 명이 동시에 접근하는 엔터프라이즈 규모에서는 Perforce만큼의 성능을 내기 어렵다는 게 현업의 평가입니다.
파일 잠금(File Locking) 기능
게임 개발에서는 같은 파일을 두 명이 동시에 수정하면 심각한 문제가 생깁니다. 특히 바이너리 파일은 충돌이 나도 자동 병합이 불가능합니다. Perforce의 Exclusive Checkout(독점 체크아웃) 기능은 한 사람이 파일을 열면 다른 사람은 수정 권한이 잠깁니다. 아티스트가 작업 중인 캐릭터 모델을 다른 팀원이 동시에 건드리는 상황 자체를 원천 차단합니다.
스트림(Streams)을 이용한 브랜치 관리
Perforce의 Streams 기능은 Git의 브랜치와 비슷하지만, 계층적 구조(Hierarchy)로 관리됩니다. 메인라인(Mainline) → 개발(Development) → 릴리즈(Release) 흐름이 시각적으로 명확하게 보입니다. 수백 명이 동시에 작업하는 환경에서 코드 통합 정책을 일관되게 유지하는 데 유리합니다.
Git과 Perforce, 뭐가 어떻게 다른가?
두 도구를 나란히 놓고 비교해 보면 각각의 설계 철학이 보입니다.
| 구분 | Git | Perforce (Helix Core) |
|---|---|---|
| 방식 | 분산형 (Distributed) | 중앙집중형 (Centralized) |
| 대용량 파일 | 취약 (Git LFS로 보완) | 강점 (수십 TB 지원) |
| 파일 잠금 | 기본 미지원 | Exclusive Checkout 지원 |
| 브랜치 관리 | 가볍고 자유로움 | Streams로 구조화 |
| 오프라인 작업 | 완전 지원 | 제한적 |
| 학습 난이도 | 중간 | 중간~높음 |
| 라이선스 | 무료 오픈소스 | 유료 (소규모 무료 플랜 있음) |
| 주요 사용 분야 | 웹/앱 개발, 오픈소스 | 게임개발, 반도체, 항공우주 |
어느 쪽이 낫다고 단정 짓기보다는, 프로젝트 성격에 맞는 도구를 고르는 게 맞습니다. 코드 중심의 소규모 팀이라면 Git이 압도적으로 편합니다. 대규모 멀티미디어 에셋을 다루는 팀이라면 Perforce의 강점이 분명히 드러납니다.
Perforce의 기본 개념과 용어 정리
Perforce를 처음 접하면 생소한 용어들이 나옵니다. Git의 개념과 대응시켜 이해하면 훨씬 빠릅니다.
핵심 용어
- Depot: 파일이 저장되는 서버 측 저장소. Git의 Remote Repository에 해당합니다.
- Workspace (Client): 로컬 작업 공간. Git의 Working Directory와 비슷합니다.
- Changelist: 묶음 단위의 변경 사항. Git의 Commit과 유사합니다.
- Submit: 변경 사항을 서버에 반영하는 것. Git의 Push에 해당합니다.
- Sync: 서버의 최신 파일을 로컬로 가져오는 것. Git의 Pull과 비슷합니다.
- Revert: 체크아웃한 파일 수정을 취소하고 원래대로 돌리는 것.
- P4V: Perforce의 공식 GUI 클라이언트 도구 이름입니다.
기본 CLI 명령어 맛보기
Perforce는 p4 명령어로 CLI 작업을 합니다. 핵심 명령어 몇 가지만 보겠습니다.
# 서버 접속 설정
export P4PORT=ssl:perforce.example.com:1666
export P4USER=hayden
export P4CLIENT=hayden_workspace
# 로그인
p4 login
# 최신 파일 동기화 (Git pull과 유사)
p4 sync
# 파일 체크아웃 (수정 잠금 걸기)
p4 edit //depot/project/main/Assets/character.fbx
# 변경 사항 확인
p4 diff
# Changelist 생성 및 Submit (Git commit + push와 유사)
p4 change
p4 submit -c [changelist_number]
# 체크아웃 취소 (수정 내용 버리기)
p4 revert //depot/project/main/Assets/character.fbx
# 현재 체크아웃된 파일 목록 확인
p4 opened
⚠️ 주의: Perforce는 파일을 수정하기 전에 반드시 p4 edit으로 체크아웃해야 합니다. 그냥 로컬에서 파일을 열어 수정하면 Submit이 안 됩니다. Git과 가장 크게 다른 부분이라 처음엔 자주 실수합니다.
어떤 분야에서 Perforce를 쓰나요?
Perforce는 게임 개발만의 도구가 아닙니다. 대용량 파일과 복잡한 팀 협업이 필요한 분야라면 어디서든 채택됩니다.
게임 개발 (Game Development)
가장 대표적인 사용처입니다. Unreal Engine 공식 소스도 Perforce로 관리됩니다. Epic Games가 자사 엔진 개발에 직접 쓰기 때문에 Unreal 기반 게임 스튜디오에서 Perforce는 사실상 표준에 가깝습니다. EA, Activision, Rockstar Games도 마찬가지입니다.
반도체 및 하드웨어 설계 (Semiconductor / EDA)
칩 설계에 쓰이는 RTL 코드나 EDA(Electronic Design Automation) 툴 파일들은 크기가 매우 크고, 한 번의 실수가 엄청난 비용으로 이어집니다. 이력 관리와 감사 추적(Audit Trail)이 철저해야 하는 분야라서 Perforce가 선호됩니다.
항공우주 및 방산 (Aerospace & Defense)
Boeing, Lockheed Martin 같은 기업에서도 씁니다. 수십 년 단위로 유지보수해야 하는 시스템의 변경 이력을 엄격하게 관리해야 하고, 규제 컴플라이언스(Compliance) 요건도 까다롭기 때문입니다.
영상 및 미디어 제작
VFX 스튜디오나 애니메이션 제작사에서도 씁니다. 4K 이상 영상 파일이나 고해상도 텍스처, 3D 렌더링 파일은 Git으로 관리하기에 무리가 있습니다.
Perforce 도입, 실제로 어떻게 시작하나요?
Perforce는 유료 제품이지만, 소규모 팀을 위한 무료 플랜이 있습니다. 2025년 기준 Helix Core의 무료 티어는 사용자 5명, Workspace 20개까지 지원합니다. 소규모 인디 게임팀이나 테스트 환경으로 충분히 써볼 만합니다.
설치는 이렇게 시작합니다
Linux 서버에 Helix Core를 설치하는 기본 흐름입니다.
# Perforce 공식 패키지 저장소 추가 (Ubuntu 기준)
wget -qO - https://package.perforce.com/perforce.pubkey | sudo apt-key add -
echo "deb http://package.perforce.com/apt/ubuntu focal release" | sudo tee /etc/apt/sources.list.d/perforce.list
# 패키지 업데이트 및 Helix Core 서버 설치
sudo apt-get update
sudo apt-get install helix-p4d
# 서버 초기화 및 시작
sudo /opt/perforce/sbin/configure-helix-p4d.sh
# 서버 상태 확인
sudo systemctl status helix-p4d
서버가 떠있으면 P4V(GUI 클라이언트)를 로컬에 설치하고, 서버 주소와 계정을 입력해 연결하면 됩니다. P4V는 Perforce 공식 다운로드 페이지에서 무료로 받을 수 있습니다.
💡 팁: 처음 Perforce를 배우는 분이라면 CLI보다 P4V GUI 클라이언트로 시작하는 걸 권장합니다. Depot 구조와 Workspace 개념이 시각적으로 보이기 때문에 개념을 잡기 훨씬 쉽습니다.