Git/Basic

1. Git, Github, 그리고 Linux

2024. 1. 2. 01:42

  • -

개발자가 학습하는 모든 기술은
1. 소프트웨어 개발을 조금이라도 편리하게 하기 위해 개선시킨 것이다.
2. 기존에 존재하던 현실의 시스템을 추상화하여 적용한 것인다.

 

 

1. 깃이란 무엇인가?

 

VCS

Version Control System

 

소프트웨어 개발 프로젝트의 시간과 차원을 관리

 

 

2. 프로젝트 단위의 "소프트웨어 개발 프로세스" 이해

 

* Google "소프트웨어 개발" 검색, 링크1, 링크2

 

소프트웨어 개발 프로세스

 

소프트웨어 개발은, 단순히 한두번의 분석과 설계 그리고 구현 작업으로 이루어지지 않습니다.

일반적으로 정해진 일정에서 분석과 설계 작업을 마무리하고 구현하여 프로그램이 완성되어 운영됩지만, 고도화와 끊임없는 요구사항을 만들어진 프로그램에 반영해야 합니다.  

 

 

 

3. 문제 파악

 

VCS 가 없는 상태에서

프로젝트를 관리한다고 가정해 봅시다.

 

3.1 프로젝트 예시

전제, 일정표, 파일 관리

 

3.2 VCS 가 없는 프로젝트의 소스코드 관리 예시

수십 단계를 저장하여 관리해야 한다면, 과연 관리가 가능할까?

 

[ 개념 이해 ]

 

게임과 문서의 저장과 불러오기

 

게임에서는 특정 시점을 저장하고 불러올 수 있습니다.

문서를 작성할때는, 비슷한 문서를  폴더 단위로 관리하여 저장하고 불러올 수 있습니다.

 

 

소스코드 작업도 게임과 문서를 저장하고 불러오는 방식과 동일합니다.

특정 시점에서 작성된 소스코드를 저장합니다.

저장할 때, 소스코드의 저장 시점에 해당하는 제목과 설명을 함께 저장해두고

필요할 때, 제목과 설명을 보고 구분하여 불러옵니다.

 

 

3.2 불러오기의 문제점

 

- 과거의 어느 시점의 문제만 수정하고 싶다면?

- 일부만 수정하고 싶다면?

- 기존 프로젝트에서 새로운 기능을 테스트 하고 싶다면?

 

 

3.3 협업과 통합

 

통합 문제

 

소소코드를 문서처럼 파일 단위로 관리하기 힘든, 가장 중요한 이유

변경된 소스코드를 하나하나를 확인해서 변경된 부분을 수정해야 하는 문제

e.g. 같은 함수를 여러명이 수정한 경우

 

프로젝트 폴더를 복사해서 백업하고 관리할  필요가 없다.

 

 

 

47. GIT | 만화로 나누는 자유/오픈소스 소프트웨어 이야기 (joone.net)

 

47. GIT

리누스 토발즈는 리눅스 커널 개발을 시작하고 거의 10년 동안 CVS나 서브버전(SVN)과 같은 소스 관리 소프트웨어를 사용하지 않았다. 여러가지 불편함에도 불구하고 수많은 컨트리뷰터가 오픈소

joone.net

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.