알고리즘
오늘 배운 것은 알고리즘 5주차 내용인 알고리즘 기출문제 풀어보기와 협업을 위한 Git의 활용에 대해 배웠다.
알고리즘을 깊게 공부하는 것보다 가볍게 이해하고 JS등을 공부하는 게 좋다는 말을 들어서, 알고리즘과 Git 강의는
정말 가볍게 이해하고 넘어간다는 느낌으로 배웠다.
알고리즘 기출문제는 카카오, LINE 등에서 나온 문제들이었고, 정말 어려웠다.
코드만 따라치기에도 모자른 시간이었다.
Git
Git은 소스트리라는 GUI를 사용한 강의였다.
터미널에 명령어를 입력해서 한땀한땀 하는 게 아닌, 사용자가 직관적으로 볼 수 있게 해주는 프로그램이다.
확실히 검은 화면에 뭐가 어떻게 흘러가는지 모른채로 푸쉬, 풀 등을 하는 것보다
소스트리의 그래프 형식으로 보면서 하니 훨씬 이해가 쉬웠다.
git과 github
둘의 이름은 비슷하다, 하지만 다른 프로그램(?)이다.
git은 내 컴퓨터(로컬)에 저장소를 만들어 저장하며, github는 그 로컬 저장소와 연결된 원격 저장소를 만들어, 다른 사람이 내 저장소에 접근할 수 있게 해준다. (협업할 때 편하다.)
issue(이슈)
누가 이 작업을 할 건지 정하는 것과, 버그, 개선 제안 등을 이슈라고 부른다.
개발자들은 '00페이지에 버그가 있습니다.', '이 부분을 저렇게 고치면 좋겠습니다.'. '이 부분은 제가 할게요!' 라는 식으로 이슈라는 단어를 사용한다.
branch(브랜치)
기본적으로 원격저장소를 만들게 되면 main이라는 브랜치가 만들어진다. 이 브랜치는 최상위의 기본 브랜치다.
만약 두 사람이 main 브랜치에서 하나의 파일을 수정하고 있다고 치자.
두 사람이 수정한 파일을 main 브랜치에 적용하게 된다면 충돌이 일어날 것이다.
그래서 나무의 가지처럼 생긴 브랜치라는 걸 만들어서 main이 아닌 다른 브랜치에서 작업을 한다.
예를 들면 main의 나무기둥에서 뻗어나온 feature/kim 브랜치와 feature/lee 브랜치를 만들어서 각각 해당 브랜치에서 작업을 하고 적용을 시킨다면 충돌은 일어나지 않을 것이다.
merge(병합)
실제 프로젝트에서는 작업 내역을 모두 합칠 기준이 되는 브랜치를 정해두고 작업을 한다.
main - develop - feature/1 , feature/2 , feature/3 ... 와 같이 브랜치를 만들고,
feature에서 작업한 내용을 develop에 먼저 합쳐서 수정해야 할 곳 등등을 확인한 후,
main 브랜치와 병합하는 편이다. 병합을 하게 되면 해당 브랜치는 할 일을 다 했으므로 지워준다.
깃공부는 할수록 좋은것같습니다 ㅎㅎ