[Git/GitHub] 1. 시작하기

AY·2023년 12월 12일

Git/GitHub

목록 보기
1/7

깃(Git)이란

버전 관리 시스템(VCS: Version Control System)으로 소프트웨어의 시간 및 버전을 관리하고 통제하는 시스템을 말함.

프로젝트의 변경 내역, 프로젝트 버전 등을 쉽게 관리해주는 프로그램

problem: 일정 단위의 작업을 취소하고 이전 버전으로 되돌려야 할 때

solution: 버전 관리 시스템으로 버전을 저장, 되돌리기, 각각 작업의 진행 등을 기록해 체계적 관리 가능

​

Git: 오늘날 가장 인기있는 버전 관리 시스템.

  • 프로젝트를 버전별로 백업, 관리하여 프로젝트를 유지보수 하면서 발생할 수 있는 여러 문제들을 미연에 방지하고 해결하는 역할을 함.

Github: Git을 기반으로 소스코드를 온라인에 저장하고, 공유할 수 있게 하는 소스코드 관리 서비스

​

용어 정리

  • 레포지터리(Repository, repo): 저장소. sw 파일이나 폴더 등 각종 정보 저장. 깃허브를 통해 공개/비공개 레포 만들 수 있음

  • 브랜치(branch): 독립적으로 어떤 작업을 진행하기 위한 ‘차원’ 하나의 폴더 안에서 여러 차원을 분기할 수 있음. 각각의 브랜치는 독립적, 여러 작업 동시 진행 가능 따라서 새로운 기능을 추가하고자 할 때 새로운 브랜치에서 기능테스트 가능.

  • 커밋(commit): 코드 수정사항을 기록하는 명령. 커밋 생성하면 커밋한 시점의 작업 변경 이력을 저장할 수 있음. 내 컴퓨터에서 수정한 코드를 깃헙 레포로 올리기 전에 포장하는 작업

  • PR(Pull Request): 수정한 코드가 있는 브랜치를 검토 후 병합해달라 요청하는 것 원격 저장소에 모두 커밋한 뒤 팀원들에게 PR 보냄 → 다른 개발자들이 확인 후 문제없을 시 PR승인, main 브랜치에 병합 → 코드 충돌 최소화 가능

  • 코드 리뷰(code review): 다른 개발자의 코드 내용을 점검하고, 피드백을 주는 것
    • 피드백: 오타, 버그 가능성, 개발 표준 등에 대한 의견 or 좋은 코드에 대한 긍정적인 피드백
    • 장점: 버그의 조기 발견, 개발 표준 준수, 코드 중복 방지, 모듈 재사용성 증대, 좋은 코드에 대한 논의 등을 할 수 있음 이를 통해 개발자 개인에게만 책임을 묻는 것이 아닌, 모두에게 책임이 있다는 문화 만듦.

  • 오픈소스(open source software): 공개적으로 접근할 수 있게 설계되어 누구나 자유롭게 확인, 수정, 배포 가능한 코드. 깃헙에 오픈소스 플젝 업로드 하여 다른 개발자들과 공유가능함. 동료 평가와 커뮤니티 기반 프로덕션에 의지하며 협업 방식으로 개발, 유지보수가 됨.

형상관리도구, 즉 버전관리 시스템 중 하나. 프로젝트의 소스코드를 효과적으로 관리할 수 있는 시스템.

⬇️ 효과적인 관리란?

Git의 특징임.

여러 명이 동시에 작업하더라도 문제 없도록 함

소프트웨어의 여러 버전을 동시에 관리할 수 있다

프로젝트 진행의 모든 로그를 볼 수 있고, 해당 시점으로 되돌리는 것도 가능.

git-scm.com

** 사용법을 정확히 알고 싶거나 추가적으로 알고 싶은 부분이 있을 때, Documentation → Reference Manual에서 찾아보면 됨.
​

​

​

Git을 사용하는 이유

코드 관리 측면

  • 변경된 이력 확인
  • 이전 이력으로 되돌리기
  • 다른 기능의 버전 코드 유지
  • 현재 최종이 어느 시점인지 표현할 수 있음.(로그)

협업의 측면

  • 분업 가능. 각자 하고 추후 합칠 수 있음.
  • 같은 부분을 수정해 문제가 생길 때 안내해줌
  • 협업으로 인한 실수를 예방
  • 팀원 간 커뮤니케이션을 지원
    ​

​

​

Git 기반의 서비스

프로젝트 소스코드 클라우드 호스팅, 특색에 맞는 기능을 제공

  • Github
    • 가장 많이 씀
  • Bitbucket
    • 협업을 위한 소프트웨어(Jira)와 연계가 잘 됨
  • GitLab
    • 설치형 Git
    • 용량에 대한 비용을 절감
    • 소스코드의 보안이 좋음
profile
FE 개발자

0개의 댓글