20230803 (목)
1. 수업 목표
- 깃을 통한 버전관리의 이해
- 깃허브를 활용한 프로젝트의 백업과 배포
- 깃허브 소개 사이트 제작
- 깃이란? : 프로그램 코드를 보관하고 관리하는 곳.
2. 교육내용
- 깃과 소스트리의 활용
- 깃 버전 관리, 브랜치 이해
- 깃허브 가입과 협업
- 명령어 기반의 깃/깃허브
- 깃허브 Readme.md
3. 점심시간 : 11시 50분 ~ 1시 10분
4. 종료 : 17시 51분
5. 강의 대상 : 깃/깃허브를 처음 만나는 수강생, 혼자 하려다가 포기한 수강생.
이미 잘 쓰고 있는.. 친구들은 총정리하는 시간을 갖자. -> 다른 사람들에게 알려줄 수 있음.
아는 친구들은 많은데 아마 조용히 있는것일거임.. ㅇㅇ
6. 미니특강 :
- 자격증 관련 (취업/이직) : 중소기업 이직률 60%, 대기업 이직률 30%
- 리눅스 명령어
- 모든 스포츠 선수의 공통된 필수 역량? 체력!
- IT 전문가의 공통 필수 역량? 코딩실력!
- IT 전문가를 목표 : <도메인 지식> + 코딩 실력 + 4차산업기술(데이터, 인공지능, 클라우드, 자율주행...)
<도메인 지식> 이란?
예를 들어서 내가 '빵' 전공일때,
빵에 비젼이 없는 것 같을 때, 제과쪽으로 가고싶을때!
이럴때 내가 알고있는 빵 지식을 잘 살리면 더 그 분야에 가치가 있는 사람이 됨.
(취업을 SPC, 롯데, 해태 등.. 대기업으로~~~)
- 코딩? 어렵다! 다행이다 :) -> 존버만이 답!!! -> 5년 (준전문가) -> 10년 (전문가)
내 경력을 살려보자.
IT회사에서 "코딩잘하는거 소용없다"라고 말한다면, 그건 사람을 키울 생각이 없는 것이다. -> 잡일이나 시키려고 하는것..
- 코딩 전문가 : 소스코드 (많이) -> 깃
http://cafe.naver.com/githubStudy -> 자료실 -> 강의문서(1.3)
** 소프트웨어 라이센스 **
- 오픈 소스(OpenSource) : 앱도 무료, 소스코드 공개, 완전 무료!
자유(Free) --> 사용의 자유, 배포의 자유, 수정의 자유, 판매의 자유
- 프리웨어(Freeware) : 개발한 앱을 무료로 사용하도록! 소스코드는 안줌!
- 쉐어웨어(Shareware) : 주로 앱을 일정기간 동안만 무료. 시간이 지나면 지우거나, 돈을 지불...
- 평가판 : 앱을 일정기간 동안만 무료. 기간 지나면 사용 못함.
- 상용 소프트웨어 : 비용을 주고 구매하기. 그냥 복사하면 불법. Windows, Office, HWP ...
빠르게 깃/깃허브를 학습하는 순서
- 깃의 개요 및 버전 관리 개념 -> GUI 기반의 깃/깃허브 사용법 -> 유닉스/리눅스 또는 커맨드 환경에서 깃/깃허브 사용법
버전과 버전관리
- 깃을 왜 배울까? : 깃이 없는 세상
- 깃이 없다면?
- 변경 내역 확인이 어렵다.
- 작업을 되돌리기 어렵다.
- 협력하기 어렵다.
- 우리, 변경사항을 조금 더 일목요연하게 관리해보자 = 우리, 버전을 조금 더 일목요연하게 관리해보자!
- 변경사항 = 버전
- 버전과 버전관리
- 버전 관리를 위한 도구, git
- 버전? : 유의미한 변화가 결과물로 나온 것
- 프로그램 개발 == 유의미한 변화를 쌓아 프로그램을 만들어 나가는 것.
- 버전 관리?
- 변경 내역들을 기억하며
- 필요하다면 작업을 되돌리며
- 여러 명의 코드를 쉽게 나누고 합치며 개발하는 것.
- 깃
- 깃은 좋은 툴이지만, 명령어가 어려워 관리가 어렵다.
- 소스 트리
- 깃은 버전을 관리하기 위한 도구, 소스트리는 그런 깃을 편하게 쓸 수 있게 하는 도구.
- 깃허브
- 원격 저장소 호스팅 서비스
- 원격 깃으로 관리한 프로젝트 호스팅 서비스
- 인터넷 상에서 깃으로 관리한 프로젝트를 관리해주는 서비스
- 2008년애 시작한 대표적인 무료 Git 저장소
- 2018년에 MS가 인수
- SourceForge와 경쟁 구도
- 마스코트는 고양이+문어 => 옥토캣
- 공개 프로젝트는 무료, 비공개는 유료 => 현재는 모두 무료
- 코드 공개를 꺼리는 기업을 위해 Github Enterprise 패키지 제공
- 유사 서비스로 Bitbuker, GitLab, Gitee(중국) 등이 있음.
- 클라우드 서비스, 개발자의 인스타그램 (SNS, 자랑질하는 사이트?)
.git : 깃에서 관리하는 저장소
- 깃 버전 관리
- 작업 디렉터리의 모든 변경을 새로운 버전에 반영해야 할까? - No.
- 다음 버전에 포함시키기 싫은 변경도 있다. (예 - 임시 작업 파일 등..)
- 작업 디렉터리 : 코딩한 파일들이 들어있는 폴더
- 스테이지 : 스테이지가 내가 관리할 파일들을 넣는 장소.
- 저장소 : 스테이지에 있는 것을 저장소로 확장. (.git 폴더)
- 작업 디렉터리의 내용을 스테이지에 올리는 것을 add라고 함.
- 하나의 버전이 만들어지는 과정
- 작업 디렉터리 내에서 변경사항 생성 : 일반적인 코딩 작업
- 스테이지로 add
- 저장소로 commit
- 폴더(=디렉터리) 경로 구분은 Windows ₩ ==> ₩₩, Linux /
- 깃 버전 관리 4
- 커밋 메세지를 작성한 후에 커밋.
- 커밋 메세지 -> 버전에 대한 설명 (버전에 붙이는 메모)
- 커밋ID? : 커밋의 유일한 번호..!
- 태그추가 : 중요한 커밋에 붙일 수 있음.
- 태그를 남용하면 안되고, 진짜 중요한 부분에만 붙이는게 좋음.
- 퀴즈
- 개발자는 오십견, 목디스크 걸리니까 조심해라..
- 프로그램 개발환경 샘플 구축(파이썬)
- 버전 비교
- 서로 다른 커밋을 비교하는 것
- 커밋은 매일 한번씩 하는 것이 좋다.
- 버전 되돌리는 것은 hard를 쓰는것이 더 관리에 용이하다.