[태그:] repository

  • 깃허브(GitHub)가 뭐길래? 코딩 몰라도 이해되는 앱 타임머신 이야기

    깃허브(GitHub)가 뭐길래? 코딩 몰라도 이해되는 앱 타임머신 이야기

    작성자: 컴맹 집사

    대표 이미지: 코드는 여러 파일로 나뉘어 있고, GitHub는 이 파일들을 보관한다 (사진: pexels / Pixabay)

    이 글에서 얻는 것

    • 이런 분께 파일 이름에 ‘최종’, ‘진짜 최종’이 쌓여 가는 분
    • 핵심 답 GitHub는 고칠 때마다 언제, 무엇을, 왜 바꿨는지 기록이 남는 클라우드 폴더다. 파일은 하나만 두고 버전은 GitHub가 기억한다
    • 바로 쓰는 팁 명령어가 어렵다면 버튼으로 쓰는 공식 프로그램 GitHub Desktop부터 설치하자

    index-진짜최종-수정2.html

    앱을 만든 지 사흘째, 내 폴더에 있던 파일 이름이다. 수정할 때마다 혹시 몰라 복사본을 만들었더니 어느새 열 개가 넘었다. 어제 잘 되던 버전이 어떤 파일인지 기억도 나지 않았다.

    AI에게 이렇게 물었다.

    파일 버전이 너무 많아져서 헷갈려. 어떻게 관리해?

    돌아온 답의 첫 단어가 GitHub(깃허브)였다. 이름은 들어 봤지만 개발자들만 쓰는 무언가라고만 생각했던 서비스다.

    처음 들은 설명은 하나도 이해가 안 됐다

    인터넷에서 찾은 첫 설명은 이랬다.

    GitHub는 Git 기반의 분산 버전 관리 시스템을 위한 원격 저장소 호스팅 서비스이다. (출처: GitHub 공식 문서)

    한 문장에 모르는 단어가 다섯 개였다. 그래서 AI에게 다시 부탁했다. “코딩을 전혀 모르는 사람에게 비유로 설명해 줘.”

    그 뒤에 들은 설명이 훨씬 와닿았다.

    내가 이해한 GitHub

    GitHub는 “앱 파일을 위한 기록이 남는 클라우드 폴더”다.

    • 클라우드 폴더: 내 컴퓨터가 아니라 인터넷에 파일을 보관한다. 네이버 MYBOX나 구글 드라이브처럼.
    • 기록이 남는다: 파일을 고칠 때마다 “언제, 무엇을, 왜 바꿨는지”가 기록된다. 예전 상태로 되돌리는 것도 가능하다.

    구글 드라이브와 다른 점은 두 번째다. 드라이브는 파일을 덮어쓰면 끝이지만, GitHub는 수정 이력 전체를 차곡차곡 쌓아 둔다. 그래서 index-최종.html 같은 복사본을 만들 필요가 없다. 파일은 index.html 하나만 두고, 버전은 GitHub가 기억한다.

    Git과 GitHub는 다른 것이었다

    헷갈렸던 부분이 하나 더 있었다. Git과 GitHub가 같은 건 줄 알았다.

    이름 쉽게 말하면
    Git(깃) 파일의 변경 기록을 남기는 도구(프로그램)
    GitHub(깃허브) Git으로 남긴 기록을 인터넷에 보관하는 서비스(웹사이트)

    비유하자면 Git은 “일기 쓰는 방법”이고, GitHub는 “일기장을 보관하는 도서관”이다. 초보자 입장에서는 GitHub 웹사이트와 GitHub Desktop 프로그램만 쓰면 Git을 따로 공부하지 않아도 됐다.

    새로 알게 된 단어, 저장소(repository)

    GitHub에서 가장 먼저 만나는 단어가 repository(레포지토리), 줄여서 레포다. 우리말로는 저장소라고 한다.

    GitHub 저장소 안의 파일 구성
    실제 앱 저장소에 들어 있는 주요 파일과 역할
    출처: 앱 저장소(GitHub)의 실제 기록을 정리해 직접 제작

    저장소는 프로젝트 하나를 담는 폴더라고 생각하면 된다. 강아지 앱 하나가 저장소 하나다. 나중에 다른 앱을 만들면 저장소를 새로 만든다.

    GitHub를 시작한 순서

    실제로 내가 한 순서를 적어 둔다.

    1. 계정 만들기

    github.com에 들어가 Sign up으로 가입했다. 이메일, 비밀번호, 사용자 이름을 정하면 된다. 사용자 이름은 나중에 주소에 들어가니 너무 이상하지 않게 짓는 걸 추천한다.

    2. GitHub Desktop 설치

    GitHub는 원래 명령어로 쓰는 경우가 많은데, 초보자에게는 GitHub Desktop이라는 프로그램이 훨씬 편했다. 버튼을 눌러서 쓸 수 있는 공식 프로그램이다. desktop.github.com에서 내려받아 설치하고, 방금 만든 계정으로 로그인했다.

    3. 기존 앱 폴더를 저장소로 만들기

    GitHub Desktop에서 File → Add local repository를 누르고, 앱 파일이 있는 kba-butler-app 폴더를 골랐다. “이 폴더는 아직 저장소가 아니다”라는 안내가 뜨면, 안내에 있는 create a repository 링크를 눌러 저장소로 만들면 된다.

    4. 정리부터 했다

    저장소를 만들기 전에 폴더 안의 index2.html, index-최종.html 같은 복사본을 전부 지우고, 제대로 돌아가는 index.html 하나만 남겼다. 이제부터는 GitHub가 버전을 기억해 줄 테니까.

    처음엔 “이게 왜 필요하지?” 싶었다

    솔직히 설정을 마친 직후에는 달라진 게 없어 보였다. 파일은 여전히 내 폴더에 있었고, 앱도 똑같이 열렸다. 괜히 복잡한 것만 하나 늘어난 기분이었다.

    GitHub의 진가를 느낀 건 며칠 뒤였다. 결과 화면을 고치다가 앱이 완전히 망가졌는데, GitHub Desktop의 History 탭을 열어 보니 어제 저장해 둔 기록이 그대로 있었다. 거기서 망가지기 전 상태로 되돌리는 데 1분도 걸리지 않았다. 복사본 열 개를 뒤지던 때와는 비교가 안 됐다.

    그때 확실히 알았다. GitHub는 앱을 위한 타임머신이었다. 저장할 때마다 그 순간의 앱을 사진처럼 찍어 두고, 일이 꼬이면 원하는 날짜로 돌아가면 된다. “진짜최종-수정2” 같은 파일 이름과는 이제 작별이다.

    그리고 GitHub가 필요한 진짜 이유는 따로 있었다. 앱을 인터넷에 올리는 서비스(Vercel)가 GitHub에 있는 파일을 가져다 쓴다는 것. 이건 뒤에서 이어서 쓸 예정이다.

    초보자가 알아 두면 좋은 것

    • 저장소를 공개(Public)로 할지 비공개(Private)로 할지 고를 수 있다. 처음 연습하는 앱이라면 비공개로 해도 된다.
    • 비밀번호나 개인 정보가 담긴 파일은 올리지 않는다. 공개 저장소는 누구나 볼 수 있다.
    • GitHub에 올려도 내 컴퓨터의 파일은 그대로 있다. 옮기는 게 아니라 복사본과 기록을 보관하는 것이다.

    GitHub를 쓰기 전과 후

    일주일쯤 써 보고 달라진 점을 비교해 보면 이렇다.

    전 후
    수정할 때마다 복사본 파일 생성 파일은 하나, 버전은 기록으로
    어느 파일이 최신인지 헷갈림 History에서 날짜별로 확인
    망가지면 복사본을 뒤져 복구 이전 기록으로 바로 되돌림
    컴퓨터가 고장 나면 전부 사라질 위험 인터넷에 사본이 있어 안심

    GitHub Desktop을 열자마자 또 모르는 버튼이 보였다. Commit과 Push. 저장만 하면 되는 줄 알았는데, 왜 버튼이 두 개나 더 있을까?


    이전 글: AI에게 “앱 만들어 줘” 했더니 생긴 일, 첫 결과물과 시행착오
    다음 글: 깃허브 저장·커밋·푸시, 셋 다 저장 아니었어? 컴맹이 헷갈린 차이 정리