22.09.08(목) Today I Learned

정형빈·2022년 9월 12일
0

TIL

목록 보기
8/71

9/8 오늘의 시간표

09:00 ~ 10:00 [원격] 협업을 위한 GIT 활용 기초
10:00 ~ 11:00 [원격] 협업을 위한 GIT 활용 기초
11:00 ~ 12:00 [원격] 협업을 위한 GIT 활용 기초
12:00 ~ 13:00 [원격] 협업을 위한 GIT 활용 기초
13:00 ~ 14:00 점심식사
14:00 ~ 15:00 [원격] 협업을 위한 GIT 활용 기초
15:00 ~ 16:00 [원격] 협업을 위한 GIT 활용 기초
16:00 ~ 17:00 [원격] 협업을 위한 GIT 활용 기초
17:00 ~ 18:00 [원격] 협업을 위한 GIT 활용 기초
18:00 ~ 19:00 저녁식사
19:00 ~ 20:00 [특강] 협업을 위한 GIT 활용 실전
20:00 ~ 21:00 [특강] 협업을 위한 GIT 활용 실전

오늘은 그동안의 실시간 파이썬 문법강의가 아닌 Git이라는 프로그램을 활용하는 강의를 듣고 저녁에는 강민철 튜터님의 특강이 예정되어 있다.

원격 GIT 강의

협업을 위한 Git 활용 기초

오늘은 오랜만에 오전부터 쭉 원격강의를 듣는 시간이었다. 오늘 배울 것은 GIT이라는 프로그램인데 캠프 개강 이후 깃, 혹은 깃 허브라는 단어 자체는 자주 언급되어 귀에 익었지만 뭐하는 프로그램인지는 잘 몰랐고 언급될때마다 매니저님이나 튜터님들은 나중에 배우게 될 것이니 지금은 몰라도 된다라고 하시며 넘어갔었는데 오늘은 그것을 본격적으로 배우게 된다.

GIT이란 무엇인가?

  • Git은 버전 관리를 하는 프로그램
    • Git을 사용하여 버전 관리도 할 수 있고 무슨 작업을 했는지 히스토리도 볼 수 있다.
    • 기능을 완성할 때마다 작업 내역을 저장해 어떤 부분을 만들 때 에러가 발생했는지 쉽게 파악할 수 있다.
    • 프로젝트를 나누어서 작업하고 하나로 합치는 것이 편하다. 누가, 언제, 어떤 부분을 수정했는지를 한 눈에 파악할 수 있다.
    • 다른 사람이 작업한 내용을 내 파일로 덮어써버릴 수 있는데, Git을 사용하면 같은 파일명의 내용이 어떤 부분이 다른지를 자동으로 비교하고, 어떤 것을 반영할지 선택할 수 있다.

1주차 핵심 정리

  • 버전 관리: 프로젝트 상태가 변경되는 정보를 알고 있다는 것. Git 은 가장 널리 쓰이는 버전관리 도구로 commit 을 사용해 관리한다.

  • git 초기화(git initialize) : 컴퓨터에 있는 프로젝트를 Git 이 관리하는 프로젝트로 만드는 것

  • 커밋(commit) :

    • 현재 프로젝트의 상태를 저장하는 것.

    • 누가, 언제 커밋 했는지에 대한 정보와 프로젝트 변경 내용

    • 작업내역이 어떤 것인지 알아볼 수 있게 적는 메시지를 '커밋 메시지'라고 한다.

  • add (혹은 staging, 스테이징) : 커밋에 반영할 파일을 선택하는 것으로 커밋에 반영할지 안할지는 파일 단위로 선택이 가능하다.

  • commit history : 커밋 한 내역을 한눈에 볼 수 있다.

  • repo : 'Git으로 관리되는 프로젝트' 를 Git 에서는 repo(리포, repository 리포지토리의 약자) 라고 부른다.

    • 내 컴퓨터에 저장되어있는 리포지토리를 로컬 repo(local repository)라고 하고, Github 처럼 다른 곳에서 접속할 수 있는 공간에 저장되어있는 것을 원격 repo(remote repository)라고 한다.
  • push : 로컬 repo의 커밋들을 원격 repo에 반영하는 것

  • pull : 원격 repo의 커밋들을 로컬 repo 로 반영하는 것

  • clone : 원격 repo를 내 컴퓨터에 가져와서 초기 repo 세팅하는 것

  • 혼자 Git 프로젝트를 작업 할 때는 pull -> commit -> push 순으로 하는 것이 충돌을 막을 수 있어서 좋다.

2주차 핵심 정리

협업의 단계
1단계 : 누가 이 작업 할 것인지 정한다. - Issue

  • issue 는 내가 할 작업, 기능 추가, 버그 리포트 등 여러 방식으로 사용할 수 있다.
  • 협업을 하기 위해 issue 를 만들어 누가 작업할지 정하고, 브랜치를 만들어 작업할 공간을 나눈다.

2단계 : 각자 맡은 것을 작업한다. - Branch

  • 브랜치(branch)는 특정 commit 에서 갈라져나와 작업할 수 있다. 우리는 기능별로 이름을 만들어주어 브랜치에 작업해준다.
  • 작업할 브랜치로 바꾸는 것을 체크아웃(checkout)이라고 한다. 체크아웃된 브랜치에만 commit 이 반영된다.

3단계 : 각자 작업을 프로젝트에 합친다. - merge

  • 브랜치의 작업 내역 commit 들을 다른 branch 로 반영(합치기)는 것을 Merge(머지, 병합)이라고 부른다.
  • 개발할 때는 기준이 되는 기본 브랜치를 정해놓고 해당 브랜치에 내용을 merge한다.
  • 브랜치명은 규칙을 가지고 잘 이름 지으면 프로젝트 관리가 쉬워진다.
  • 작업이 완료되면 작업한 브랜치는 보통 삭제한다. 그 이유는 나중에 브랜치 설정이 꼬이는 것을 방지할 수 있기 때문이다.
  • 각 작업 브랜치에서 작업할 때는 다른 브랜치의 영향을 받지 않고 독립적으로 작업할 수 있다.

+@단계 : 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. - PR 후 merge

Merge conflict

  • Merge 하는 과정에서 같은 파일이 동일한 부분이 수정된 게 발견되면 Merge conflict(병합 충돌)가 발생한다.
  • Git 이 충돌을 파악할 수 있도록 파일 내용을 고쳐서 충돌 내역을 보여준다.
  • conflict 를 수정하려면 최종적으로 반영할 내역으로 고친 후에 merge commit 하면 된다.

원격 repo

  • tracking 한다는 것은 로컬 repo와 원격 repo의 특정 브랜치를 연결해주는 것이다.
  • push와 pull 은 기본적으로 tracking(추적)되고 있는 브랜치를 기준으로 commit 내역을 반영한다.

강의를 보면서 열심히 따라갔지만 일단 오늘은 2주차의 내용까지만 정리하였고 3주차의 내용은 주말내로 강의를 듣고 핵심내용을 요약해서 WIL에 작성하도록 하겠다.(이번주 WIL은 작성해야할게 너무 많을 것 같다.)

실시간 Git 특강

- Git 활용을 위한 특강_강민철 튜터님

오늘 들었던 Git 원격강의내용은 주로 소스트리라는 프로그램을 이용해서 GitHub에 연동하는 방식이었고 이번 특강은 Git Bash라는 프로그램으로 명령어 입력만으로 GitHub에 연동하는 방법을 설명해 주시고 Git을 통한 협업에 대해서 많은 조언을 해주셨다.

강의가 조금 길어져서 평소보다 1시간반~2시간정도 강의가 더 진행되었기 때문에 오늘은 백준 알고리즘 실습을 따로 풀어볼시간이 없어서 오늘의 TIL은 여기까지만 작성하고 주말 및 추석 연휴를 활용해서 WIL 작성을 해야하는데 이번주 WIL에는 넣어야 할 내용이 너무 많아서 마음 단단히 먹고 작성해야 할 것 같다.

profile
스파르타 내일배움캠프 3기 수강생 정형빈

0개의 댓글