[ Git / GitHub ] 협업을 위한 필수 도구

zeew00·2024년 7월 6일
0
post-thumbnail

Git 그리고 GitHub에 대한 설명에 앞서 간단한 서론으로 시작하겠습니다.

현대의 S/W 개발은 복잡하고 다양한 기술의 결합이며 이러한 환경에서
효과적인 협업과 체계적인 버전 관리는 필수적이라 할 수 있습니다.

GitGitHub는 이러한 요구를 충족시키는 핵심 도구 중 하나이며
개발자들이 코드의 변화를 추적하고 여러 사람이 공동으로
작업할 수 있게 해주는 강력한 시스템입니다.

깃(Git)? 그게 무엇일까

  • Git이란 컴퓨터 파일의 변경사항을 추적하고 파일들의 작업을 조율하는
    분산 버전 관리 시스템이며 S/W 개발에서 코드를 관리, 기록, 버전 관리를
    해줌으로 체계적인 개발이 가능하도록 도와주는 무료 공개 S/W입니다.

  • 변경 관리, Branch(분기), Merge(병합) 등의 다양한 기능을 제공하고
    개발자가 Commit을 통해 코드의 변경사항을 저장하면 이는 시간을 거슬러
    과거의 상태로 돌아갈 수 있는 Check Point 역할을 합니다.

  • Branch 기능을 사용 시 원본 코드를 변경하지 않고
    실험적인 기능을 개발할 수 있는 별도의 작업 공간을 만들 수 있으며
    이후 Merge를 통해 성공적인 변화를 기존 메인 프로젝트에 통합할 수 있습니다.


  • 앞으로 형상관리도구라는 말을 많이 언급할 텐데 이걸 쉽게 풀어 얘기한다면
    개발 코드를 입력하다 실수를 하거나 오류가 발생하면 쉽게 취소할 수 있고
    과거의 원하는 시점으로 돌아갈 수 있으며 과거의 코드와 현재의 코드를 비교해 볼 수 있게 해주는 것이 바로 형상관리도구입니다.

  • Git은 항상 우리가 만든 모든 파일들을 지켜보고 있고
    추가, 수정, 삭제된 사항들을 기록하고 있으며 같은 프로젝트라도
    다른 버전으로 생성하여 동일한 밑그림 코드에서 작업이 가능하도록 도와줍니다.

  • 3개의 프로젝트가 완성되는 시점이 다르더라도 중간에 코드 변경을 일괄적으로
    적용할 수 있도록 여러 개발자들의 작업을 도와주는 매우 유용한 시스템입니다.

개발에서 버전관리 시스템의 중요성

  • 버전 관리 시스템의 이점은 이전 버전의 상태를 기억하는 것으로부터 파생됬고
    버전에 따라 수정 내용을 비교하기도 하며 실수로 파일이 훼손되었을 경우에도
    이전 버전을 불러와 쉽게 복구할 수 있습니다.

  • 혼자서 작업을 하는 것이 아닌 팀 단위로 공동 작업하는 경우 이러한 시스템을 통해
    더 생산성 있는 관리를 할 수 있고 어떤 범위의 작업을 누가 했는지 알 수 있습니다.
    또한 오류 발생 시 누가 실수를 했었는지 추적을 하는 것도 가능합니다.

  • Git은 자동으로 버전관리를 하며 업데이트 및 파일 패치 배포도 쉽게 관리할 수
    있도록 도와줍니다. 그래서 대형 프로젝트를 진행하거나 백엔드, 프론트엔드
    따로 개발할 때에도 Git을 자주 사용합니다.

  • Branch를 통해 개발한 뒤 Git에 병합하는 Merge작업 또한 가능하며
    아래 사진은 Master를 같은 환경으로 하여 두 갈래(feature)로 나눠 작업하고
    추후 오류 없이 병합이 가능합니다.

Branch(분기)

  • 브랜치독립적인 공간을 만든다는 뜻이며 새로 만든 브랜치는 원래 있던
    본래의 작업물과 동일한 상태를 가지며 브랜치에서 수정 후 커밋을 해도
    기존 작업물에는 어떠한 영향도 미치지 않습니다.

  • 쉽게 말하면 기존의 도안을 복제하여 그 위에 먼저 실험적으로 작업해 볼 수 있다는
    뜻이고 또한 분기 지점을 생성해서 구역을 나눠 동시에 진행이 가능하다는 말 입니다.

Merge(병합)

  • Merge병합한다는 의미로 작업이 성공적으로 진행된 것이 확인될 시
    본 게시물(master)분기 작업(branch)를 병합하는 작업을 말합니다.

Commit(제출)

  • Commit이란 변경된 사항들을 확정하여 저장소에 저장한다는 뜻입니다.
    하지만 공용 저장소를 사용하기 때문에 다른 개발자와 실시간으로 협업하며
    서로의 작업을 공유할 수는 없습니다.

  • 위의 단점을 보완하고자 등장한 것이 바로 GitHub입니다.

깃과 깃허브 설명 참고 블로그
버전관리의 중요성 참고 블로그
게시글 썸네일 이미지 인용 사이트

profile
컴공 편입 폴붕이의 일상

0개의 댓글