초등학생에게 Git을 설명해본다면? (Git 1편)

Eddy·2022년 2월 24일
58

1 Concepts in 3 Levels

목록 보기
1/4
post-thumbnail

1 Concept in 3 Levels
Git의 기초 개념을 각각 초등학생, 대학생, 개발자의 눈높이에 맞춰서 설명해보자.

Git이라는 버전 관리 시스템은 개발자라면 반드시 배워야 합니다.
하지만 한번에 다 소화하기엔 복잡하고 어렵죠.

하지만 초등학생도 이해할 수 있게 단순화시킨 설명을 들어보고,
대학생, 개발자로 차츰 더 수준을 높여간다면 훨씬 더 이해가 쉽지 않을까요?


설명할 개념

  • 버전 관리란?
  • 중앙 버전 관리와 분산 버전 관리
  • Git의 Stage와 Commit
  • Git은 차이점이 아닌 스냅샷을 저장

👦 초등학생에게 설명하기

버전 관리 시스템이란?

🧑‍🏫 Git이라고 들어본 적 있어?

👦 깃이요..? 깃발?

🧑‍🏫 깃발은 아니고... Git이 뭐냐면, 프로그래머들이 버전 관리를 할 때 쓰는 프로그램이야.

👦 버전 관리가 뭔데요?

🧑‍🏫 학교에서 너한테 미술 숙제를 내줬다고 생각해보자.

엄청 큰 종이를 주고, 여기다 ‘너가 살고 싶은 마을’ 뭐 이런 걸 그리라고 했어.

겨울방학 동안 만들어가지고 개학하면 내야하는 거야.

(출처: 엘리 블로그)

👦 왜 숙제 얘기를 해요 갑자기. 킹받네.

🧑‍🏫 (...) 그냥 생각만 해보는 거야.
근데 문제는 이걸 너가 방학 내내 그릴 건데. 이걸 그리는 과정을 기록을 해두고 싶은 거야.

그럼 어떻게 해야할까?

👦 기록? 그냥 내면 되는 거 아닌가. -ㅅ- 사진이나 영상 같은 거 찍어두면 되겠죠.

🧑‍🏫 그치. 그림 그린 걸 중간에 사진으로 찍으면 되겠지?

사진에다가 이름이랑 날짜를 같이 쓴 다음에 앨범에 넣어두는 거야.
나중에 쭉 보고, 너 그림이 어떻게 계속 발전했는지 알 수 있잖아.

👦 그렇죠.

🧑‍🏫 이게 아주 기초적인 버전 관리 시스템이야.
너가 만들어낸 중간 과정을 기록하는 거지.

🧑‍🏫 사실 이 정도면 되게 간단한데, 만약에 숙제를 친구랑 같이 해야한다면 어떨까?

👦 킹받죠.

🧑‍🏫 아니 그게 아니라...;;

🧑‍🏫 하나의 큰 종이에 너랑 민수랑 지수랑 같이 그려야 되는 거야.
서로가 그린 그림이 모여서 하나의 그림이 되도록.

👦 같이 모여서 그리면 되죠.

🧑‍🏫 근데 요즘 코로나 시국이잖아. 그래서 같이 그릴 수가 없어. 그리고 방학 숙제를 하는 시간도 다 다르단 말이야.
너 방학 숙제하면 언제 하니?

👦 개학 전 주에 몰아서 해요.

🧑‍🏫 그럴 줄 알았어. 근데 같은 조 지수는 성실해가지고 매일매일 해야한단 말이야.

👦 그런 애가 있어요...? 그러면 어떻게 해요.

🧑‍🏫 이 때 버전 관리 시스템을 사용하는 거지.
각자 집에서 그림을 그리면서 그걸 매일매일 사진으로 찍는 거야. 사진을 서로서로 공유해.
그러면 모두가 전체 그림 진행 상황을 알 수 있겠지?

🧑‍🏫 버전 관리 시스템을 쓰는 이유는 기록도 있지만,
이렇게 공유를 하고 같이 숙제를 할 수 있다는 점이 커.

👦 오...

중앙 버전 관리와 분산 버전 관리

🧑‍🏫 근데 여기서도 2가지 방식이 있어.

한 명을 조장으로 정하는 거야.

조장 집에다가 사진 보관하는 앨범을 만들어둔 다음에,
각자 중간중간 사진을 찍으면 바로 조장 집에다가 갖다둘거야.

그러면 이제 조장 집에 있는 사진 앨범만 보면 전체 그림이 계속 보이겠지?

👦 아 그림을 합쳐야 되니까 누구 한명 사진을 다 모을 사람을 정하는 거네요.

🧑‍🏫 그치. 이걸 중앙 버전 관리라고 해. 사진 보관함이 하나인 거야.

🧑‍🏫 근데 이게 은근 불편한 점이 많아.

일단 매번 사진을 조장한테 보내주는 게 귀찮잖아.
내가 여태까지 했던 기록을 볼려면 조장이 또 내 그림 사진들을 보내줘야 해.

🧑‍🏫 또 다른 방식은 사진 보관 앨범을 조장 집에만 두는 게 아니라, 모든 사람 집에다가 다 두는 거야.

👦 그럼 저도 앨범이 있는 거에요?

🧑‍🏫 그렇지. 너는 너 집에 있는 앨범에다가 계속 사진을 찍어서 보관해.
하지만 서로 기록을 맞춰야 하니까, 한번씩 조장네 집에 들러서 서로 앨범을 업 데이트하는 거야.

🧑‍🏫 너가 없는 사진은 조장네 집에 가서 복사해오고,
조장네 집에 없는 사진은 너가 복사해올 거야.
이렇게 하면 모든 친구들이 자기 집에서 전체 기록을 볼 수 있게 되지.
앨범을 다 나눠가졌다고 해서 '분산' 버전 관리라고 해.

👦 아싸, 나도 앨범 생겼다.

🧑‍🏫 프로그래머들은 이런 상황이 되게 많아.
보통 프로그램 하나에 여러명의 프로그래머들이 쓴 코드가 들어가거든.
한 종이에 다같이 그림을 그려야 되는 거지.

그래서 요즘은 다 앨범을 나눠가지는 방식이야.

🧑‍🏫 이렇게 각자 앨범에 사진을 찍어서 기록해두고,
그걸 서로서로 동기화하는 분산 버전 관리 시스템을 쓴다는 말이지.

그 중에 가장 유명한 게 뭐다?
바로 git이다!

Git에서 버전 기록하기

👦 오... git을 어떻게 쓰는데요?

🧑‍🏫 컴퓨터에 보면 폴더 안에 파일들이 있지?
git을 시작하면 어떤 폴더 안에 들어있는 파일 전체의 사진을 찍어줘.
폴더나 파일 안에 내용 같은 게 캡쳐가 되는 거야.

👦 캡쳐 알죠. 게임하다가 캡쳐하잖아요.

🧑‍🏫 그지. 근데 캡쳐를 할 때 캡쳐 범위를 선택할 수가 있어.

프로그램 안에 ‘무대(Stage)’라는 게 있거든?
여기다가 캡쳐할 파일들을 먼저 추가하고, 캡쳐를 누르면 ‘무대’ 위에 있는 파일들만 찍히게 돼.

👦 무대에 올라간 인싸들만 사진을 찍어주는 거네요. 아싸들은 무대 밑에 있는 거고.

🧑‍🏫 아니;; 아싸라서 그런게 아니고... 굳이 기록 안하고 싶은 파일이 있을 수도 있으니까.

🧑‍🏫 이렇게 캡쳐를 여러번 했을 거 아니야?
이전에 캡쳐를 했는데 내용이 바뀐 게 없는 애들은 ‘이전에 찍은 캡쳐에 있음’ 이렇게 표시를 해줘.

계속 똑같은 내용이 캡쳐되면 낭비니까.
이전에 캡쳐를 한번도 안했거나, 내용이 바뀐 게 있는 파일들만
캡쳐를 해서 사진으로 저장을 하는 거지.

👦 어디에 저장을 하는데요?

🧑‍🏫 git으로 사진을 찍으면 .git이라는 폴더에 알아서 자동으로 저장돼.

이 폴더가 앨범 역할을 하는 거야. ‘이 사진은 저 사진 뒤에 오는 사진이다’ ‘찍은 사람은 누구다' ‘이런 내용이다' 설명을 붙여서 저장해 놓지.

근데 .git 폴더는 숨김 폴더라서 그냥 컴퓨터에서는 안보여.

👦 아 숨김 폴더 알죠 ㅎㅎ

🧑‍🏫 너가 숨김 폴더를 어떻게 알아? 뭘 숨겨본 거야?

👦 (...)

👦 이제 git이 뭔지 알았어요!

근데 아까 사진을 찍어가지고 여러명이서 공유한다면서요.
그건 어떻게 하는 거에요?

🧑‍🏫 그건 일단 가지치기랑 합치기를 알고나서 해야하는데,
다음에 자세히 알아보도록 하자.

관련 링크

🔗 초등학생에게 Git을 설명해본다면? (Git 1편)
🔗 대학생에게 Git을 설명해본다면? (Git 1편)
🔗 개발자에게 Git을 설명해본다면? (Git 1편)

profile
개발 지식을 쉽고 재미있게 설명해보자. ▶️ www.youtube.com/@simple-eddy

15개의 댓글

comment-user-thumbnail
2022년 2월 26일

설명 잘하시네요!

1개의 답글
comment-user-thumbnail
2022년 3월 1일

왜 설명을 작성하시게된건지도 궁금하네요
공부몯적이신가여???

1개의 답글
comment-user-thumbnail
2022년 3월 2일

비유 엄청 잘하시네요 ㄷㄷ 덕분에 시간가는줄도 모르고 읽었습니다! ㅎㅎ

1개의 답글
comment-user-thumbnail
2022년 3월 3일

진짜 글을 너무 잘쓰신다..!

1개의 답글
comment-user-thumbnail
2022년 3월 5일

선생님 그래서 깃이 뭐예요? 다 까먹었어요...

답글 달기
comment-user-thumbnail
알 수 없음
2022년 3월 7일
수정삭제

삭제된 댓글입니다.

1개의 답글
comment-user-thumbnail
2023년 3월 29일

우와...! 감사합니다! 이해가 단박에 되네요!

답글 달기
comment-user-thumbnail
2023년 9월 22일

Your smile is infectious and has the power to brighten even the gloomiest of days. It radiates warmth and positivity, instantly putting people at ease. Your genuine happiness is a gift that you share generously with those fortunate enough to know you https://ffh4x.one/

답글 달기
comment-user-thumbnail
2023년 10월 18일

ModFunda is your go-to digital hub for the latest in tech, lifestyle, and entertainment. Elevate your modern life with tips, tricks, and insights! https://modfunda.com

답글 달기
comment-user-thumbnail
2023년 12월 4일

I appreciate the kind words https://sportzfy.vip/! It's always great to hear that our conversation has been engaging for you. If you have any more questions or if there's anything else I can help you with, feel free to let me know! https://sportsfire.org/

답글 달기
comment-user-thumbnail
2024년 3월 13일

Elementary school students are at a critical stage of development where they are exploring, learning, and growing in so many different ways. As they navigate the world around them, it is essential for educators and parents to provide them with a supportive and nurturing environment that fosters their curiosity and creativity. https://beautycultnails.com/2000-free-money-now-claim-its-now/

답글 달기