- 목차
1. 프로젝트의 의미?
2. README는 무엇일까?
3. Git vs Github?
4. version 관리가 그렇게 중요할까?
흔히 개발을 하는 사람들은 어떠한 서비스를 만들 때 "프로젝트를 시작한다.", "프로젝트 진행중이다." 라는 식의 이야기를 하는데요.
개발존에서 그토록 이야기하는 프로젝트는 어떤 뜻일까요?
프로젝트란?
: 하나의 프로그램(시스템)을 만들기 위한 일련의 프로세스
라고 말할 수 있을 것 같습니다.
좀 더 구체적으로 말해본다면?
프로젝트의 구체적 의미?
소스코드 구현뿐만 아니라, 어떤 프로그램을 만들기 위한,
1) 기획
2) 설계
3) 테스트
4) 배포
라는 과정을 포함하는 것을 프로젝트라고 말할 수 있을 것 같습니다.
프로젝트의 예시를 생각해본다면, 계산기 프로그램, 노션, 카카오톡, 네이버까지.. 광범위하게 이를 수 있습니다!
프로젝트를 할 때에는 혼자 할 수도 있지만, 여러 분야의 일들을 담당하는 사람들과 함께 할 수도 있겠죠, 이를 협업이라고 말합니다.
협업할 때에는 코드 공유, 문서 공유, 진행률(진행 척도) 공유, 담당자가 누구인지? 공유 등의 일들을 하게 되겠지요? 결국은 [협업 = 공유] 라고 보아도 과언이 아닐 겁니다. : 3
리드미의 뜻에 대해 알아봅시다.
깃허브를 처음 들어가면 README라는 말이 써 있는 페이지를 볼 수 있습니다. 그 밖의 다양한 개발 관련 문서에서도 README라는 말을 볼 수 있죠. 어떤 뜻인지 알아봅시다!
리드미는 크게 두 가지 역할을 하고 있는 문서 입니다.
(1) 완성된 프로그램의 설명서
- 프로그램 사용 방법
- 레퍼런스
(2) 구현 중인 프로젝트의 현황
- 구현된 주요 기능
- 구현 현황
- 코드가 해결해야 하는 문제 등
을 설명하는 것!
ReadME 작성법 : 'Markdown' 을 이용합니다!
section1. 특별한 리드미 파일?
section2. markdown이 무엇인가요?
section3. 그럼 markdown의 주요 목적은 무엇인가요?
section4. markdown을 쓸 줄 알면 많이 도움이 되나요?
section5. 그 중에서도... 깃허브 markdown
Markdown이라는 걸 이용한 리드미 파일은 특별해 보입니다..
사실은?
-> 특별한 파일은 아닙니다!
-> 그냥 확장자만 .md인 파일(markdown)일 뿐이랍니다.
[확장자 종류]
.txt : 텍스트 파일
.jpg : 그림 파일
.mov : 동영상 파일
-> Readme.txt
그니까 그냥 텍스트파일로 써도 되는 것이지요.
-> Readme.md
얘는 markdown의 확장자를 가진 readme 파일입니다.
그럼 markdown(마크다운)은 무엇일까요?
개발자가 아닌 일반 사용자들도 웹에서 쉽고 예쁘게, 가독성 좋게 만들어주는 기술, 일반 텍스트를 웹 기술로 바꿔주는 하나의 도구.
(웹 개발을 몰라도 일반 유저들이 웹에서 글을 가독성있게 쓸 수 있도록 만들어놓은 도구_텍스트를 웹 전용 텍스트로 만드는 도구)
그럼 마크다운이 없었다면?
-> 그냥 맑은고딕체로 딱딱한 텍스트로만 이뤄진 웹을 보게 되었겠죠?
-> markdown의 주목적
1. 읽기 쉽게
2. 쓰기 쉽게
하는 것이 주 목적입니다!
-> markdown의 사용처?
위키백과, 티스토리, 노션, 슬랙...
-> 그 중에서도.. 깃허브 markdown
markdown을 일부 변형한
깃허브-flavored markdown
chap3. 리드미 작성법(실습)
개행은 역슬래쉬
애웅 -> 코드작성!
공백 4칸 이상 띄워서 쓰면 된다.
인용문!
우엥
뇨
사실 강조의 의미로 리드미에서 사용함
알아야 하는 마크다운은 깃허브에서 쓰는 마크다운
좀 더 개발자 지향적인 마크다운 서비스
같은 문법으로 디스코드 사용중 !
디스코드에서 사용하는 마크다운은 깃허브에서 쓰는 마크다운과 같음
Part 2, chap4(2). 깃 처음 만나기
chap5(3). 버전 관리
목차
section1. 버젼이란?
section2. 버젼 관리의 중요성
section3. 버전 관리 시스템의 종류
버전이란?
-> 버전은 유의미한 수정을 말합니다.
(개선에 가까움)
<기존>
abc
<수정>
abcd <-는 되어야 의미가 있다!
abc <- 띄어쓰기 하나는 의미 없어..
버전의 추가?
1.0 > 1.1 > 1.2 > ... > 2.0
뭐가 맞을까?
굳이 따지면 1.0과 2.0이 메인버전이지만,
1.1 1.2같은 경우 서브버전이다.
서브버전의 경우 더 쪼개진 작은 버전이라고 생각하면 됨
chap6. 버전 관리의 중요성
안정성을 보완해주는 그런 ?
그래서 우리는 버전 관리 시스템을 씁니다.
version control system
개발에만 쓸 필요 없고 문서작업 할 때도 쓸 수 있음
버전 관리 시스템의 종류(version system)
1. 로컬 vcs -> 혼자하던걸 시스템 설치해서 내 컴퓨터에서만 하는거(백업, 버전관리 등등 할 수 있지만 협업은 못함) -> 버전 관리를 깔끔하게 하려고 그냥 하는거...
대표적인 시스템으로는 svn, cvs 등이 있음
중앙집중식 vcs는 파일에서 같은 부분이 다른 컴퓨터에서 수정이 될 경우 충돌이 날 수 있음
분산vcs에서는 중앙컴퓨터 관점에서 관리포인트가줄어든 것이라고 볼 수 있는 것.
대표적인 시스템 : git, mecurial, bazaar
우리는 분산 vcs를 쓰겠죠!