팀 프로젝트/얼굴 mbti 테스트

[Github] Github로 프로젝트를 관리하는 방법_#01

MIRIP 2022. 11. 20. 10:00
반응형

 우리는 이번에 프로젝트를 Github를 통해 관리하기로 결정하였다.

 Github이라는 프로그램이 굉장히 유용하다는 점은 알고 있었지만 지금껏 정확히 어떤 점이 유용하고, 사용하는 방법에 대해 정확하게 모르고 있었다. 이번 포스팅에서는 Github의 유용한 점, 우리 프로젝트에서 어떻게 사용하였는지 알려주도록 하겠다.

 

Github를 사용하였을 때 이점

# History 관리

 Github를 사용하였을 때 좋은 점은 셀 수도 없이 많지만, 내가 생각하기에는 그 중 history를 관리할 수 있다는 점이 가장 좋은 것 같다. History란 말 그대로 '역사', 코드를 수정하고 올리는 것을 기록 순서대로 차곡차곡 쌓아둔다. History는 commit 단위로 관리된다. 그리고 프로그래밍을 하면서 잘못된 코드 작성으로 인해 심각한 오류가 발생할 수 있다. 이럴 시에 코드를 수정되기 이전으로 돌리고 싶을 때 마음대로 롤백할 수 있다.

 

# 팀 프로젝트 관리

 두 번째로, 팀 프로젝트를 수월하게 할 수 있다는 점이다. Github 없이도 개인이 개발하는 데는 문제가 없다. 하지만 팀 프로젝트라면 말이 달라진다. 만약 각자 개발할 파트를 나누어서 개발한 후 그것을 합치려면 어떻게 하겠는가. 누군가는 코드를 하나하나 보면서 코드에서 틀린 점을 찾아 수정해야 할 것이다. 이것은 큰 프로젝트일수록 더욱 시간이 많이 걸린다는 문제가 있다.

 Github에서는 branch라는 일종의 개발할 수 있는 '가지'가 있다. main branch에서 뻗어나가는 수많은 branch들이 있다. 여기서 branch 하나마다 개발자가 개발하는 코드가 들어있다고 생각하면 쉽다. Github에서는 개발이 끝난 branch들을 합치는 merge라는 기능이 있다. merge는 자동으로 수행되며, 충돌이 발생하는 일부만 수정하면 빠르고 정확하게 branch들을 합칠 수 있다.

위의 그림에서 각 색깔은 하나의 branch를 의미한다. 그리고 이러한 각각의 branch들을 합쳐서 다시 main에 push하면 협업 project가 완성된다.

 

# Cloud로서의 기능

 마지막으로, 하드디스크에 저장하면 특정 컴퓨터에서만 작업할 수 있다는 한계가 있지만, Github를 사용한다면 이러한 점을 해결할 수 있다. 작업하고 있는 컴퓨터에서 제일 마지막 진행사항을 commit 후 branch에 push한다면 어떤 컴퓨터든지 다시 pull해서 코딩할 수 있다. 나의 로컬 컴퓨터는 더욱 가벼워질 수 있는 것이다. Cloud 서비스는 대표적으로 구글의 구글 클라우드, Microsoft의 Onedrive가 있지만 전부 용량에 제한이 있다. 하지만 Github는 용량에 제한이 없다. 또한 개발에 특화되어 있어서 편리한 점이 많다. 덤으로 개발자가 많이 사용하여서 그만큼 전문가에게 조언을 구할 수 있고, 이력서를 제출할 때 지금껏 해왔던 프로젝트들을 그대로 한눈에 보여줄 수 있다.


우리는 어떤 방식으로 Github를 사용했는가

 우리는 먼저 기획한 것을 기반으로 APP과 SERVER로 repository를 분할하였다.

 

그 후 APP을 개발해야 하는 나와 소프트웨어학부 동료는 main branch에서 파생되는 각자 이름으로 된 branch를 생성하였다. 그리고 각자 개발한 코드를 commit과 push를 통해 각자의 branch에 올렸다. 이렇게 함으로써 우리는 상대의 코드에 영향을 받지 않고 프로그래밍 할 수 있었다.

 

 마지막으로 개발이 완료된 후 회의를 통해 먼저 동료의 코드를 main branch에 merge한 후 내 코드를 merge했다. 성공했을 때, 협업한 코드가 이어져서 완벽하게 동작한 그 당시에, 이루 말로 표현할 수 없을만큼 짜릿했다.

 

 이 프로젝트를 진행하면서 진행한 회의와 Github를 사용하면서 일어난 사고와 merge하는 과정에서 일어난 conflict 문제는 다음 포스팅에서 일어난 시점 순서대로 자세하게 다루도록 하겠다.

 

 우리가 어떻게 프로젝트를 기획했는지 알고 싶다면 아래 글을 참조하기 바란다.

 

[기획] 관상 MBTI 개발 프로젝트를 시작하며_#01

이번 시리즈는 관상 MBTI를 기획 및 개발하면서 힘들었던 점이나 발전한 점, 느낀 점 등을 적을 예정이다. 이 블로그에 다음과 같은 글을 쓰는 이유는 생각이 정리됨과 함께, 사람의 기억과는 달

codezaram.tistory.com

 우리가 Github에서 실제로 어떻게 작업했는지 직접 보고 싶다면 아래 Github 주소를 참조하기 바란다.

 

GitHub - faceReader-MBTI/Android: 관상 mbti 프론트엔드 - 안드로이드 개발 코드를 올리는 repository 입니다.

관상 mbti 프론트엔드 - 안드로이드 개발 코드를 올리는 repository 입니다. Contribute to faceReader-MBTI/Android development by creating an account on GitHub.

github.com

 

728x90
반응형