개발일지

Log 1 - 언리얼 협업은 어떻게 해야 할까 I

타자치는 문돌이 2024. 4. 24. 00:41

Unity 프로젝트는 2D 픽셀 아트 기반이어서 용량이 그렇게 크지 않았다.
그러나 이번 프로젝트는 Paragon 에셋 하나만 2기가가 넘는 경우도 많다.
옛날에 언리얼 프로젝트를 Github에 올리다가 8시간 동안 컴퓨터를 켜놓고 에러 메시지를 본 경험이 있기 때문에 이번에는 다른 방법을 찾아보기로 했다.


문제 상황

Github를 통해 협업하려 하니

  1. 용량이 너무 커서 레포지토리 제한을 넘어간다.
  2. 에셋 하나하나도 커서 푸시하는 데 너무 오래 걸린다.

떠오른 방법은 세 가지 정도이다.


1안

Aws같은 Host 서버를 사서 그걸로 Git이나 Perforce 같은 것을 돌린다.

장점

  • 프로젝트 용량이 Github 보다 커져도져도 괜찮다.
  • 현업도 이렇게 할걸요…? 자체 서버로단점
  • 돈이 나간다. (환율이 오르고 있어 더더욱 비싸다.)
  • 초기 작업이 귀찮다.
  • 서버 털리면 큰일나요.

그리고 속도도 더 빠르지 않을까?


2안

고정된 에셋은 Google Drive에, 코드, 블루프린트, 기타 생성물은 Github를 통해 공유한다.

장점

  • 돈이 적게 나간다. (구글 드라이브 구독료)
  • 1안처럼 서버가 털리지는 않는다.단점
  • 고정된 에셋을 수정할 때 매우 귀찮아진다.
  • 폴더 정리가 매우 중요해진다.

3안

안 쓰는 컴퓨터를 서버로 사용한다.

장점

  • 돈이 안 든다.단점
  • 초기 작업이 귀찮다.
  • 서버 컴퓨터 쪽 작업자의 네트워크에 과부하가 심하게 걸리지 않을까?
  • 안 쓰는 컴퓨터와 공유기를 찾기 어렵다.

일단 1안을 시도해 보도록 했다.

구현

서버를 호스팅하는 업체로 AWS나 Vultr 중에 하나를 고르기로 했다.
일단 Vultr이 가격이 더 싼 것 같아 Vultr을 시도해 보기로 했다. (학생은 돈이 없다. 한푼 한푼 아껴서 에셋 사야 한다..)

Git 서버는 그림과 같은 구조이다. Gitlab을 활용하는 방법은 나중에 알게 되어 일단은 그림과 같이 구현해 보았다.


Vutlr 서버

Vutlr
회원가입을 하고 오른쪽 위의 Deploy +를 누르면 서버를 생성할 수 있다.

Optimized Cloud는 고성능, Cloud Compute는 가성비, Cloud GPU는 머신러닝용이다.
Cloud Compute와 서울을 고른다.


Image는 OS이다. 윈도우는 추가 요금이 붙는다. 익숙한 Ubuntu를 골랐다.
Plan은 컴퓨터의 성능이다. AMD나 Intel의 최신 CPU를 고르거나, NVMe SSD를 쓰는 좀 지난 CPU를 쓸 수 있다. 프로젝트가 30기가는 넘을 것으로 생각해 64기가 가성비 플랜을 골랐다.


Additional Features는 잘 모르겠다…. 나중에도 선택할 수 있다고 하니 넘어간다.
SSH Key를 설정할 수도 있고, 넘어갈 수도 있다.
Server Hostname은 서버 이름이다. 적당한 영어를 넣어준다.

이러면 한 달에 $14.40이 나온다. 무조건 14달러가 결제되는 것이 아니라 사용량에 따라 더 나오거나 덜 나올 수도 있다고 한다.


Product 창에 가면 이렇게 생성한 서버의 정보를 볼 수 있다!
방화벽 등의 세팅은 아직 잘 모르겠다….


서버 접속

SSH로 서버에 접속해 보자.
명령 프롬프트(cmd)를 열고

ssh root@{Vultr 서버의 IP 주소}

를 입력한다.


비밀번호를 입력하라는 창이 나오면 Vultr 화면의 Password를 입력한다.

이러면 서버에 접속한 것이다. 야호!


Git 서버 구축

서버 구축은 아래 블로그를 참고했다.

Git 서버 만들기 Ubuntu 22.04 (tistory.com)

요약하면
Git 폴더를 생성하고 Git 관리자 계정과 Git 사용자 계정에만 접근 권한을 준다.
Git 폴더 안에 {프로젝트명}.git이라는 폴더를 만들고, git init으로 Git 프로젝트 폴더로 만든다.

그 후 다시 내 컴퓨터로 돌아와 프로젝트 폴더를 git init한 뒤, Remote Repository를 {내 계정이름}@{Vultr 서버 주소}:{프로젝트 폴더 위치}로 지정했다.
그러고 README.MD를 Push 하니 성공했다!

같이 프로젝트를 하는 친구의 계정에서 Clone도 같은 방식으로 성공했다.

이제 초기 프로젝트 파일을 Push 하는데….> 찾아보니 이런 서버 구축하고 폴더를 생성하고 권한을 주고 인증 장치를 만들고 하는 과정을 Gitlab이나 Perforce를 설치하는 것으로 딸깍할 수 있다고 한다.


결과

일단 프로젝트 용량 문제는 확실히 해결했다.
그런데....Push의 속도는 여전히 매우 느리다.
초기 프로젝트를 생성하고 Push 하는 데 2시간 가까이 걸린다. 이건 안된다.

원인이 뭘 지를 생각해 보면

  • Git라 느린가? Perforce나 대용량 파일 처리가 더 잘되는 버전 관리 도구는 괜찮을까?
  • Vultr같은 서버는 해외 기반 서비스니까 느릴 수밖에 없나?
  • 사실 서버가 아니라 내 문제인가? 우리집 인터넷이 느려서? 헉?!

이제 Perforce를 시도해 보고 정 안 되면 3안으로 넘어가 보자. 3안이 오히려 해외망을 거치지 않으니 더 괜찮을 수도 있다.