갑자기 나오시면…
- 어제 13시쯤 갑자기 슬랙에 git강의가 제공되었다는 공지가 올라왔다…
- 솔직히 생각하면 본 항해 시작하면서 종합반 플러스강의만해도 바쁠텐데
- git은 언제 공부한다는 거지? 라는 생각이 조금 들기는했었다.
- 근데 이렇게 준비하게 될 줄 이야
- 나만 어제 본격적으로 “항해시작!” 하는 줄 알았는데 항해도 “어? 그럼 나도 같이 시작^^”
- 할 줄은 몰랐다
git강의
- 소스트리라는 프로그램을 사용해서 git을 배우는데
- 당연하다면 당연하지만 git을 실전에서의 협업 단계까지 배운다.
- 브런치와 FR까지 거의 전부를 배운다는 뜻
- 항해는 볼륨이 있는 프로젝트를 처음부터 협업하며 진행하니 맞는거지만
- 이렇게 정식으로 git강의(협업까지 있는)를 제공받으니 솔직히 좋다.
- 지금까지는 협업파트는 구글링으로 분할되며 배우거나
- 진짜 조금 빈약하게 영상으로 배웠었는데 진짜 본격적으로 다시 배울 것 같아 기대반 두려움 반이다..
- 강의 분량이 좀 길긴 하다…
오늘의 react
- useReducer
- 군데 군데 떨어진 useState를 한번에 모아서 정리하는
- useState심화버전이다.
- useState가 서로 콜백으로 할당되는 state를 침범하면 안되기 때문에
- 하나의 action과 dispatch를 만들어서 공통적으로 다루게 한다.
- useState다음으로 중요하다는데 왜 그런지 알겠다.
- 장단점
- useState의 무조건적인 대체제가 아니라 상호보완적인 관계이다.
- 간결하게 useState만으로 코딩이 가능하다면 useReducer는 사용하지 않는 편이 좋다.
Git 1주차
1. git 수업에서는 무얼 배우나요?
- 즐겁게 배우고 바로 써먹고 모르는 건 올바르게 질문하자
- 1주차는 나를 위한 git
- 2주차는 같이 하기 위한 git
- 3주차는 모두의 git이다.
2. 필수 프로그램 설치
- git과 git bash를 설치한다.(윈도우 기준)
- source tree를 설치한다.
- github에서 토큰을 발행받아 source tree와 연동한다.
3.Git 은 뭐고, Github 은 무엇인가요?
- git은 프로젝트의 버전 관리를 위한 도구입니다.
- 흔히들 생각하는 최종.txt, 최종진짜.txt, 진짜최종마지막.txt
- 이런식으로 계속 업데이트하는걸 쉽게 버전으로 만들어주는 도구
- 작업단위를 나눌 수가 있습니다.
- 협업해서 하나의 프로젝트를 만드는데 유용합니다.
- github는 개발자의 커뮤니티, 프로젝트 기여하기, 원격저장소의 기능을 합니다.
- source tree는 git을 쉽게 사용할 수 있는 도구입니다.
- ex) 워드 파일을 편집할때 MS Office를 사용하는것
- 회사에서는 git과 github를 아래와 같은 용도로 사용합니다.
- 프로젝트 작업내역 관리하기
- 여러 개발자들이 하나의 제품을 만들 때 각자 작업한 코드를 합치기
- 버그 리포트 받고 해결하기
- 작업내역을 확인해서 어제까지는 분명 잘 되었는데 오늘 작업하니까 에러가 나네? 아하, 그럼 오늘 작업한 내용 중에 버그를 만드는 코드가 있겠구나. 어떤 게 어제 작업 내용이고 어떤 것이 오늘 작업 내용이지 확인하자. 필요하다면 어제 만든 버전으로 되돌리자.
- Github 에 있는 저장소를 웹 사이트로 만들기
4. 버전관리와 commit - 개념탑재
- 깃은 버전관리 도구이다.
- 깃은 따로 파일을 만들지 않고 커밋을 해준다.
- 커밋을 통해 현재 프로젝트를 포착한다고 생각하면 좋다.
- 커밋목록을 보면 뭐가 어떻게 누가 고쳤는지 확인할 수 있다.
5. 버전관리와 commit - 실습 01
- 소스트리를 이용해서 파일을 스테이징하고
- 커밋하고
- 파일을 수정하면
- 수정내역이 보이고
- 다시 커밋하는 것까지 해보았다.
6. 버전관리와 commit - 실습 02
- commit에 대한 실습 두번째
- 다른 파일들을 만들고
- 같은방식으로 스테이징하고 커밋하되
- 스테이징에서 파일을 골라서 할 수 있고
- 따라서 커밋도 원하는 파일만을 커밋할 수 있다.
- 커밋 id는 나중에 커밋을 관리하고 되돌릴 때 사용하는 중요한 정보이다.
- 주민등록번호처럼 커밋의 고유한 id이다.
7. 버전관리와 commit - 정리
- 버전관리를 한다는 건 어떤 의미일까?
- 하나의 프로젝트를 진행함에 있어 계속해서 수정을 하며 내용을 추가하는데
- 이때 중간 중간 저장을 하며 버전을 만들어주고 이 버전을 보기쉽고 다루기 쉽게 하는 것이 버전관리를 한다는 것이다.
- 작업내역 단위인 commit 에는 어떤 정보가 포함되어 있어야 잘 버전관리를 할 수 있을까?
- 수정내역,
- (팀 활동일 경우) 수정자 이름과 수정내역과 그 이유
- 지금까지 우리가 실습은 어떤 순서로 했었지?
- 프로젝트 폴더를 만들고
- 여러 txt파일들을 만든 후에
- 그 파일들을 버전 업 하면서 스테이징하고 커밋하며 버전관리했다.
8. 원격 repo 사용하기 - 개념탑재
- 원격 repo와 로컬 repo
- repo는 깃으로 관리되는 프로젝트를 말한다.
- 내 컴퓨터에 저장되어 나만 볼 수 있는 것을 로컬 repo
- github에 push하여 남들도 볼 수 있는 것을 원격 repo라고 한다.
- 클라우드와 비교하면
- 자료를 올릴때 클라우드 폴더와 동기화하여 자료가 올라가는 것과 비슷하다
- 단, 깃허브는 커밋을 자동으로 반영하지 않기 때문에 어디 commit 까지 반영해야한다.
- 로컬 repo 의 commit 들을 원격 repo 에 반영하는 것을 **push(푸쉬)**이라고 해요. commit들을 밀어넣기!
- 원격 repo 의 commit 들을 로컬 repo 에 반영하는 것을 pull(풀) 이라고 해요. commit들을 땡겨오기!
- 원격 repo 를 내 컴퓨터에서도 사용할 수 있도록 가져올 수도 있어요. 일종의 초기 다운로드라고 생각하면 됩니다. 이걸 clone(클론, 복제) 라고 해요.
9. 원격 repo 사용하기 - 실습
- 말그대로 실습을 했다.
- 우선 내 깃허브에 원격repo를 만들고
- 그 주소를 복사하여 소스트리에서 원격 란에 가서 연결해준다.
- 이후 push해주면 내 로컬에 있던 데이터들이 원격으로 복사된다.
- 반대로 pull을 할때는 먼저 원격에서 수정을 하고
- 이후 소스트리에서 pull을 해주면된다.
- 따라서 혼자 할경우
- 우선 pull을 해주고
- commit을 한 다음
- push를 해주면
- code conflict확률을 매우 줄일 수 있다.
10. 원격 repo 사용하기 - 정리
- 원격 repo 와 로컬 repo 를 연결해서 내용을 반영하고 싶을 땐 어떤 방법을 써야할까?
- 원격 repo의 주소를 이용해 소스트리에서 로컬repo와 연결해준다.
- 이후 push와 pull을 이용하여 정보를 공유한다.
- 원격 repo 와 로컬 repo 는 왜 따로 있을까?
- 협업과 개발자들의 커뮤니티를 위해서이다.
- push 와 pull 의 개념을 원격 repo와 로컬 repo 를 포함해 그림으로 그려보세요.
- push는 내것을 로컬로 밀기
- pull은 원격의 것을 내게로 당기기
11. 1주차 배운 개념 지도 그리기
- 버전 관리
- git 초기화 (initialize, init)
- add / staging
- commit (커밋)
- commit 내역(history)
- push
- pull
- clone
- tracking
12. 1주차 끝 & 숙제 설명
- 나만의 프로그래밍 배움 노트 TIL(Today I Learned) 만들어봅시다!
'항해99' 카테고리의 다른 글
[항해99] TIL 사전과제 스터디 D-2 (0) | 2022.07.10 |
---|---|
[항해99] TIL 사전과제 스터디 D-3 (0) | 2022.07.10 |
[항해99] TIL 사전과제 스터디 D-5 (0) | 2022.07.08 |
[항해99] TIL 사전과제 스터디 D-6 (0) | 2022.07.06 |
[항해99] TIL 사전과제 스터디 D-7 (0) | 2022.07.06 |