Pv_log

Manage scene flow and data: Set up version control 본문

Unity Learn 번역/Pathway: Junior Programmer

Manage scene flow and data: Set up version control

Priv 2021. 8. 18. 22:48

출처

 

Set up version control - Unity Learn

In this tutorial, you’ll learn about the basics of Version Control, and the reasons to implement it in your own projects, even if you’re developing applications by yourself. You’ll also learn about the different Version Control options available to u

learn.unity.com


 

 

1. 서언

여러분이 혼자서 작업을 하든, 팀으로 작업을 하든, 프로젝트 개발의 중요한 측면은 어떻게 여러분의 프로젝트 파일을 관리할 것인지를 결정하는 것입니다. 만약 여러분이 1인 개발자이시라면, 여러분의 프로젝트를 백업 없이 하드 드라이브에만 저장하는 것은 몇 가지 위험 요소들이 항상 따라붙습니다. - 만약 드라이브가 손상되면 여러분의 프로젝트는 날아가겠죠! 여러분의 프로젝트를 다른 드라이브에 백업 복사 본을 만들어 저장해두거나, 클라우드에 프로젝트를 저장해두면, 최신 버전을 유지하는 것이 번거로울 수 있습니다. 만약 여러분이 팀에 소속된 개발자이시라면, 어떻게 팀원 모두가 프로젝트에 접근할 수 있도록 만들 것인지, 어떻게 한 사람이 작업 중인 것을 덮어쓰거나, 다른 사람의 작업물에 손상을 입히지 않도록 할 것인지 방법을 마련해야 합니다.

다행히도, 이러한 모든 이슈들은 '버전 관리'(version control)을 사용하면 매우 간단하게 해결할 수 있습니다.

만약 버전 관리 작업이라는 아이디어가 어렵게 느껴지셔도, 너무 걱정하지 마세요! 많은 사람들이 개발을 처음 시작했을 때, 버전 관리라는 아이디어에 매료되었다고 느낍니다. 버전 관리가 매우 유용한 아이디어임에도 불구하고, 처음 리포지토리를 설정할 때의 실수와 혼동으로 아직 익숙하지 않은 개발자들이 다시 도전하는 것을 주저하게 만들 수 있습니다. 만약 여러분이 이런 범주에 드는 분이시라면, 여러분은 혼자가 아니라는 것을 명심하고, 이번 프로젝트를 통해 다시 도전해보세요!

 


 

2. 버전 관리란 무엇인가요?

버전 관리(또는 소스 관리라고도 부릅니다.)란, 정보를 관리 및 추적하는 시스템을 의미합니다. 버전 관리 시스템은 모든 종류의 파일, 소프트웨어, 웹사이트 또는 다른 데이터들의 저장, 관리 및 변경사항을 추적하도록 구성할 수 있습니다.

개인, 소규모 팀, 또는 대규모 조직에서 버전 관리 시스템을 복잡한 프로젝트들을 백업 및 관리하는 데 종종 유용하게 사용합니다. 버전 관리 시스템은 클라우드 스토리지 서비스를 기반으로 동작하므로, 여러분은 아래와 같은 몇 가지 유용한 이점들을 얻으실 수 있습니다:

● 백업 스토리지

● 변경사항 추적

● 프로젝트 관리

이번 튜토리얼에서 여러분은 로컬 저장소를 사용하는 것보다 팀의 특정 상황에 더 적합한 클라우드 스토리지를 사용하는 버전 관리 시스템에 대해 배우실 겁니다.

 


 

3. 누가 버전 관리를 사용하나요?

여러 팀원들이 조정된 프로젝트 또는 소프트웨어 개발에 참여할 때, 버전 관리 시스템이 없으면 프로젝트 관리가 어려워질 수 있습니다. 즉, 팀원들 모두에게 필요한 셈이죠!

프로젝트가 점점 복잡해짐에 따라, 팀원들은 다른 동료들이 작업한 변경사항들을 최신 버전으로 유지해야 합니다. 만약 팀원들이 버전을 일관되게 관리하지 않으면, 비효율, 병목 현상, 코드 유실, 재작업 및 수많은 좌절을 경험하게 될 것입니다. 버전 관리의 목적은 이러한 문제들을 피하는 것입니다.

 


 

4. 나만의 버전 관리 도구 선정하기

버전 관리 시스템은 여러분의 프로젝트 요구사항에 따라 달라집니다. 유니티에서는 패키지로 제공되는 콜라보레이트(Collaborate)라는 자체 버전 관리 솔루션이 제공됩니다. 그러나, 이번 학습 프로젝트에서는 여러분의 개발 경력 동안 접하게 되실 가장 유명한 버전 관리 솔루션인 깃허브(Github)를 사용할 것입니다. 깃허브는 특히 버전 관리 도구를 처음 사용하시는 분들이 작업하기에 쉽습니다.

여러분이 작업을 더 쉽게 하실 수 있도록, 깃 명령어를 사용하는 명령줄 대신, 그래픽 유저 인터페이스(GUI)를 통해 여러분의 깃허브 프로젝트에 접근할 수 있도록 해주는 사용하기 쉬운 애플리케이션, 깃허브 데스크톱(GitHub Desktop)을 사용하는 방법에 대해 안내해드리겠습니다. 만약 깃허브(GitHub) 또는 명령줄 작업에 이미 익숙하시다면, 다음 단계로 건너뛰셔도 좋습니다!

만약 여러분이 어떻게 유니티가 다른 버전 관리 시스템들과 통합되는지에 대해 더 알아보고 싶으시다면, Introduction to Unity CollaborateWorking with Unity and Helix Core Perforce 튜토리얼 문서를 참고해주세요.

 


 

5. GitHub Desktop 시작하기

깃허브 리포지토리(GitHub repositiory)를 생성하시려면, 먼저 깃허브 무료 계정으로 로그인을 하시고, 깃허브 데스크톱을 설치하셔야 합니다.

세팅을 위해 아래 단계를 따라가 주세요:

1. 아직 계정이 없으시다면, github.com에서 깃허브 무료 계정을 생성해주세요.

2. desktop.github.com 깃허브 데스크톱을 다운로드 및 설치해주세요. 맥과 PC 모두 지원합니다. 사이트에 들어가시면, 여러분이 사용하시는 플랫폼을 자동으로 감지할 것입니다. 또는 여러분이 직접 플랫폼을 선택하실 수도 있습니다.

3. 설치가 끝나셨으면 여러분의 계정으로 깃허브 데스크톱에 로그인해주세요:

● 윈도우의 경우, File > Options > Account를 클릭해주세요.

● 맥의 경우, GitHub Desktop > Preferences를 클릭해주세요.

여러분의 계정으로 로그인 및 인증하는 방법에 대한 자세한 정보는 깃허브 문서에서 찾아보실 수 있습니다.

만약 여러분의 계정과 연결된 리포지토리가 아무것도 없다면, 아래와 같이 여러분에게 시작할 것을 권장하는 시작 화면을 볼 수 있으실 겁니다.

 


 

6. 하드 드라이브에 새로운 repo(레포지토리) 생성하기

깃허브 리포지토리(일반적으로 줄여서 "리포"(repo)라고 부릅니다.)는 프로젝트가 저장된 폴더를 의미합니다. 해당 폴더 안에서, 모든 변경 사항들은 여러분의 버전 관리 소프트웨어에 의해서 면밀하게 추적됩니다. 가장 먼저 여러분이 하셔야 할 일은, 유니티 프로젝트를 위해 특별히 구성된 빈 리포지토리를 생성하는 것입니다.

1. 깃허브 데스크톱의 시작 화면에서 Create a New Repository on your Hard Drive를 클릭하세요.

 

깃허브 데스크톱의 상단 메뉴에서 File > New Repository를 클릭하실 수도 있습니다.

2. 나타난 Create a New Repository 창에서 여러분의 리포지토리의 설정을 구성해주세요:

● "Jr-Programmer-Project"처럼 리포지토리의 이름을 설정해주세요. 공백은 하이픈으로 대체됩니다.

● 여러분의 리포지토리를 저장하고 싶으신 로컬 경로를 선택해주세요. 폴더 이름은 여러분이 방금 설정하신 리포지토리의 이름으로 맞춰집니다.

깃 이그노어(Git Ignore) 드롭다운 메뉴에서, Unity 옵션을 선택해주세요. 이렇게 설정해주시면, 버전 관리를 적용하고 싶지 않은 모든 종류의 파일 리스트들이 사전 구성된 .gitignore 파일이 여러분의 리포지토리 내에 생성됩니다.

Unity의 경우, 여러분의 프로젝트의 특정 파일에만 집중하고, 다른 것들은 전부 무시하겠다는 의미입니다.

 

3. Create Repository를 선택해주세요. 그러면 이제 Current Repository 드롭다운 메뉴가 여러분의 새로운 리포지토리로 설정될 것입니다. 메인 창을 보시면 지금은 "No local changes"라고 표시될 것입니다. 이는 아직 여러분이 편집하지 않은 새로운 리포지토리이기 때문입니다.

 

4. 여러분의 컴퓨터에서 방금 지정하신 위치에 생성된 폴더를 열어주세요. 만약 여러분의 컴퓨터에 숨김 파일 보기 설정이 적용되어 있다면, 아래와 같은 3가지 항목들을 보실 수 있으실 겁니다:

● .git 폴더

● .gitattributes

● .gitignore

.git 폴더는 깃허브에게 이 폴더가 실제 깃허브 리포지토리임을 알려주는 역할을 합니다. .gitignore와 .gitattributes는 여러분의 리포지토리의 특정 구성요소들을 지정합니다. 필수 사항은 아닙니다만, 만약 여러분이 이러한 숨겨진 파일들을 보고 싶으시다면, 구글링을 통해 윈도 또는 맥에서 숨긴 파일을 보는 방법을 찾아보실 수 있습니다.

깃허브가 추적할 항목들을 주기 위해 다음 단계에서 이 폴더에 실제 유니티 프로젝트를 넣어보겠습니다.

 


 

7. 다운로드, 열기 및 프로젝트 추적 시작하기

추적할 변경 사항들을 기다리고 있는 빈 리포지토리에서 유니티 프로젝트를 추가하고, 이를 처음으로 열어보겠습니다.

1. project zip 폴더를 다운로드하시고, 압축을 푸신 뒤, Junior-Programmer-Starter-Files 폴더를 열어주세요. 폴더 안에는 다음과 같은 폴더들이 들어있을 것입니다:

● Assets

● Packages

● ProjectSettings

 

2. Ctrl+A (Windows) 또는 Cmd+A(Mac)를 사용해 폴더 3개를 모두 선택하시고, 여러분의 숨겨진 .git 파일 바로 다음의 리포지토리 폴더 안에 붙여 넣어주세요. 이제 해당 폴더는 유니티 프로젝트로 열 준비가 끝났습니다.

 

3. 프로젝트를 유니티 허브(Unity Hub)에서 실행하시고, Projects 탭으로 가셔서 여러분의 리포지토리 폴더를 추가하신 뒤, 유니티 에디터 상에서 프로젝트를 열어주세요. 해당 프로젝트는 유니티 2020.3 LTS 버전이 필요합니다. 만약 해당 버전을 설치하지 않으셨으면, 유니티 허브 상에 올바른 버전을 설치하라는 경고가 화면 하단에 표시될 것입니다.

 

4. 여러분의 깃허브 데스크톱 창을 보시면 이제 새로운 파일들의 긴 리스트가 Changes 패널 상에 나타날 것입니다. 각각의 파일 옆에는 작은 초록색 플러스(+) 아이콘이 함께 표시될 텐데, 이는 해당 파일이 새로 추가된 파일임을 나타냅니다.

축하드립니다! 이제 여러분 프로젝트의 버전 관리를 위한 준비가 모두 끝났습니다. 해당 프로젝트에 대한 모든 변경 사항들이 이제 깃허브 상에서 추적될 것입니다.

 


 

8. 최초 commit(커밋) 작성 및 repo(레포지토리) 퍼블리싱하기

여러분의 리포지토리에 커밋하는 첫 번째 파일 세트는 이니셜 커밋(initial commit)에 포함될 것입니다.

일반적으로 여러분의 프로젝트 설정을 마친 뒤, 최초로 커밋을 하실 때 이니셜 커밋을 사용합니다. 그러므로 이제 커밋을 진행해보겠습니다.

1. 여러분의 리포지토리 변경 사항 리스트들 하단에 있는 Summary 필드 부분에 "initial commit"이라고 작성하시고, Description 부분을 작성해주세요. (예. "프로젝트 시작 파일")

이제 Commit to main을 클릭하셔서 여러분의 변경 사항들을 프로젝트의 "main" 브랜치(branch)에 저장해주세요.

만약 브랜치가 무엇인지에 대해 잘 모르시더라도 걱정하지 마세요. - 해당 내용은 나중에 튜토리얼에서 다를 것입니다.

 

커밋(Commit) 버튼을 클릭하시면, Changes에 있던 변경 사항 리스트들이 전부 사라질 것입니다. 이제 모든 변경 사항들이 버전 관리 내에서 안전하게 저장됩니다.

그러나, 여러분의 모든 변경 사항들이 여러분의 로컬 하드 드라이브 상에서 추적된다고 해도, 만약 여러분이 실수로 여러분의 컴퓨터를 절벽에서 떨궈버리면 어떻게 될까요?

그렇게 된다면 여러분의 모든 작업물들이 몽땅 사라질 것입니다! 그러니 이제 만일을 대비하여 여러분의 프로젝트를 클라우드에 백업해두도록 합니다.

 

2. 깃허브 데스크톱 인터페이스에서 Public repository를 클릭해주세요.

 

3. 나타난 창에서, 여러분의 프로젝트 이름을 확인하시고, 여러분의 코드를 공개(public) 또는 비공개(private) 하실지 결정해주세요. 그런 다음 Public Repository를 클릭해주세요.

 

4. GitHub.com에 백업 및 퍼블리싱된 여러분의 리포지토리를 보기 위해, 깃허브 데스크톱의 상단 메뉴로 가셔서 Repository > View on GitHub를 클릭해주세요. 여기서 여러분은 모든 파일들을 살펴보실 수 있으며, 커밋 기록, 로그 이슈 등 다양한 작업을 수행하실 수 있습니다. 익숙해질 수 있도록 인터페이스를 자유롭게 둘러보세요.

 


 

9. 버전 관리는 어떻게 동작 하나요?

변경 사항 푸시(Pushing) 및 풀링(Pulling)

여러분이 버전 관리 도구를 사용하실 때, 여러분이 작업하신 변경 사항들을 문서화하는 메모와 함께 클라우드 리포지토리 (또는 파일 저장소 디렉터리)를 통해 여러분의 프로젝트 변경 사항들을 저장하실 겁니다.

이는 즉, 여러분이 풀(다운로드)해서 프로젝트의 최신 버전을 열 수 있으며, 로컬 상에서 작업하신 다음, 클라우드 리포지토리에 여러분의 변경 사항을 다시 푸시(업로드)할 수 있음을 의미합니다.

변경 사항 머지(Merging)

여러 사람들과 함께 동일한 프로젝트 상에서 동시에 작업하실 때, 가끔씩 동일한 파일을 다르게 변경하는 경우가 발생할 수 있습니다. 예를 들어, 한 사람이 유니티 프로젝트에서 프롭 에셋(prop asset)에 적용된 텍스처를 변경하고, 다른 사람은 씬에서 해당 에셋의 위치를 변경했을 수도 있습니다. 버전 관리는 머지(merge)라고 알려진 프로세스를 통해 모든 프로젝트 파일들에 대한 변경사항들을 결합하고, 통합합니다. 때때로, 프로젝트 파일에 대한 변경 사항들이 동일한 값에 영향을 미칠 수도 있습니다. 이러한 일이 벌어지면, 버전 관리 시스템은 변경 사항들을 하나로 합칠 수가 없게 되어 병합 충돌(merge conflict)이 발생하고, 개발자의 입력을 요구하게 됩니다. 버전 관리 시스템은 일반적으로 차이가 있는 2가지 값을 나란히 표시해주어서 충돌이 나는 부분을 보여줄 것입니다. 그러면 개발자는 충돌 문제를 해결하기 위해 2가지 항목 중 유지할 항목 1가지를 선택합니다.

이전 버전으로 되돌리기

버전 관리의 주요 이점 중에 하나는 시간이 흐르면서 발생한 모든 변경 사항들을 추적한다는 것입니다. 만약 변경 사항들이 충돌하거나, 여러분이 이전 버전으로 되돌리는 것이 더 좋겠다고 결정하셨다면, 여러분은 언제든지 여러분의 프로젝트를 이전 버전으로 되돌려 복원하실 수 있습니다.

 


 

10. 요약

버전 관리는 1인 개발자와 팀으로 활동하시는 개발자 분들 모두에게 큰 이점이 있습니다.

비록 시작하는 것이 어려워 보일 수도 있겠지만, 버전 관리 시스템은 여러분이 작업을 진행하시는 동안 프로젝트 파일들을 유지/관리할 수 있는 강력한 도구입니다. 이번 튜토리얼에서 여러분은 다음과 같은 내용을 배우셨습니다:

● 기본적인 버전 관리 이론 학습

● 직접 깃허브 생태계 안에서 작업할 수 있도록 환경을 구성함으로써 해당 이론을 구현

 


 


수고하셨습니다!


Comments