키베이루's diary

GIT 이란? 본문

Git & GitHub

GIT 이란?

키베이루 2022. 12. 15. 23:11

git 이란?

git은 리누스 토르발스가 개발한 형상 관리 도구 중 하나로 소스코드 관리를 위한 분산 버전 관리 시스템으로 되어있습니다.

git에는 Remote Repository(원격 저장소)와 Local Repository(로컬 저장소)가 존재하는데 팀작업을 할 경우 Local에서 작업하던 내용을 Remote에 업로드하고 팀원은 Remote에 있는 작업물을 다운로드하는 과정을 통해 팀과의 협업을 할 수 있습니다.

github은 git 저장소를 관리하는 클라우드 기반 호스팅 서비스로 다른 사람과 소스코드 공유가 가능하며 git의 기본적인 기능을 확장하여 제공합니다.

git의 장점

 1) 버전 관리 시스템을 사용해 특정 시점의 버전을 사용 할 수 있기 때문에 팀과의 협업 시 공통 제작물에 대한 업데이트에   대한 충돌을 사전에 방지해 줍니다.

 2) 소스코드를 직접 주고 받을 필요 없이 같은 작업물을 동시에 작업할 수 있는 병렬 개발이 가능합니다.

 3) 분산 버전 관리 시스템으로 서버 장애 및 기타 애로 사항으로부터 자유로운 오프라인 작업이 가능합니다.

 

git의 3가지 영역

Working Directory : 소스 코드를 작업하는 영역, 내가 작업하는 내용의 코드 추가, 수정, 삭제 등의 작업이 가능한 공간

Staging Area : commit을 하기 위해 git add의 명령어로 추가한 파일들이 모여있는 공간으로 검증을 위한 영역

Repository : Staging Area 영역에 있는 파일들을 git commit 명령을 실행하여 commit 한 파일들이 모여있는 공간

 

Git 대표적인 명령어

$ git add [파일명 .확장자명]

git add는 Working Directory에 있는 파일들을 Staging Area에 올린다.

$ git commit

git commit은 Staging Area에 있는 파일들을 commit 한다.

$ git push

git push는 commit한 파일들을 remote repository에 업로드한다.

commit과  push의 차이 : commit은 변경된 사항을 Local Repository에 저장하고 push는 변경된 사항을 Remote Repository에 저장한다.

 

협업을 위한 규칙

코딩컨벤션

나 외의 다른 사람들이 내가 작성한 코드를 보고 빠르게 이해할 수 있도록 하는 하나의 작성 표준

1) 헝가리안 표기법 : 변수명에 변수의 타입을 명시한다.

접두어
데이터 타입
b
byte, boolean
n
int, short
i
int, short (주로 인덱스로 사용)
c
int, short (주로 크기로 사용)
l
long
f
float
d, db
double
ld
long double
w
word
dw
double word
qw
quad word
ch
char
sz
NULL로 끝나는 문자열
str
C++ 문자열
arr
배열 (문자열 제외): 다른 접두어와 조합 가능
p
포인터 (16비트, 32비트): 다른 접두어와 조합 가능
lp
포인터 (32비트, 64비트): 다른 접두어와 조합 가능
psz
NULL로 끝나는 문자열을 가리키는 포인터 (16비트, 32비트)
lpsz
NULL로 끝나는 문자열을 가리키는 포인터 (32비트[2], 64비트)
fn
함수 타입
pfn
함수 포인터 (16비트, 32비트)
lpfn
함수 포인터 (64비트)

2) 카멜 표기법 : 연달아오는 단어의 앞글자를 대문자로 표시, 맨 앞에 오는 글자는 소문자 // ex) camelCase

3) 파스칼 표기법 : 연달아 오는 단어의 모든 앞글자를 대문자로 표시한다. // ex) PascalCase

4) 스네이크 표기법 : 단어 사이에 언더바_를 넣어서 표시한다. // ex) snake_case

5) 케밥 표기법 : 스네이크 표기법과 비슷하지만 언더바 대신 -를 사용한다. // ex) kebab-case

 

커밋 메시지 컨벤션

커밋 메시지 컨벤션은 커밋 메세지를 통해 작업물의 commit 내용을 입력하게 되고 이러한 커밋 메시지 컨벤션의 장점으로 과거 코드에 대한 코드 추적, 이슈 사항 처리상황, 팀원들과의 커뮤니케이션에 도움이 된다.

커밋 메시지는 제목/본문/꼬리말 세 가지 파트로 구성한다.

type : Subject  // -> 제목 // 어떤 의도로 commit했는지 명시

body //  -> 본문 // 무엇을 했는지 작성

footer // -> 꼬리말 // ID명시

 

type  : 태그와 제목으로 구성

이름 설명
Feat 새로운 기능을 추가할 경우
Fix 버그를 고친 경우
Design CSS 등 사용자 UI 디자인 변경
!BREAKING CHANGE 커다란 API 변경의 경우
!HOTFIX 급하게 치명적인 버그를 고쳐야하는 경우
Style 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우
Refactor 프로덕션 코드 리팩토링
Comment 필요한 주석 추가 및 변경
Docs 문서를 수정한 경우
Test 테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X)
Chore 빌드 태스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X)
Rename 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
Remove 파일을 삭제하는 작업만 수행한 경우
ex)
git commit -m "[이름] feat(New project) Create new project"
[이름] feat(New project) Create new project

예시)

 

FlowChart

어떠한 일을 처리하는 과정을 순서대로 간단한 기호와 도형으로 도식화 한 것으로 프로세스를 수행하기 위해 필요한 일련의 단계와 결정을 시각적으로 표현한 자료이고 복잡한 프로세스를 명확하고 이해하기 쉬운 다이어그램으로 문서화하기 위해 사용된다.

프로그래밍에서 프로그램이 돌아가는 과정을 그림으로 나타낼 때 주로 사용된다.

Flowchart 기호들

 

Flowchart 예시

 

Flowchart는 개발된 툴을 사용하여 손쉽게 컴퓨터에서 사용할 수 있다.

-draw.io

 

Flowchart Maker & Online Diagram Software

Flowchart Maker and Online Diagram Software diagrams.net (formerly draw.io) is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPM

app.diagrams.net

 

Comments