깃 pull request 와 깃 플로우 을 알아보자

Assist·2023년 7월 16일
0

나의 성장일기

목록 보기
5/9

오늘은 개발자 라면 사용 안할래야 안할수 없는 깃에 대해 알아보겠습니다.

깃을 어떻게 사용하고 계시나요?

보통 소프트웨어을 전공하거나 학원에서 배우시는 분들이 제일 많이 배우는게 깃입니다.

깃은 코드의 형상 관리 프로그램이며 사용시 개발자 들와 협업율을 높여 줍니다.

저또한 대학생때 친구들와 사이드프로젝트를 할때 깃을 사용하여 친구들와 코드를 공유하고 코드 리뷰를 했던 기억이 있습니다.

깃을 어떻게 사용하시나요?

저는 이제까지 깃을 commit push pull 만 사용했습니다.

이것만 사용해도 엄청나게 효율적입니다.

예를 들어

  • 이거 누가 패치 했니?
    범인 찾기용
  • 코드를 새로 썼을떄 변경점을 저장하고 push 한용도
  • 코드를 새로 받는 용도

그럼 다른 회사 혹은 사람들은 어떻게 사용할지 항상 궁금하기도 하고
F-Lab 멘토님께서도 알려주셔서 한번 블로그를 써보겠습니다.

깃 pull Request

깃 Pull Request이란?
예를 들어 회사에서 프로젝트를 들어가는 A , B , C 가 있다고 생각합니다.

A: 전반적인 안드로이드 개발에 책임
B: 안드로이드 앱 주니어 개발자 
C: 안드로이드 신입 개발자 

이런식으로 정리하겠습니다.

C는 이제 처음 입사하여 개발은 할줄 알지만 협업은 처음이여서
아직 회사 문화에 적응하는 중입니다.

그중 A가 C에게 업무 지시를 내렸다고 생각해봅시다

A: C씨 이번 앱 개발에 들어갈 기능중 API 호출해서 TOKEN 
발급 기능을 만들어주세요 
C : 넵 알겠습니다 .

자 그럼 C는 개발을 시작했습니다.

그리고 바로 C은 pull Request을 날렸습니다.

그리고 오늘도 열심히 일하는 B 사수분께 가서 C는 업무 보고를 했습니다.

C: B님 이번에 TOKEN 기능 개발 완료했습니다. 
B: 넵 잠시만요 

그후 B는 깃랩 혹은 깃허브에 있는 Repo 에 pullRequest 에 들어가 C의 코드를 리뷰 합니다.

그후

B: C씨 개발한거 잘했어요 근데 Repository 에서 token 을 가져온후 
viewModel에서 데이터를 맵핑 하지 말고 Usecase을 사용해보는걸 추천드려요
C : 넵 알겠습니다 감사합니다 

자 어느정도 pull Reuqest 가 뭔지 감이 오시나요?

pull Request은 깃에 있는 프로젝트에 코드를 주입하는게 아닌
어느 사용자가 승인을 내줘야 코드가 작용되는 시스템입니다.

??? :  난 혼자 해서 저런거 필요 없는데? 

뭐 혼자 하시면 필요 없으실 수도 있습니다.

그러나 개발자들은 협업을 하는 관계이며 pull Reqeust 을 통하여
경험이 많은 개발자들이 코드를 한번더 검수하고 가독성을 높여서 더 좋은 시스템 입니다.

그럼 Android studio 에서 pull Request 을 만들어보자

  • 해당 실습 하기 전에 이미 깃허브에 Repo 을 만들었다 가정하겠습니다.

Android studio 에 오른쪽에서 3번쨰 git이 보이시나요?
저것을 클릭후 아래에서 4번째 에 github 가 있습니다 거기에 가보시면 create pull Request을 누르시고 커밋한 코드를 push 하시면 깃허브 에 pullReqeust 에 코드가 있습니다.


전 변경한 코드가 없어서 Create Pull Request가 비활성화 되있습니다.(우측 하단)

그럼 잘 사용해 보자구요 !

깃 플로우

깃 플로우란 무엇인가

자 개발인력을 높여 보겠습니다.

A : 전반적인 안드로이드 앱 개발에 책임자 
B: 안드로이드 앱 주니어 개발자 (api 호출 기능 개발담당) 
c: 안드로이드 앱 개발 신입 개발자(api 호출 기능 개발담당)
D :안드로이드 앱 개발 신입 개발자(VIEW 및 동적기능 개발담당)

그리고 깃 Branch 을 5개로 나누겠습니다.

  • main , dev , bBranch , cBranch , dBranch
    각 branch을 설명하면

main : 앱 출시용도 branch
dev : 앱 출시전 테스트 branch
bBranch : api 호출 기능 branch
cBranch : api 호출 기능 branch
dBranch : view 및 동적기능 branch

이게 만일 하나의 main Branch 으로 관리 하면 main branch 에 코드가 쌓이고 다른 사람이 pullReqest한 게 쌓여 A가 봐야할 코드를 다 보기 어려울수 있습니다.

그럼 branch 을 나눠서 다들 개발을 끝냈다고 보고가 되면

b,c,d branch 을 합해서 dev에 올립니다. 그후 테스트 후 a가 판단하길 버그 및 사이드 이펙트가 없고 테스트가 끝나다고 A 가 판단하면 main Branch 에 합해서 출시 하는 것 입니다.

첨부 이미지를 넣겠습니다.

그럼 오늘도 읽어주셔서 감사합니다
-피드백와 비판은 언제나 환영입니다-

profile
안드로이드만 좋아하는 특이한 개발자

0개의 댓글