UE_5

[UE5 Perforce] 07. 프로젝트 파일 공유 & 협업 테스트하기.

뿌동 2025. 9. 30. 20:46
728x90
반응형

이전 글에서 워크스페이스를 생성한 뒤, 프로젝트를 서버에 최초로 업로드 하고, 외부PC를 연결하는 과정까지 배웠습니다.

이번 글에서는 업로드된 프로젝트를 외부PC에서 가져와서 실행하고, 실제로 파일을 수정하며 협업하는 테스트를 진행해보겠습니다.

 

모든 내용은 Perforce P4 가이드 홈페이지를 따릅니다.

 

https://help.perforce.com/helix-core/quickstart/current/Content/quickstart/admin-plan-deployment.html

 

Step 1: Plan your deployment | Admin

Step 1: Plan your deployment | Admin If you are the P4 administrator, you need to deploy P4 Server and configure it for your team. The first step is to decide if you want to manage P4 or have it managed by someone else. Then, you can decide how and where

help.perforce.com

 


 

01. 프로젝트 내려받기

 

새 워크스페이스는 비어 있기 때문에, 서버에 올린 언리얼 프로젝트를 가져와야 합니다.

 


1. 서버PC에서 파일을 업로드 합니다.

 

이전 글에서 디포에 파일을 업로드 하는 방법을 배웠었습니다.

업로드할 파일, 폴더를 선택하고 Add를 눌러서 보류 중인 변경 목록에 추가하고

변경 목록을 제출(Submit)하여 서버에 업로드 합니다.

 

변경 목록이 없다면 제출이 불가능할 수도 있습니다.

 


2. 외부PC에서 최신 파일을 동기화합니다.

 

워크스페이스 트리에서 워크스페이스 폴더(혹은 갱신을 원하는 폴더나 파일)을 누르고 상단 탭의 Get Latest를 누릅니다.

혹은 폴더를 우클릭하여 Get Latest Revision을 선택합니다.

 

로딩이 진행되고, 완료시 무시 파일을 제외한 파일이 내려받아집니다.

 

 

이제 워크스페이스 폴더를 확인하면 파일이 동기화 되어 있는 것을 확인할 수 있습니다.

임시 파일 등은 모두 제외되어 있네요.

 


3. 프로젝트를 리빌드합니다.

 

프로젝트를 실행하기 전에 프로젝트 리빌드를 진행해야 합니다.

저희는 협업에 필요한 파일만 받아왔기 때문에 이대로 실행한다면

Missing Modules과 같은 오류가 발생할 수 있습니다.

 

먼저 Generate Visual Studio project files를 클릭하여 파일을 재생성합니다.

프로젝트 파일 생성

 

생성 후

임시파일과 sln 파일이 잘 만들어졌네요.

C++을 이용한 프로젝트면 당연히 외부PC에도 Visual Studio가 깔려있어야 합니다.

 

이후에 첫 빌드를 진행해야 하는데

생성된 .sln 을 열고 Development Editor | Win64 대상으로 빌드하거나,

또는 uproject를 실행하고 Missing Modules 에러가 뜬다면 Yes를 눌러줍니다.

 

저는 두번째 방법을 이용했습니다.

 

이후 몇 분간 기다리면 언리얼 엔진이 실행되며 프로젝트가 실행됩니다.

 

 

프로젝트도 잘 실행되네요.


추가. 파일을 삭제하고 다시 다운로드 받고 싶을때

 

파일을 모두 삭제하고 다시 파일을 받으려면 no files updated라는 로그가 뜨면서 파일 다운로드가 되지 않습니다.

이는 Perforce가 로컬에 파일은 없지만, 이미 갖고 있는 것으로 판단하고 있기 때문입니다.

(변경된 항목이 없기 때문에 다운로드를 진행하지 않습니다.)

 

가장 빠른 해결 방법으로는 

내려받을 디포를 우클릭 → Get Revision → Force Operation 체크 → Get Revision을 클릭하면 강제로 동기화됩니다.

 


 

02. 파일 공유하기

 

서버PC에서 파일을 추가해보고, 외부PC에서 파일을 받는 테스트를 진행해보겠습니다.

외부PC → 서버PC의 경우도 같습니다.

 


1. 서버PC에서 텍스트 파일을 추가합니다.

 

로컬에서 파일을 추가합니다.


2. 내용을 변경하고 제출합니다.

 

제출하는 방법은 이전에 배웠었죠?


3. 외부PC에서 변경된 내용을 확인합니다.

 

디포에서 추가된 파일을 확인할 수 있습니다.

 

워크스페이스에서 동기화시켜 텍스트 파일을 워크스페이스 폴더로 가져옵니다.

 

워크스페이스 루트에서 추가한 파일을 확인할 수 있고,

실제 폴더에서도 추가된 파일을 확인할 수 있습니다.

 

 


 

03. 파일을 수정하고 협업 테스트하기

 

먼저, 체크아웃에 대해서 알아야합니다.

 

위 단계에서 텍스트 파일을 넘겨주고 수정하려고 하면 파일을 수정할 수 없습니다.

수정 사항을 저장하지 않고 다른 이름으로 새로 저장하는 창이 뜨게 됩니다.

 

이것은 텍스트 파일이 읽기 전용으로 설정되어 있기 때문입니다.

 

읽기 전용이라는 속성을 해제하기 위해서 체크 아웃을 해줘야 합니다.

 

▶ 체크아웃이란?

Perforce에서 파일을 수정하기 위해 반드시 거쳐야 하는 과정.

서버에 올라가 있는 파일을 수정할 권한을 얻는 과정입니다.

체크아웃을 하면 다른 팀원에게 해당 파일이 잠겼다는 표시가 나타나 충돌을 방지합니다. (Typemap 설정)

단순히 읽기만 한다면 체크아웃이 필요하지 않습니다.

 


1. 다시 P4V로 돌아가서, 파일을 누르고 체크아웃을 눌러줍니다.

 

 

그렇게 하면 파일에 빨간 체크 모양이 생기고, 파일의 읽기 전용이 해제되어 있는 것을 확인할 수 있습니다.

빨간 체크모양 아이콘
읽기 전용 해제

 

이제 텍스트 파일을 수정하고 저장해도 문제가 없습니다.

 

또한 서버PC에서 동일 스트림에서 같은 파일을 확인해보면 파란색 체크 표시를 확인할 수 있습니다.

이것은 다른 작업자가 파일을 체크아웃 하고 있다는 것으로, 해당 파일을 수정중이라는 뜻으로 알 수 있습니다.

 

또한 서버PC에서 동일 스트림의 다른 작업자의 대기중인 변경 목록을 확인할 수도 있습니다.

 

이를 통해서 팀원이 어떤 작업을 하고 있는지 파악할 수 있습니다.


2. 외부PC에서 수정한 파일을 제출합니다.

 

수정한 파일을 제출하면 버전이 올라가고 체크인이 완료됩니다.


버전은 [#로컬 파일의 현재버전 / 서버의 최신 버전]으로 표시됩니다.

 

서버PC에서 수정된 파일을 보면

노란색 경고 표시와 최신 버전이 바뀐것을 확인할 수 있습니다.

이것은 현재 서버의 최신 버전을 사용하지 않고 있다는 경고입니다.

 

최신 버전을 동기화 하면

파일이 최신 버전으로 동기화됩니다.

 

제출된 변경 사항은 오른쪽 공간의 Submitted Changelists 탭에서 확인할 수 있습니다.

 


 

04. 추가 기능 확인하기

 

Perforce에서 유용하게 사용할 수 있는 추가적인 기능에 대해서 알아보겠습니다.

 


1. 대시보드

 

화면 상단 탭에서 View - Dashboard를 클릭합니다.

 

대시보드로 확인할 수 있는 정보는 다음과 같습니다.

  • 로컬에서 제출하지 않은 파일이 있는지 확인
  • 다른 팀원이 파일을 제출했는지 확인

 

 

대시보드는 5분마다 자동 갱신되며, 수동으로 갱신할 수 있습니다.

 


2. 오프라인 작업 조정(Reconcile Offline Work)

 

이 기능은 Perforce에서 자주 쓰이고, 자주 쓰게 될 기능입니다.

오프라인 작업 조정이란, 서버에 "체크아웃"기록을 남기지 않고로컬 워크스페이스에서 직접 변경한 파일들을 찾아내서, 뒤늦게 Perforce에 반영할 수 있게 해주는 기능입니다.

 

보통 Perforce에서는 파일을 수정하기 전에 체크아웃을 해야 서버도 "이 사람이 이 파일을 수정 중이구나"하고 알 수 있습니다.

그런데 체크아웃을 안 하고 파일을 수정하거나, Allwrite 모드(파일을 항상 읽기/쓰기 가능 상태)로 세팅해 둔 경우, 버는 변경 사실을 모릅니다.

이 상황에서는 로컬에서 변경한 내용이 Perforce에 기록되지 않기 때문에 다른 사람이 올린 버전으로 자신의 파일이 덮여씌워질 수 있습니다.

 

이러한 상황에서 오프라인 작업 조정을 실행하면 디포와 로컬 파일을 비교하여 발견된 변경 파일들을 적절히 분류하여 변경 목록(Pending Changelist)에 넣어줍니다.

이후 제출하면 정상적으로 서버에 반영이 가능합니다.

 

또한, 대규모 C++ 파일 작업을 수행할 때 일일히 체크아웃하기 힘들다면

이 기능을 활용하여

워크스페이스에서 Allwrite 옵션을 켜고, 먼저 수정 후에 나중에 바뀐 것만 일괄 신고(Reconcile)하는 방법을 사용할 수 있습니다.

 

● 작동 방식

워크스페이스 루트 기준으로 스캔하여 서버(디포)의 상태와 비교합니다.

 

  • 수정된 파일 (edited)
  • 새로 추가된 파일 (add)
  • 삭제된 파일 (delete)

들을 감지하여 Pending Changelist에 반영합니다.

 

  언제 사용할까?

  • 체크아웃을 깜빡했을 때
  • 오프라인(서버와 연결되지 않은 상태)에서 작업했을 때
  • 대규모 프로젝트라 Allwrite 모드로 작업하다가 한 번에 정리하고 싶을 때

 


이 과정을 통해 팀원 간에 파일을 공유하고, 동시에 작업을 수행하면서도 충돌을 방지하는 방법에 대해서 알아보았습니다.

Perforce는 단순히 파일을 올리고 내리는 도구가 아니라, 버전을 관리하고 협업 환경을 제공하는 유용한 시스템입니다.

이제 팀원들과 본격적으로 언리얼 프로젝트 협업을 시작할 수 있습니다.

 

다음 글에서는 

언리얼 엔진에서 Perforce에 연결하여 체크아웃과 제출 등 활용하는 방법을 배우고, 팀원과 함께 작업했을 때 충돌을 어떻게 해결하는지 알아보도록 하겠습니다.

 

728x90
반응형