210223_TIL

김재헌·2021년 2월 23일
0
post-thumbnail

Git - 페어 프로그래밍

git 환경설정

$ git config --global user.name "Jay"
$ git config --global user.email jaeheon998795@gmail.com

git 다루는 법을 프리코스에서 알려줬는데 처음에 꼭 해야하는 설정을 왜 지금 알려주는 걸까?
이미 구글링으로 다 해놨던 것들이다.
--global은 단 한번만 해줘도 되는 설정
libarary에 설치하는 것이 아니라 시스템에 설치하기 때문

에디터 설정

$ git config --global core.editor nano

nano가 사용하기 편해서 기본 에디터를 nano로 해주었다.

Git workflow

개발은 보통 팀 단위로 이루어지기 때문에 협업은 필수이다. 그래서 서로 추가하고 수정한 코드가 엇갈리고 충돌이 일어나지 않도록 해줘야 수월한 협업이 이루어진다.
보통 코드를 작성하고 터미널을 통해

$ git add <파일이름>
$ git commit -m '메세지' //레파지토리의 비밀번호는 절대 입력하지 말 것! 비밀번호를 입력하는 순간 그 레파지토리의 수명은 끝난다
$ git push origin master // 여기서 origin은 나의 remote repository 이름이고 master는 branch 이름이다

이렇게 수정된 사항을 내 remote repository에 push 한다.

그리고 페어의 레파지토리에서 최신화(pull)을 하고 싶다면 일단 페어의 레파지토리와 연결을 해야한다

$ git remote add pair https://... // <레파지토리 이름> <페어의 레파지토리 주소>
$ git remote -v // 추가된 레파지토리 주소를 확인할 수 있다

페어의 레파지토리 주소를 추가했다면

$ git pull pair master

페어가 페어의 remote repo로 push한 데이터를 내가 받아올 수 있게 된다.
pull을 해서 땡겨올 경우 같은 파일 같은 줄에 다른 변경사항이 있다면 충돌이 일어날 수 있다.
위의 코드가 내가 작성한 코드
밑의 코드가 페어가 작성한 코드
상황에 따라 위만 아래만 남길 수 있고 둘다 남길 수도 있다.

나는 페어와 같이 이 스프린트를 진행할 때 오히려 충돌이 일어나지 않고 자동으로 바뀌어서 당황스러웠다.
구글링을 해보니

출처: https://mobicon.tistory.com/162

두 명 이상의 개발자가 push를 하고 pull했을 때 충돌이 일어난다. 나와 페어는 한 명만 push하고 pull했기 때문에 충돌이 일어나지 않고 auto merge가 되었다.

Git branch

branch를 만드는 이유를 나름대로 생각해봤는데 롤이라는 게임은 매주 밸런스 패치를 한다. 밸런스 패치를 하기 위해 master branch에서 새로운 balance branch를 만들고 그 안에서 조정이 필요한 챔피언을 수정하고 테스트를 돌려보고 오류가 나지 않으면 master branch에 merge하는 것 아닐까? 결국 master의 오류를 방지하고 큰 줄기가 망가지는 것을 방지하는 한 방법이라고 생각한다.

$ git branch balance // balance branch 생성
$ git checkout balance // balance branch로 이동
$ git checkout -b balance // balance branch를 생성하면서 이동

이렇게 branch를 생성할 수 있고 앞서 했듯이 add, commit을 거친 뒤

$ git checkout master // master branch로 이동
$ git merge balance // balance branch를 master branch와 병합

balance branch에서 작업한 내용을 master branch로 가져 올 수 있다.


그러뭍기

grep

$ brew list | grep // 찾고 싶은 내용 찾기

Early return

'조건이 맍지 않는 경우', '-1', 'undefind', ...etc
이러한 경우를 빨리 return해주고 뒤에 로직을 구현시키는 방법
그러면 조건이 맞지 않는 경우 빨리 리턴하고 함수를 종료시킬 수 있어 뒤에 있는 로직을 돌릴 필요가 없다.

Arrow function

항상 이름 없는 함수(Anonymoyus)
function, return, {} 생략가능
두 줄 이상 작성시 return, {}사용

함수 바로 실행

함수 전체를 소괄호()로 감싸주면 바로 실행이 됨

(function add(a, b) {
	return a + b;
})
profile
개발자되려고 맥북샀다

0개의 댓글