iOS 앱 개발 부트캠프/TIL

iOS 앱개발 본캠프 2일차 TIL - 팀프로젝트 깃헙 연결 도전기

iosstudyletsgo 2024. 10. 22. 22:50

오늘은 코딩을 하기전에 깃헙을 연결해 브랜치 설정을 하는 작업을 했다.

Git? GitHub? Branch?

깃(Git)은 소스코드의 변경 이력을 추적하고 관리할 수 있으며 이전 버전으로 쉽게 되돌릴 수 있고, 여러 개발자가 동시에 작업할 수 있으며 브랜치를 만들어 관리할 수 있게 만들어 주는 형상관리 도구이다. 그리고 형상관리 도구는 소프트웨어를 개발하는 과정에서 발생하는 변경사항을 체계적으로 관리하기 위한 도구이다.

따라서 깃을 잘 활용한다면 여러 사람과 협업하는데 큰 도움이 될 뿐만 아니라 프로젝트 코드의 유지관리도 용이해질 것이다. 오늘 사용한 깃헙(GitHub)이 바로 이런 깃을 저장하고 관리할 수 있게 해주는 웹 기반 플랫폼이다.

원격 저장소와 로컬 저장소

그리고 깃을 다루다 보면 원격 저장소와 로컬 저장소라는 개념이 매우 자주 나온다.

원격 저장소는 쉽게 말해 개인 혹은 팀이 제작한 코드를 업로드해 따로 관리할 수 있는 일종의 외장 저장 장치이고, 로컬 저장소는 내가 코드를 작성하고 저장하는 내 컴퓨터가 로컬 저장소라고 할 수 있다.

이 로컬 저장소에서 코드를 작성해 발생한 변경 사항은 Commit 하여 기록하게 된다. 그리고 변경 사항을 다른 사람들과 공유하려면 원격 저장소에 변경 사항을 업데이트 해야하는데, push나 pull request를 사용한다. 반대로 다른 사람들이 변경한 내용을 내 컴퓨터로 가져오려면 pull 명령어를 사용한다.

결국 오늘 열심히 들여다본 Github이 바로 이 원격 저장소 역할이고 내가 쓰고 있는 맥북이 로컬 저장소인 샘이다. 

브랜치(Branch)

브랜치란 나뭇가지처럼 큰 줄기의 코드(메인 코드)에서 갈라져 나온 독립적인 작업 공간으로, 프로젝트의 코드 베이스에서 작업 공간을 분리하여 기존 코드에 영향을 주지 않고 새로운 기능을 개발하거나 버그를 수정할 수 있게 만들어 준다.

쉽게 말하면 새로운 작업 흐름을 만드는 것으로 여러 개발자가 하나의 프로젝트를 작업할 때 이 브랜치를 각각 나눠 서로에게 영향을 주지 않고 독립적으로 각자 맡은 파트를 구현할 수 있게 만들어 준다.

따라서 오늘 한 깃헙 연결과 브랜치 설정 작업은 우리의 프로젝트가 진행될 메인 프로젝트 파일을 만들고, 이 메인 프로젝트를 복제해 독립적으로 동작하는 새로운 복제품들을 각자의 컴퓨터에 연결하여 서로 영향을 주지 않으면서도 하나의 목표를 향해 갈 수 있는 작업 공간 배분과도 같다.


깃헙 등록하기

그건 그렇고 나는 일단 깃헙 자체가 처음이니 먼저 해야 할 것은 일단 xcode에서 github 아이디가 연결되어 있는지부터 확인이었다.

Xcode의 settings에서 accounts를 들어가니 다음과 같은 화면이 나왔다. 처음엔 아이디가 연결되지 않아서 왼쪽의 칸에 아무것도 없었다. 따라서 하단의 + 버튼을 눌러 아이디를 추가시키는 과정을 진행했다.

GitHub을 선택하고 Account에 내 깃헙 아이디와 Token에 깃헙에서 만든 토큰이 필요했다. 토큰은 따로 만들어둔적이 없으니 바로 깃헙으로 가서 토큰을 만들었다.

깃헙의 프로필을 눌러 하단의 settings으로 들어가서, 좌측 메뉴 하단의 Developer settings를 누른 뒤 좌측 메뉴 하단의 Tokens(classic), 그 다음 우측 상단의 Generate new token을 눌러 토큰 생성 화면으로 넘어갔다. 

마지막으로 Note에 토큰의 이름을 설정하고 select scopes에서 상단의 repo, workflow, write:packages, delete:package, admin:org를 선택해 generate 하였고, 토큰을 Xcode에 복붙하여 GitHub 계정을 연결하는데 성공하였다.

다음은 팀의 깃헙 레포지터리에 브랜치를 만들어 연결하는 작업을 했다. 레포지터리나 브랜치는 다른 팀원들이 만들어두었고, 나는 clone을 통해 팀의 레포지터리를 가져오고, 팀 프로젝트의 폴더인 EvenH2로 이동하였다.

git checkout dev, git branch feat-ms, git checkout feat-ms 이 세 과정을 통해 dev 라고 이름 지은 developer 브랜치 하위에 내가 작업할 feat-ms 브랜치를 만들고 설정하였다.


xcode에서 개인 파트 구현하기

이제  xcode에서 작업해야 할 폴더를 불러와 내가 구현해야 하는 Goal 뷰에 대해 코딩을 해야한다. UITableView를 추가하고 TableViewCell을 추가하고, 그 안에 image와 textField 혹은 Label을 이용해 목표에 대한 내용을 간단하게 띄우는 작업을 하게 될 것이다.