생활코딩 지옥에서 온 Git - 수업소개 > Git

Git

분산버전관리 시스템 깃(Git) 강좌 공유

생활코딩 | 지옥에서 온 Git - 수업소개

본문

※ 영상을 선명하게 보기 안내
  1. 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
  2. 팝업목록에서 "품질" 선택하세요.
  3. 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
생활코딩님의 Git강의 청각장애인을 위한 자막
15610164223644.jpg

 



예전부터 킷 수업을 시작하겠습니다
자기 시라고 하는 것은 버전 관리 시스템이라는 블루 에 속하는
구체적인 프로그램 중에 하나입니다
그리고 이 버전 관리 시스템 이 무엇인가 라고 하는 것을 여러분들이 먼저
이 하셔야 되는데
자신의 여러분들은 지금까지 이미 버전 관리를 해오고 있었습니다
낯선 것이 아니라는 것이죠 예를 들면 여러분이 어떤 파일을 만들었는데 그
파일이
어 옛날 상태로 돌아갈 가능성도 있고 또 옛날 상태는 옛날 상태대로 또
보관해야 되는 경우가 있을 수가 있잖아요
자 그런 경우에 우리는 절 리포트 점 xls 라는 파일 뒤에다가
와이너리 라는 걸 부칠 때가 있죠 예 그리고 이게 또 다시 수정이 되게
되면 저 파일 뒤에다가
역시나 리얼 파이널 예 리얼 리얼 파이널 이런식으로 우리가 파일의 이름을
이 바꿔가면서 그저 파일에 담겨 있는 내용을 여러 개의 버전으로 보관하는
행위 를 이미 하고 있었다는 겁니다
자 그렇다면 버전 컨트롤 시스템 이라고 하는 것은 도대체 무엇인가요
버전 컨트롤 시스템은 버전 관리 시스템은 여러 가지 의 어떤 역할과
의미를 가지고 있기 때문에
이거 한번에 이야기는 쉽지 않습니다 그중에서 이제 여러분들이 딱 그
여러가지의 그 다면 썽 중에서
그냥 꼭지만 딱 기억하셔서 쓰면 좋겠다 라고 하는 부분은 여러분이
지금까지 방금 보셨던 것처럼 파일의 이름을 여러가지로 바꿔 왔다면
예 파일의 이름을 더럽히지 않는 버전 관리를 할 수 있다는 겁니다
이제 파일의 이름을 언제나 리포트 점 xls 라고 하고 파일의 내용이
바뀌는 그 변경 사항들은 컴퓨터 관리를 하게 한다 라는 것이죠
자 그리고 요 것과 함께 추가적으로
예 파일의 이름을 관리하는 것 외에도 파일의 이름을 바꾸지 않고도
버전은 관리하는 것 외에도 이러한 가치를 제공합니다
첫번째는 여러분의 소중한 소스코드를 백업해서
엄한 약의 사태에 대비할 수 있구요
그리고 여러분이 만든 코드를 이전 상태로 쉽게 돌아갈 수 있게 하는 것
예 그리고 다른 사람과 협업할 수 있게 하는 것이 버전 관리 시스템이
제공하는 어떤 효용의 저는 3가지 요소라고 생각합니다
그리고 이제 버전 컨트롤 시스템 이라고 하는 것은 어떤 제품명이 아니고
그 제품에는 여러가지 그 구체적인 제품 들이 존재합니다
예 그 중에서 cvs svn d 이러한 것들아 유명한 이 버전 컨트롤
시스템 인데요
자 이 중에서 이제 cvs 는 아주 예전에 유행했던 많이 사용되었던 버전
컨트롤 시스템이 구요
그 다음에 이제 그 바통을 이어받은
2 아주 많이 사용했던 그리고 현재도 많이 사용하고 있는 이 버전 컨트롤
시스템이 svn 입니다
그리고 오늘날 4
가장 많은 사람들이 사용하고 있고
개발자라면 어 지금 당장은 아니라도 언젠가는 꼭 배워야 될 버전 컨트롤
시스템이 바로 키입니다
대중의 우리 수업은 기세 대한 수업이 줘
그래서 이제 이렇게 버전 컨트롤 시스템들이 여러가지 것들이 꼭 나름대로의
개 보 가 존재하는데
전 이중에서 본질적인 요소가 있고 혁신 적인 요소가 있다고 생각합니다
본질적인 요소는 이 보전 컨트롤 시스템 전체를 관통하는 공통점이 이뇨 속
즉 변경사항을 관리 한다 라고 하는 측면 1 것이구요
그리고 혁신적인 요소는 cvs 라고 하는 버전 컨트롤 시스템이 이미
있었는데
svn 이 그 아성을 무너뜨릴 수 있었다 샀죠
svn 의 아성이 있었는데 그 어떤 권위를
2기 시 뛰어넘을 수 있었던 차이 점
바로 그 차이점에 해당되는 것이 저는 혁신 이라고 생각합니다
본질이 있고 혁신이 있는데 혁신은 나중에 일단은 본질 부터 살펴보는 게
우리 수업의 순서가 될 겁니다 왜냐하면 본질은
보편적이고 쉽습니다
하지만 이제 혁신적인 요소는 아주 편리하지만 어려워요
그리고 어떤 경우에는 필요 없는 경우가 많습니다
아무튼 그런 순서로 우리 수업을 진행 할 거구요
어쨌든 간에 지금부터 이제 기세에 대해서 우리가 공부를 하게 될 것인데
그 전에 이제 여러분들이 아셔야 될 것이 않았습니다 왜냐하면
2기 시라고 하는 버전 컨트롤 시스템은
믿어지지 않을 만큼 어렵습니다
그 이유는 여러가지가 있겠지만 아까 보셨던 그 역사적인 개 보라고 한
측면에서 봤을 때도
버전 컨트롤 시스템이 처음부터 어렵고 복잡해 쓸리는 없어요 그러면 아무도
안 썼죠
예 하지만 이제 이 혁신에 혁신을 거듭하면서 기니 더 퍼지고 보태지 고
하는 과정에서
이제 점점 어려워져서 오늘 날은 굉장히 어려워 진 상태 까지 오게 된
것이죠
바로 이것이 기술 처음 사용하시는 분들의 고충이 라고 저는 생각합니다
그래서 현실적으로 봤을 때 여러분이 아직 프로그래밍의 익숙하지 않거나
또는
여러분이 이제 하고 있는 일이 그렇게 복잡한 일이 아니라면 이 기술
배우겠다 라는 생각에서 버전 관리를 미루지 마시고
어 집보다 훨씬 더 쉽고 일반인들도 사용하는 버전 컨트롤 시스템이 있는데
이를테면 드랍박스 나 구글 드라이브 같은 겁니다
이런 것들을 이용해서 일단은 여러분의 소스코드를 백업하기 고 또 변경
사람들을 관리하고
다른 사람과 그 파일을 공유한 일을 먼저 하시라는 거죠
특히 중에서 이제 드랍박스 같은 경우는 제가 알기로는 이 사업계획서의
이렇게 적혀 있었습니다
개발자들이 사용하는 서브버전 이나 킷과 같은 것을
일반인도 사용할 수 있게 하겠다
바로 그것이 어 이 스토리지 클라우드 라는 이 카테고리에 해당되는 제품의
그 원조 격으로 얘기하는 드랍박스 의사 업계 역사였습니다
즉 드랍박스 나 구글 드라이브도 사실은 버전관리 시스템 이라고 하는
측면을 가지고 있다는 것이죠 그걸 또 재미있는 것은 이 정보기술의 서
일어나는 여러가지 혁신 들이 이미 개발자 의 커뮤니티에서
5 검증이 된 아 이런건 정말 필요하다 라고 하는 것을
일반인이 일반인도 쉽게 사용할 수 있도록 해서 만들어진 것이 상당히 많다
라는 것이죠
아무튼
버전 관리를 기술 배우겠다 라고 하는 것은 천천히 하시고
만약에 지금 소스코드를 여러분이
버전 컨트롤 하고 있지 않다면 이런 거라도 꼭 쓰시 라는 겁니다 아셨죠
자 그렇다면 왜 깃이 이렇게 어려움과 에 대해서 우리가 생각해 볼 필요가
있습니다
왜냐하면 사람들은 어려운 거 어려운 거 당연히 쓰지 않고 싫어하기
때문이죠 그럼에도 불구하고
개발자들이 이렇게 광범위하게 깃을 사용하는 이유는 도대체 무엇인가 라는
겁니다
왜냐하면 우리의 혈 7을
뒤 보다 훨씬 더 지옥 같기 때문입니다
자 얘기 한번 해보죠 자 이게 여러분의 코드입니다
그리고 이 코드의
이 원의 크기는 그 코드의 복잡성이 에 예
자 우리가 프로그래밍을 처음 시작하면 이하늬 아니면 아직 기술적으로 많은
경험을 쌓지 않았거나 해결할 문제가 별 게 아니라면 코드는 복잡하지
않습니다
하지만 깃을 배우는 것
키스 사용하는 것은 이렇게 복잡해
그렇다면
복잡하지 않은 코드에 다가 여러분이 복잡한 기술을 적용하게 되면 어떤
결과가 나온다면 여러분의 포장 트는
이렇게 복잡해 집니다 즉 깃이 라고 하는 것이 여러분에게 도움을 준다 이
못하는
예 오히려 방해를 할 수 있다는 것이죠
물론 이미 깃이 익숙한 사람들 에게는 당연히 간단한 코드 라도 깃으로
관리하는게 당연히 좋습니다만
제가 얘기하는 것은 학습의 어려움 을 얘기하는 겁니다
반대로
여러분이 작성하고 있는 코드가 이렇게 거대하게 복잡해요
여러분의 x 같은 경우는 1500만 조정도 된다고 하더라구요
이렇게 복잡한 코드를 가지고 있는 상태 있다 라고 하면 이 코드의
복잡성은 어마어마 하기 때문에 거기에 비하면 기세 복잡성은 이것 밖에
되지 않습니다
자 이러한 상황에서 우리가 기술 도입하면 프로젝트의 복잡도가 이렇게
낮아질 수 있다는 것이죠
즉 기술 공부하는 것이 아무리 어렵다고 하더라도
현실의 복잡성은 것보다 훨씬 더 지옥 같기 때문에 이런 경우라고 한다면
킷은 배울 만 하고 도입할 만 한 것이죠
그런데 그렇지 않은 상황이라고 하면 계신 여러분들 구원해 주는 도구가
아니라 여러분의 힘들게 하는 도구가 되는 것이죠
그래서 어 제가 생각하기에 중요한 것은
기술을 배워야 된다 이런 당위성 같은 것들은 의미가 없습니다
자신이 어떤 상황이 냐에 따라서 여러분에게는 드랍박스 나 구글 드라이브가
적당할 수도 있고 또는
깃이 적당할 수도 있어요 그래서 이 자신이 어떤 상황이 냐에 따라서
현명하게
적정한 수단을 선택하는 그런 지혜를 갖는 것이 중요한 것이 아닐까 하는
생각이 됩니다
자 제가 추천드리는 어떤 학습의 순서는 이렇습니다
일단 드랍박스 같은거 를 쓰세요 빨리 적용 하시고 그 다음에
어제 수업을 초 반만 살짝 보세요
좀 반만 보시다가 재미없어진 은 지점 부터는 여러분한테 필요 없는 얘기
라는 뜻입니다
그러면 이 뇌를 더 이상 괴롭히지 마시고
거기서 수업 딱 놓고 그리고 어프 로 젝 트 하시는걸 추천드립니다
그리고 그렇게 프로젝트를 진행하다 보면 프로젝트가 점점 점점 복잡해져서
이제 드랍박스 나 이러한 도구 만으로는 그 복잡성을 해결하는 것에 한계가
오게 될 겁니다 그러면 그 때에 여러분은
아기 시라고 하는 것을 쓰면 이 복잡한 상황에서 나에게 도움을 줄 수
있겠다 라는 것을 알고 계시면 여러분은 그 때 기술 공부하는 것이 가장
좋은 카이 밍이 겁니다
그렇기 때문에 우리가 지금 당장 공부를 하건 하지 않건 간에 그것이
무엇인지를 아는 것은 굉장히 중요한 겁니다 그것이 무엇인지를 알고 있으면
그것이 정말로 필요할 때 우리는 미래에 언젠가 것을 배우게 될겁니다
그렇기 때문에 뭐가 뭔지를 아는 것은
저는 그것을 이미 알고 있는 것과 다름없다고 생각합니다
반대로 깃이 무엇인지
버전 컨트롤 시스템이 무엇인지 자체를 알지 못하면 자기가 어떤 문제가
있어도 그 문제의 원인을 모르기 때문에 그 문제는 시간이 해결해 주지
않는 것이죠
그러니까 이 수업을 어떻게 공부할 것인가 는
여러분에게 달려 있습니다 잘 생각하셔서 수업을 따라 오시길 바랍니다

댓글 0개

등록된 댓글이 없습니다.

본 사이트의 컨텐츠는 명시적으로 공유기능을 제공하고 있는 공개된 자료를 수집하여 게시하고 있습니다.

저작권, 강의등록, 광고, 제휴등은 "관리자에게 문의"로 메세지 주시면 확인후 답변드립니다.

Menu