Unity 버전 관리로 병합 충돌을 줄이는 새로운 방법, 스마트 잠금을 만나보세요.

유니티는 크리에이터가 최고의 작품을 제작할 수 있도록 지원하는 데 열정을 쏟고 있습니다. 그렇기 때문에 유니티 개발자팀은 Unity 버전 관리의 새로운 기능인 스마트 잠금 기능을 소개하게 되어 기쁩니다.
스마트 잠금은 파일 잠금 및 분기와 관련하여 흔히 발생하는 성가신 병합 충돌을 크게 줄여줍니다. 개발자들은 더 빠르고 안전한 반복 작업을 위해 오랫동안 브랜치를 사용해 왔습니다. 이제 아티스트를 포함한 모든 사람이 브랜칭을 사용하여 자신 있게 프로젝트를 확장할 수 있습니다.
스마트 잠금은 파일을 잠그기 전에 최신 버전으로 작업하고 있는지 자동으로 확인하므로 병합 충돌의 위험을 크게 최소화하고 팀이 걱정 없이 브랜치를 진행할 수 있습니다.
기능 브랜치, 작업 브랜치 또는 개인 브랜치를 만드는 아티스트의 경우, 스마트 잠금을 사용하면 충돌에 대한 걱정 없이 팀원들과 유연하게 브랜치를 만들고 동시에 작업할 수 있습니다. 메인 프로젝트 기록은 안전하게 유지하면서 더 빠르게 실험하고 반복할 수 있습니다.
스마트 잠금은 다양한 워크플로를 탐색할 수 있도록 도와줍니다. 버전 관리 시스템(VCS)을 따르도록 팀을 변경하는 대신 Unity 버전 관리를 팀에 가장 적합한 방식으로 조정할 수 있습니다.
많은 사용자가 파일을 잠그거나 체크아웃하면 병합 충돌이 자동으로 방지된다고 생각합니다. 안타깝게도 현실은 그렇지 않습니다.
기존의 파일 잠금 메커니즘은 일부 충돌에 대한 보호 기능을 제공하지만, 이러한 파일 잠금은 브랜치별로 이동하지 않아 다른 아티스트가 다른 브랜치에서 동일한 파일을 체크아웃할 수 있었습니다. 이러한 이동 불가로 인해 팀은 브랜칭의 근본적인 워크플로 비호환성을 해결하지 못하여 병합 충돌에 취약해집니다.
스마트 잠금이 어떻게 작동하는지 이해하기 위해 먼저 팀이 파일 잠금을 제대로 사용하고 있는 경우에도 병합 충돌이 어떻게 발생하는지 살펴봅시다.

이 시나리오는 브랜칭을 사용하는 팀이 파일 잠금을 사용하려는 최선의 노력에도 불구하고 병합 충돌이 자주 발생하는 방법을 보여줍니다. 결과는? 시간 낭비와 팀 사기 저하. 스마트 락은 사용자가 지점을 진실의 출처로 정의할 수 있도록 함으로써 이 문제를 해결합니다.
브랜치를 만들든 단일 스레드에서 작업하든, 변경 사항을 확인하거나 다시 병합할 대상 브랜치에 도달할 때까지 고유한 개발 라인을 따라 브랜치 간에 잠금이 '이동'합니다. 스마트 락은 한 브랜치에서 계속 작업하든 하위 브랜치를 만들든 이 단일 개발 라인을 적용합니다.

이제 특정 파일과 관련된 모든 잠금 요청은 다른 브랜치에 존재하는 모든 새 버전을 인식합니다. 따라서 변경 사항이 팀원의 변경 사항과 충돌하거나 오래된 버전으로 작업하고 있는 것은 아닌지 걱정할 필요가 없습니다.
이 간단하고 효과적인 프로세스는 여러 팀원이 상충되는 버전에서 동시에 작업하는 것을 방지하므로 변경 사항이 누락되는 일이 없습니다. 이를 통해 모든 사람의 예술적 비전을 고려하고 동시 협업이 실질적으로 고통스럽지 않도록 할 수 있습니다.

Git 기반 시스템에 익숙한 대부분의 프로그래머는 이미 브랜칭의 가치를 이해하고 높이 평가하고 있습니다. 아티스트를 위한 브랜칭의 주요 혜택은 코더를 위한 혜택과 동일합니다.
브랜치 내에서 작업할 때는 프로젝트의 메인 히스토리와 효과적으로 분리됩니다. 이렇게 격리하면 프로젝트가 망가질까 걱정할 필요 없이 안전하게 프로토타입을 제작하고 실험할 수 있습니다.
안전한 실험을 통해 지속적으로 반복하고 여러 버전을 빌드할 수 있으므로 리포지토리 기록을 탐색하여 원하는 버전을 선택할 수 있습니다. 최고의 아이디어가 승리하게 하세요.
브랜칭은 본질적으로 동시 협업의 노이즈를 줄여줍니다. 원래 콘셉트와의 관계를 유지하면서 새로운 아이디어를 창출할 수 있는 공간을 마련합니다. 간단히 말해, 혼자서 Google 문서에서 반복 작업을 하는 것과 200명의 다른 공동 작업자와 함께 하나의 문서에서 작업하는 것의 차이를 생각해 보세요.
로컬 드라이브나 메인 프로젝트와 통합되지 않은 외부 소스에서 독립적으로 작업하는 대신 버전 관리 시스템 내에 저장하여 병합 충돌에 대한 걱정 없이 새로운 개념을 생성할 수 있습니다.
브랜칭을 통해 팀은 복잡한 워크플로를 소화 가능한 조각으로 나눌 수 있습니다. 프로젝트를 구성한 방식에 맞게 브랜치를 만들 수 있습니다. 게임 개발에서는 더 쉬운 프로젝트 관리를 위해 작업을 분할하는 것이 당연합니다. 예를 들어 팀 내에서 기능, 캐릭터 또는 전체 레벨별로 작업을 나눌 수 있습니다. 팀은 특정 지점 내에서 할당된 업무에 집중할 수 있습니다.
브랜치 내에서 작업을 분할하면 여러 팀과 팀원들이 각자의 속도와 스타일, 프로세스에 따라 작업하면서 동시에 더 큰 프로젝트에 기여할 수 있습니다. 이렇게 마찰을 제거하면 협업이 더 원활해질 뿐만 아니라 팀이 프로젝트 기록을 더 자주 업데이트할 가능성도 높아집니다. 더 빠르게 출시하고 게이머의 기대에 부응할 수 있습니다.
브랜치를 사용하면 프로젝트 기록의 전체 그림을 더 쉽게 볼 수 있는 반면, 메인에서 변경 내용을 확인하면 전체 변경 내용을 확인하기가 더 어려워집니다. 브랜칭을 사용하면 이러한 변경 사항을 더 빠르게 파악할 수 있습니다.
팀원 모두가 원하는 방식으로 유연하게 작업할 수 있도록 스마트 잠금 장치를 설계했습니다. 또한 프로젝트의 아이디어 구상 및 실험 단계와 같은 특정 상황에서는 복잡한 파일 잠금을 처리하는 것이 방해가 될 수 있다는 점도 잘 알고 있습니다.
그렇기 때문에 이동 잠금 기능 외에도 새로운 지점 제외 기능도 구축했습니다. 이렇게 하면 사용자 지정 잠금 규칙을 설정하여 잠금 메커니즘에서 브랜치를 제외할 수 있습니다. 소스 브랜치로 다시 병합할 필요가 없다는 것을 알고 있다면 파일 잠금의 제약 없이 브랜치 내에서 프로토타입을 만들거나 실험할 수 있습니다.
복잡한 프로젝트를 추적하고 기존 잠금 목록을 명확하게 시각화할 수 있도록 데스크톱 클라이언트와 uDash 내 그래픽 사용자 인터페이스(GUI)도 개선했습니다. 잠금 기록을 보면 누가 언제 잠금을 만들었는지 쉽게 확인할 수 있습니다.

또한, 파일 잠금 및 잠금 해제 방법을 표시하는 어포던스를 더 눈에 잘 띄게 배치하고, 특정 파일의 기존 잠금을 알려주는 유용한 메시지도 함께 표시했습니다.

이 획기적인 기능을 활용하려면 Unity 버전 관리 설치를 최신 버전으로 업데이트하기만 하면 됩니다. 온프레미스 고객 또는 기존 Plastic SCM Enterprise 고객의 경우, 서버와 클라이언트를 업데이트해야 Smart Lock의 이점을 완전히 경험할 수 있습니다.
시작하기 전에 설명서를 반드시 읽어보세요.
Unity 버전 관리는 엔진에 구애받지 않는 버전 관리 툴로, 대용량 파일과 바이너리를 빠르게 처리할 수 있는 민첩성을 제공합니다. 모든 규모의 게임 스튜디오에서 아티스트와 프로그래머 모두에게 최적화된 워크플로를 통해 팀 협업을 개선하고 생산성을 높여 고품질 게임을 더 빠르고 효율적으로 제공할 수 있습니다. 무료로 시작하려면 Unity DevOps에 등록하세요(약관 적용).