버전 관리 시스템(Version Control Systems)
각 파일을 이전 상태로 되돌릴 수 있고, 프로젝트를 통째로 이전 상태로 되돌릴 수 있고, 시간에 따라 수정 내용을 비교해 볼 수 있고, 누가 문제를 일으켰는지도 추적할 수 있고, 누가 언제 만들어낸 이슈인지도 알 수 있다. VCS를 사용하면 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있음.
Git 분산 버전 관리 시스템(DVCS-Distributed Version Control(Systems)
중앙 서버에 접속하지 않은 상태에서도 코드 작업을 할 수 있는 것이 특징
마크다운(Markdown)
마크다운은 일반 텍스트 기반의 경량 마크업 언어.
마크업 언어에 비해 문법이 쉽고 간단.
HTML과 리치 텍스트(RTF) 등 서식 문서로 쉽게 변환되기 때문에 응용 소프트웨어와 함께 배포되는 README 파일이나 온라인 게시물 등에 많이 사용.
readme.md
readme.md는 반드시 작성
소스코드에 앞서 어떠한 목적으로 개발이 되었는지, 코드의 개요, 구조도 등을 처음 사람들에게 노출함으로써 해당 프로젝트에 대해 설명.
readme.md에 무엇이 들어가야 하는가?
Description: 프로젝트에 대한 간략한 설명
Environment: 실행 환경(컴파일, 하드웨어)
Prerequisite: 설치해야 하는 pakage
Files: 파일 목록, 역할
Usage: 가이드라인, Usage Example
License: 저작권 및 사용권 정보
*브라우저 서포트, 크레딧, 트러블슈팅, 체인지로그
변경 내역 찾아보기
$ git clone https://github.com/schacon/simplegit-progit
$ git log
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number
commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon <schacon@gee-mail.com>
Date: Sat Mar 15 16:40:33 2008 -0700
removed unnecessary test
commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon <schacon@gee-mail.com>
Date: Sat Mar 15 10:31:28 2008 -0700
first commit
*업데이트 배포 후 버그가 생겼을 때 정확한 히스토리가 있다면, 되돌릴 수 있다.
Commit 컨벤션
<타입>[적용 범위(선택 사항)]: <설명>
[본문(선택 사항)]
[꼬리말(선택 사항)]
build: 시스템 또는 외부 종속성에 영향을 미치는 변경사항 (npm, gulp, yarn 레벨)
ci: ci구성파일 및 스크립트 변경
chore: 패키지 매니저 설정할 경우, 코드 수정 없이 설정을 변경
docs: documentation 변경
feat: 새로운 기능
fix: 버그 수정
perf: 성능 개선
refactor: 버그를 수정하거나 기능을 추가하지 않는 코드 변경, 리팩토링
style: 코드 의미에 영향을 주지 않는 변경사항 ( white space, formatting, colons )
test: 누락된 테스트 추가 또는 기존 테스트 수정
revert: 작업 되돌리기
[commit message example]
feat: 유저 전체 조회 기능 추가
[commit message example]
fix!: update시 파라미터 수정
BREAKING CHANGE: deviceId 변수는 더 이상 사용되지 않습니다.