[Github] 스파르타 코딩 6주 차 2번째 수업

안영우·2020년 11월 6일
0
post-thumbnail

✏️ 서론

이번에 배운 내용은 기존 3주차에서 배웠어야 할 github파트이다.
지금 뉴스!프로젝트는 혼자서 만들고 있어 github를 매번 사용하진 않고 있지만,
여러사람들과 협업할때에는 github가 필수적인 요소이다.

스파르타코딩클럽을 수강하기 전 프로젝트를 진행하면 수업을 같이 듣는 메이트들과 함께 협업 하는 줄 알았다.
그래서 팀에게 폐를 끼치기 싫어 강남역 근처 영풍문고에 들러 github관련 서적을 구매했는데, 개인별 프로젝트였기때문에 아직github를 사용하지 않아 아직 다 읽지 못했다.

프로젝트가 끝나면 나머지 부분은 읽어봐야겠다.


✏️ 본론

그렇다면 git이란 무엇이고 개발업에서는 github를 왜 중요하게 생각할까?
코드관리에 난항을 겪고있는 개발자분들은 다음과 같은 이유로git을 대부분 사용한다.

1. 어떤 버전부터 `코드`가 충돌이 일어났는지 확인하고 싶을 때, 어떤 내용이 변경됐는지 확인하고 싶을 때
2. 여러 사람 / 여러 컴퓨터에서 코드작업을 동시에 하면서 변경된 내용을 한 눈에 확인하고 싶을 때

사실 git을 통해 혼자서도 commit / push / pull과정을 확인 할 수 있다.

다만, 개발은 혼자가 아닌 여러명과 진행하기 때문에 github사이트를 통해 작업 기록과 파일을 저장하는 git원격 저장소를 이용한다. (그 외에도 유사한 기능인 Gitlab, bitbucket들도 있다.)

github를 사용하면 다음과 같은 과정을 거친다

`1. commit`
내 로컬 저장소에 `작업 내역을 반영하는 과정`이다, 쉽게 말해 `변경한 내용을 저장`하는 과정이다.

`2. push`
보통 여러 사용자가 올린 것이라도 작업 내역에 겹치는 게 없다면 자동으로 합쳐준다.
이때, 2명이상의 사용자가 동일한 내용을 고쳤다면, `github`에서 `충돌(conflict)`났다고 사용자에게 알려주고 사용자가 직접 수정하라고 알려주며 돌려보낸다.

`3. pull`
다른 사람의 작업 내역을 가져오거나, 다른 컴퓨터에서 작업한 내용을 가져온다.
보통 나의 작업 내역을 `commit`하고 `pull`해오면 좋다. 그렇지 않으면 다른 사람의 작업 내역에 내 작업내역이 덮어씌워진다. 
임시로 저장하는 `stash`기능도 있다.

위 내용을 요약하면 다음과 같다.

팀원들과 github를 사용하면서 서비스를 만든다고 가정해보자.
팀원 A, B 둘 중 먼저 push 한 A를 우선순위로 설정하고, 나중에 push 한 B의 코드 중 A의 코드와 conflict한 코드가 있으면 A의 코드를 B가 pull하여 conflict났던 부분을 수정하고 push하는 과정이라 생각하면 된다.

이론상으로 듣다가 상황을 가정한 예시를 드니까 이해가 잘 되는것같다.
이제 남은 건 몸소 체험하는 것뿐 🧐

github 수정 내역을 Slack에 알림을 오게 설정 할 수도 있는데
Slack을 많이 사용하는 개발자들에게 안성맞춤인 기능이다.
코드는 다음과 같다.

/github subscribe 내_github_사용자명/reposiory명

이후 github에게 권한을 주면 된다.
이 외에도 slack 메시지 창에 /github를 쓰고 enter치면 github slack app의 명령어들을 볼 수 있는데 이를 mongoDB에 저장하면 언제든지 가져다 쓸 수 있다.

그럼, 실제 나의 github[지금 뉴스!]commit 하기 전 setting을 해보자.
나는 servervenv를 구현했는데 그럼 server에도 venv코드를 올려야 할까?
결론은 아니다 .gitignore에 이처럼 무거운 파일들을 commit 하지 않고도 구현가능하게 설정했다.
자세한 목록은 Github ignore에서 볼 수 있다.

또, 내가 설치하고 싶은python settingrequirements.text

venv==0.0.0
requests==0.0.0
pymongo==0.0.0
beautifulsoup4==0.0.0

이렇게 작성하고

pip install -r requirements.text

코드를 통해 한번에 다운받을 수 있다.
(🤩 정말 간편하다!)


✏️ 결론

오늘은 github의 사용법에 대해 간략하게 배웠다.
사실 나 같은 초보개발자들은 여러가지 기능을 많이 다뤄보고 싶은데 혼자서 하기는 벅찬감이 없지 않아 있다.
스파르타코딩클럽에서도 협업과정이 추가 됐으면 하는 개인적인 바램이...!
얼른 프로젝트 만들러 가야겠다.. 😂 😂

profile
YW_Tech

0개의 댓글