코딩 공부를 하다 보면 어느 순간 내가 만든 코드를 GitHub에 올려야 하는 시기가 옵니다. 처음에는 그냥 내 컴퓨터에 저장해두면 충분할 것 같지만, 프로젝트가 하나둘 늘어나면 관리가 어려워집니다. 또 개발자 포트폴리오를 준비하거나, 다른 사람에게 내 코드를 보여줘야 할 때 GitHub는 거의 필수처럼 사용됩니다.
저도 처음 GitHub에 코드를 올릴 때 꽤 많이 헤맸습니다. GitHub 회원가입까지는 어렵지 않았는데, 저장소를 만들고, Git 명령어를 입력하고, push를 하는 과정에서 계속 막혔습니다. 특히 터미널에 영어로 된 에러 메시지가 나오면 괜히 겁부터 났습니다. 그런데 몇 번 반복해보니 GitHub에 코드를 올리는 과정은 생각보다 정해진 흐름이 있었습니다.
처음부터 모든 명령어를 완벽하게 외우려고 할 필요는 없습니다. 중요한 것은 GitHub에 코드를 올리는 전체 흐름을 이해하는 것입니다. 내 컴퓨터에 있는 프로젝트를 Git으로 관리하고, 그 기록을 GitHub 저장소와 연결한 뒤, 온라인으로 올리는 과정이라고 생각하면 됩니다.
GitHub에 코드를 올리기 전에 알아야 할 것
GitHub에 코드를 올리려면 먼저 Git과 GitHub의 차이를 간단히 이해해야 합니다. Git은 내 컴퓨터에서 코드 변경 기록을 관리하는 도구입니다. GitHub는 그 코드를 온라인에 저장하고 공유할 수 있는 서비스입니다.
쉽게 말하면 Git은 기록을 남기는 도구이고, GitHub는 그 기록을 올려두는 공간입니다. 그래서 GitHub에 코드를 올리려면 보통 Git을 함께 사용합니다.
처음에는 이 개념이 헷갈릴 수 있습니다. 저도 예전에는 GitHub 사이트에 파일을 그냥 드래그해서 올리는 것만 생각했습니다. 물론 웹사이트에서 직접 파일을 올릴 수도 있지만, 개발 공부를 제대로 이어가려면 Git 명령어를 통해 올리는 흐름을 익히는 것이 좋습니다. 나중에 프로젝트가 커지거나 협업을 하게 되면 이 방식이 훨씬 편하기 때문입니다.
먼저 GitHub 저장소 만들기
가장 먼저 해야 할 일은 GitHub에서 저장소를 만드는 것입니다. 저장소는 하나의 프로젝트를 담는 공간입니다. 예를 들어 Todo 리스트 프로젝트를 만들었다면 todo-list라는 저장소를 만들 수 있고, 개인 포트폴리오 사이트라면 portfolio-site 같은 이름을 사용할 수 있습니다.
저장소 이름은 가능하면 프로젝트 내용을 알 수 있게 짓는 것이 좋습니다. test, practice1, new-project처럼 너무 애매한 이름은 나중에 본인도 헷갈릴 수 있습니다. 처음에는 별것 아닌 것 같지만, 프로젝트가 여러 개 쌓이면 이름 정리가 꽤 중요해집니다.
저장소를 만들 때 공개 여부도 선택하게 됩니다. 공개 저장소는 다른 사람이 볼 수 있고, 비공개 저장소는 본인이나 초대한 사람만 볼 수 있습니다. 포트폴리오로 보여줄 프로젝트라면 공개 저장소가 좋습니다. 다만 API 키, 비밀번호, 개인정보 같은 민감한 내용이 들어간 코드는 절대 공개 저장소에 올리면 안 됩니다.
처음 GitHub 저장소를 만들었을 때는 빈 페이지가 하나 생긴 느낌이라 조금 막막했습니다. 그런데 이 저장소 주소가 내 컴퓨터 프로젝트와 연결되는 목적지라고 생각하니 이해가 쉬웠습니다.
내 컴퓨터 프로젝트 폴더 준비하기
GitHub에 올릴 프로젝트는 내 컴퓨터 안에 폴더로 정리되어 있어야 합니다. 예를 들어 계산기 프로젝트라면 calculator 폴더 안에 HTML, CSS, JavaScript 파일이 들어갈 수 있습니다. 파이썬 프로젝트라면 .py 파일과 필요한 설명 문서가 들어갈 수 있습니다.
이때 프로젝트 폴더 안에 불필요한 파일이 너무 많이 들어가지 않도록 주의하는 것이 좋습니다. 임시 파일, 개인 메모, 비밀번호가 적힌 파일, 용량이 너무 큰 파일은 제외하는 편이 좋습니다.
초보자 때는 바탕화면에 프로젝트 폴더를 아무렇게나 만들어두기 쉽습니다. 저도 처음에는 연습, 새 폴더, 진짜연습 같은 이름으로 폴더가 많았습니다. 나중에 GitHub에 올리려고 하니 어떤 폴더가 최종 프로젝트인지 헷갈렸습니다. 그래서 프로젝트를 시작할 때부터 이름을 정리해두는 습관이 중요합니다.
Git으로 프로젝트 관리 시작하기
프로젝트 폴더가 준비됐다면 Git으로 관리할 수 있게 설정해야 합니다. 터미널이나 VS Code의 터미널을 열고 프로젝트 폴더로 이동한 뒤 Git 초기화를 합니다.
이 과정은 “이 폴더의 변경 기록을 이제부터 Git으로 관리하겠다”는 뜻입니다. 처음에는 명령어가 낯설지만, 프로젝트마다 한 번만 해주면 됩니다.
Git으로 관리가 시작되면 파일을 수정할 때마다 변경 사항을 확인할 수 있습니다. 어떤 파일이 새로 생겼는지, 어떤 파일이 수정됐는지 Git이 추적합니다. 이 상태에서 바로 GitHub에 올라가는 것은 아니고, 먼저 커밋이라는 기록을 남겨야 합니다.
커밋은 의미 있는 저장 기록이다
GitHub에 코드를 올릴 때 꼭 알아야 할 개념이 커밋입니다. 커밋은 단순한 저장이 아니라, 프로젝트의 변경 내용을 하나의 기록으로 남기는 것입니다.
예를 들어 첫 프로젝트 파일을 만들었다면 “초기 프로젝트 구성”이라는 메시지로 커밋할 수 있습니다. 버튼 디자인을 수정했다면 “버튼 스타일 수정”이라고 남길 수 있습니다. Todo 리스트에 삭제 기능을 추가했다면 “할 일 삭제 기능 추가”라고 적을 수 있습니다.
처음에는 커밋 메시지를 대충 적기 쉽습니다. 저도 예전에는 수정, 완료, 다시수정 같은 식으로 남겼습니다. 그런데 나중에 기록을 다시 보면 어떤 작업을 했는지 알 수 없었습니다. 커밋 메시지는 미래의 내가 보는 메모이기도 합니다. 짧더라도 어떤 작업을 했는지 알 수 있게 적는 것이 좋습니다.
좋은 커밋 습관은 포트폴리오에도 도움이 됩니다. GitHub 저장소를 보는 사람이 커밋 기록을 통해 이 프로젝트를 어떻게 만들어왔는지 어느 정도 확인할 수 있기 때문입니다.
GitHub 저장소와 내 프로젝트 연결하기
내 컴퓨터에서 커밋을 만들었다면 이제 GitHub 저장소와 연결해야 합니다. GitHub에서 만든 저장소에는 고유한 주소가 있습니다. 이 주소를 내 프로젝트와 연결하면, 내 컴퓨터의 코드 기록을 GitHub로 보낼 수 있습니다.
이 연결 과정을 처음 할 때는 조금 어렵게 느껴질 수 있습니다. 하지만 한 번 연결해두면 이후에는 변경 사항을 커밋하고 push하는 흐름을 반복하면 됩니다.
여기서 push는 내 컴퓨터에 있는 Git 기록을 GitHub로 올리는 작업입니다. 반대로 GitHub에 있는 내용을 내 컴퓨터로 가져오는 것은 pull이라고 부릅니다. 처음에는 push와 pull이 헷갈릴 수 있는데, push는 밀어 올리는 것, pull은 당겨 가져오는 것이라고 생각하면 조금 쉽습니다.
제가 처음 push를 성공했을 때 GitHub 페이지에 제 코드 파일이 보이는 게 정말 신기했습니다. 내 컴퓨터에만 있던 프로젝트가 온라인 저장소에 올라간 순간이었기 때문입니다. 별것 아닌 것 같아도 개발 공부를 시작한 사람에게는 꽤 뿌듯한 경험입니다.
README 파일은 꼭 작성하는 것이 좋다
GitHub에 코드를 올릴 때 README 파일을 함께 작성하는 것이 좋습니다. README는 프로젝트 소개 문서입니다. 저장소에 들어온 사람이 이 프로젝트가 무엇인지 가장 먼저 확인하는 부분입니다.
README에는 프로젝트 이름, 만든 이유, 주요 기능, 사용 기술, 실행 방법, 배운 점 등을 적을 수 있습니다. 처음에는 짧아도 괜찮습니다. 예를 들어 “이 프로젝트는 JavaScript로 만든 Todo 리스트입니다. 할 일 추가, 삭제, 완료 처리 기능이 있습니다” 정도만 적어도 코드만 있는 것보다 훨씬 보기 좋습니다.
포트폴리오용 프로젝트라면 README는 더욱 중요합니다. 면접관이나 다른 개발자가 내 저장소에 들어왔을 때 코드부터 하나하나 읽는 경우는 많지 않습니다. 먼저 README를 보고 프로젝트의 목적과 기능을 파악합니다.
저도 처음에는 README를 거의 비워두었습니다. 그런데 나중에 제 프로젝트를 다시 보니 무엇을 만든 건지 설명이 부족했습니다. 이후에는 프로젝트를 올릴 때마다 짧게라도 README를 작성했습니다. 이 습관은 블로그 글을 쓰거나 포트폴리오를 정리할 때도 큰 도움이 됐습니다.
GitHub에 올리면 안 되는 파일도 있다
GitHub에 코드를 올릴 때 조심해야 할 것도 있습니다. 모든 파일을 무조건 올리면 안 됩니다. 특히 비밀번호, API 키, 개인 정보, 환경 설정 파일처럼 민감한 내용은 공개 저장소에 올라가지 않도록 주의해야 합니다.
예를 들어 날씨 앱이나 지도 앱을 만들 때 외부 API 키를 사용하는 경우가 있습니다. 이 키가 그대로 GitHub에 올라가면 다른 사람이 사용할 수도 있고, 문제가 생길 수도 있습니다. 그래서 이런 값은 환경 변수로 따로 관리하거나, .gitignore 파일을 사용해 Git 추적에서 제외해야 합니다.
.gitignore는 Git이 무시할 파일이나 폴더를 정해두는 파일입니다. 예를 들어 불필요한 설치 폴더, 개인 설정 파일, 보안상 올리면 안 되는 파일을 제외할 수 있습니다.
초보자 때는 이 부분을 놓치기 쉽습니다. 저도 처음에는 프로젝트 폴더 안에 있는 모든 파일을 그대로 올리면 되는 줄 알았습니다. 나중에야 공개 저장소에는 올릴 파일과 올리지 말아야 할 파일을 구분해야 한다는 걸 알게 됐습니다.
처음에는 명령어보다 흐름을 익히는 게 중요하다
GitHub에 코드를 올리는 과정에서 여러 명령어를 만나게 됩니다. 처음에는 init, add, commit, remote, push 같은 단어들이 어렵게 느껴질 수 있습니다. 하지만 명령어를 무작정 외우기보다 흐름을 이해하는 것이 먼저입니다.
전체 흐름은 단순하게 보면 이렇습니다. 프로젝트 폴더를 만들고, Git으로 관리하기 시작합니다. 변경된 파일을 선택하고, 커밋으로 기록을 남깁니다. GitHub 저장소와 연결한 뒤, push로 코드를 올립니다.
이 과정을 몇 번 반복하면 처음보다 훨씬 익숙해집니다. 처음에는 한 줄 한 줄 검색하면서 해도 괜찮습니다. 개발자들도 모든 명령어를 외워서 쓰는 것은 아닙니다. 자주 쓰는 명령어는 자연스럽게 익숙해지고, 가끔 쓰는 것은 찾아보면서 사용합니다.
중요한 것은 에러가 났을 때 바로 포기하지 않는 것입니다. GitHub 업로드 과정에서 인증 문제, 브랜치 이름 문제, 원격 저장소 연결 문제 같은 에러가 나올 수 있습니다. 대부분은 많은 사람들이 이미 겪은 문제라 검색하면 해결 방법을 찾을 수 있습니다.
코드 업로드 후 확인해야 할 것
GitHub에 코드를 올렸다면 끝이 아닙니다. 저장소에 들어가서 파일이 제대로 올라갔는지 확인해야 합니다. README가 잘 보이는지, 폴더 구조가 너무 복잡하지 않은지, 불필요한 파일이 올라가지 않았는지도 살펴보는 것이 좋습니다.
포트폴리오용 프로젝트라면 실행 방법도 확인해야 합니다. 다른 사람이 README를 보고 프로젝트를 실행할 수 있어야 합니다. 웹 프로젝트라면 배포 링크를 함께 넣어두는 것도 좋습니다. GitHub 저장소만 있는 것보다 실제로 화면을 볼 수 있는 링크가 있으면 훨씬 이해하기 쉽습니다.
그리고 프로젝트 설명에 사용 기술을 적을 때는 실제로 사용한 것만 적는 것이 좋습니다. HTML, CSS, JavaScript만 사용했다면 그렇게 적으면 됩니다. 괜히 사용하지 않은 기술을 적어두면 나중에 질문을 받았을 때 곤란할 수 있습니다.
GitHub 업로드는 개발 공부의 기록이다
GitHub에 내 코드를 올리는 방법은 처음에는 복잡해 보이지만, 흐름을 알고 나면 반복적인 작업입니다. 저장소를 만들고, 내 프로젝트 폴더를 Git으로 관리하고, 변경 내용을 커밋한 뒤, GitHub에 push하는 과정입니다.
처음부터 완벽하게 할 필요는 없습니다. 작은 계산기 프로젝트, 자기소개 페이지, Todo 리스트 같은 간단한 결과물부터 올려보면 됩니다. 중요한 것은 내 코드를 온라인에 기록하는 경험을 해보는 것입니다.
저도 처음 GitHub에 코드를 올릴 때는 에러도 많이 만나고, 저장소도 지저분하게 만들었습니다. 하지만 하나씩 올리다 보니 프로젝트 관리가 조금씩 익숙해졌고, 나중에는 공부 기록이 쌓이는 느낌이 들었습니다. 예전 코드를 다시 보면서 부족한 점도 알 수 있었고, 내가 얼마나 성장했는지도 확인할 수 있었습니다.
GitHub는 단순히 코드를 보관하는 공간이 아닙니다. 내가 무엇을 만들었고, 어떤 과정을 거쳤고, 어떻게 성장했는지 보여주는 기록장입니다. 오늘 만든 작은 프로젝트라도 GitHub에 올려보세요. 그 작은 업로드 하나가 나중에는 포트폴리오의 시작점이 될 수 있습니다.