이런 걸
배워요!
Git 내부 동작
시스템 프로그래밍
git checkout
, git commit
명령어를 Git에 입력하면 Git 내부에 어떤 동작을 하는지 설명할 수 있나요? 이 강의는 Git의 주요한 동작들이 내부적으로 어떤 알고리즘을 어떻게 파일 시스템에서 수행하고 있는지 학습하고, 자신에게 익숙한 언어로 Git을 따라한 "Tig"를 만들어보는 강의입니다.
Q. 강의는 Go 언어로 진행한다는데, Go를 알아야 하나요?
A. 강의에서 다른 언어와 매칭되는 기본적인 제어와 반복 구문, 할당, 자료형 등을 설명합니다. Go는 문법이 아주 단순한 언어입니다. 시스템 프로그래밍을 위한 패키지도 굉장히 직관적이구요. 따라서 각자의 언어로 강의를 따라오기에 문제가 없을 거에요.
Q. 시스템 프로그래밍을 할 줄 알아야 하나요?
A. 강의에서 기본적인 시스템 프로그래밍을 가르쳐 드립니다. 강의 실습으로 사용하는 시스템 프로그래밍은 복잡하지 않아요. 파일을 만들고, 파일에 쓰고, 파일을 읽는 기본적인 시스템 프로그래밍입니다. 하지만 각자 실습 언어로 이를 어떻게 하는지는 찾아보셔야 합니다.
Q. Git 명령어 강의가 포함되어 있나요?
A. 강의 중 Git 명령어를 설명하긴 하지만 Git을 처음 보는 사람에게 설명하는 정도로 자세히 하지는 않습니다. 이 강의를 수강하려면 Git사용 경험이 필요합니다.
학습 대상은
누구일까요?
Git의 내부 동작이 궁금한 사람
Deep Dive를 통해 매력적인 개발자가 되고 싶은 사람
세계적인 오픈 소스 하나를 깊게 공부해보고 싶은 사람
선수 지식,
필요할까요?
자신있는 프로그래밍 언어 하나
안녕하세요. 저는 Jayce입니다. 현재 유니콘 스타트업의 플랫폼 엔지니어로 일하고 있습니다.
저는 창업도 하고 대규모 서비스를 위한 개발도 하고 개발자를 위한 플랫폼을 만들기도 하면서 짧은 시간 동안 서비스 개발자라고 불리는 역할도 수행해보고 플랫폼 엔지니어라고 불리는 역할도 수행했습니다. 그 과정에서 "잘하는 Software Engineer는 어떤 특징이 있고 어떻게 해야 그런 사람이 될 수 있구나"를 나름대로 정립할 수 있었습니다.
저는 짧게 말해서 Deep Dive 하는 사람들을 함께 일하는 엔지니어로서 매력적이라고 느낍니다. 단순히 주어진 일을 기계처럼 쳐내는 사람은 어떤 상황에 대한 최선의 선택을 내리기까지 비교적 오랜 시간이 걸리는 것 같아요. 반면 왜 이런 결정을 해야하는지 기술 내면의 공학적인 이유를 파고들며 이해하는 사람들은 금방 다른 의사 결정에서도 공학적으로 설득력 강한 주장을 할 수 있는 사람이 됩니다.
제가 만드는 강의는 새로운 기술을 얕게 익히는 것을 목표로 하지 않습니다. 저는 주니어 개발자들이 훌륭한 팀 동료, 매력적인 개발자, 단단한 기술자가 될 수 있는 방법을 알려주고 싶습니다. 더욱 매력있는 엔지니어가 되기 위해 조금 더 깊은 내용을 공부해보고 싶은 사람들에게 적합한 강의를 제 최선의 노력으로 만들어보겠습니다. 🙂
전체
35개 ∙ (6시간 38분)
가 제공되는 강의입니다.
00. Intro
04:15
git init: spec
19:10
Objects
01:48
Objects: Blob
06:54
HashObject: Spec
12:51
HashObject: Implment
13:43
CatFile: Spec
08:28
CatFile: Implement
15:16
Objects: Tree
05:25
UpdateIndex: Spec
27:01
WriteTree: Spec
19:53
WriteTree: Implement
33:46
LSTree: Spec
17:06
LSTree: Implement
13:30
Objects: Commit
03:12
CommitTree: Spec
13:07
References
03:09
UpdateRef: Spec
08:35
UpdateRef: Implement
03:20
SybolicRef: Spec
20:29
Objects: Tag
05:18
Tag: Implement
28:06