내일배움캠프 TIL(221114): 팀 소개 미니프로젝트 시작, Git 개념 및 GitHub를 활용한 협업 프로세스 이해

Jiumn·2022년 11월 14일
0
post-thumbnail
  • 스파르타 내일배움캠프 TIL 1일차
  • 작성 일자: 2022-11-14

오늘 배운 것

  • 팀 소개 미니 프로젝트(스파르타 웹개발 종합반 강의를 토대로 레이아웃 및 기능 구현) 와이어프레임 작성, 역할 분담, 개발 스케쥴 조율
  • GitHub 회원가입 완료
  • Git과 GitHub에 대한 개념 이해 및 이를 이용한 협업 프로세스 강의 수강 및 실습

깃(Git)이란 무엇인가

  • 깃(Git)이 필요한 이유
    => 만약에 깃(Git)이 없다면..?
    : 변경 내역 확인이 어렵다 / 작업을 되돌리기 어렵다 / 협력하기 어렵다
    -> 이러한 어려움이 느낀 개발자, 그는 바로 Linus Torvalds (리눅스 개발자)

"우리 변경 사항(=버전)을 조금 더 일목요연하게 관리해보자!"

  • 버전: 유의미한 변화가 결과물로 나온 것

  • 깃을 활용한 프로그램 개발 == 유의미한 변화를 쌓아 프로그램을 만들어나가는 \
    변경 내역들을 기억하며
    필요하다면 작업들을 되돌리며
    협력하는 것

  • 깃허브(GitHub): 원격 저장소 호스팅 서비스 / 개발자들의 SNS

  • 깃이 관리하는 3개의 공간

    1) 작업 디렉터리(워킹 트리): 버전 관리의 대상이 위치하는 공간

    2) 스테이지(인덱스): 다음 버전이 될 후보가 올라가는 공간. 작업 디렉토리에서 버전으로 변경하고 싶은 사항만 스테이지로!

    • 스테이지에 추가한다 == 스테이지에 애드한다
    • 스테이지에서 저장소로 반영하는 것 == 커밋한다

    3) 저장소: 버전이 쌓이는 곳. 저장소에 버전이 반영되면 작업 디렉터리와 스테이지의 사항들은 사라지게 된다.
    (스테이지와 저장소는 가상의 공간)

내 컴퓨터 내에 존재하는 저장소(로컬 저장소)에서 git을 조작하는 명령어들

git init (로컬 저장소 생성)
touch a.txt (파일 생성)
git add a.txt (스테이지에 애드)
git status (파일 상태 확인)
git commit -m "a.txt 생성" (커밋 메세지)
git log (커밋 로그 확인)

- 브랜치(branch): 버전의 분기
  1. 브랜치를 나눈다
  2. 각자의 브랜치에서 작업한다
  3. (필요하다면) 나눈 브랜치를 합친다
  • 최초의 브랜치: master 브랜치 (최근에는 main 브랜치라는 용어로 대체)

  • 체크아웃(checkout): 특정 브랜치에서 작업할 수 있도록 작업환경을 바꿔주는 것

git branch (현재 브랜치를 확인, *라고 표시된 곳이 나의 체크아웃 위치)
git branch 이름 (새로운 브랜치 만들기)
git checkout 이름 (특정 브랜치에 체크아웃하기)
git checkout -b 이름 (새로운 브랜치 만들고 동시에 체크아웃하기)
git branch -D 이름 (브랜치 지우기)
  • 브랜치 병합 == 머지(merge)
git checkout 병합의 기준이 되는 브랜치 이름
git merge 병합을 당하는 브랜치 이름
  • 만약 같은 부분을 다르게 수정한다면 => 충돌 발생
    어떤 게 저장될까?
    -> 깃도 모른다.
    그래서 어떤 걸 저장할지 개발자가 직접 선별해줘야 된다.

오늘 느낀 점

  • 팀 소개 페이지 화면 구현을 위한 와이어 프레임 작성 툴로 '다이어그램스(Diagrams.net)'를 처음으로 사용해봤다. 단순한 도형을 그려서 표현하기에는 PPT보다 훨씬 유용한 것 같다.
  • 말로만 듣던 GitHub가 무엇인지, 왜 필요한지, 프로세스는 어떻게 되는지 배웠다! Branch 와 Merge 부분이 조금 헷갈려서 녹화본으로 한번 더 강의를 들으며 복습해야 할 것 같다.

내일 할 일

  • 팀 소개 메인 페이지 구현하기 (오후 12시까지 구현하고 팀원들과 확인해보기)
  • Git, GitHub 특강 복습하기
profile
Back-End Wep Developer. 꾸준함이 능력이다. Node.js, React.js를 주로 다룹니다.

0개의 댓글