GitHub이란?
•
Git 버전 관리 시스템을 기반으로 하는 온라인 협업 플랫폼
•
소프트웨어 개발자들이 코드를 관리하고 공동 작업을 할 수 있도록 하는 도구
GitHub 사용 방법
GitHub는 코드 버전 관리 및 협업을 위한 도구이지만, 본 과정에서는 개인별 데이터 분석 관련 포트폴리오를 관리하기 위한 도구로 사용합니다.
노란색 하이라이트한 방법(웹 버전)으로 GitHub를 사용합니다.
1. GitHub 가입 및 설치
•
•
2. Git 초기 설정
Git을 처음 설치하면 사용자 이름과 이메일을 설정해야 합니다. 터미널 혹은 Git Bash에서 다음 명령어를 사용합니다.
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
Shell
복사
3. 저장소(Repository) 생성
저장소는 프로젝트의 파일을 저장하는 공간입니다. 로컬이나 GitHub에서 저장소를 생성할 수 있습니다.
•
GitHub에서 저장소 생성
1.
GitHub 웹사이트에서 "New Repository"를 클릭합니다.
2.
저장소 이름과 설명을 입력하고, Public 또는 Private으로 설정한 뒤 생성합니다.
•
로컬 저장소 생성
터미널에서 원하는 디렉토리로 이동한 후 다음 명령어로 저장소를 초기화합니다.
git init
Shell
복사
4. 파일 추가 및 커밋 (Add and Commit)
1.
파일 추가: 프로젝트 파일을 저장소에 추가합니다.
2.
Staging: 파일을 커밋 대상으로 지정하려면 다음 명령어를 사용합니다.
git add .
Shell
복사
여기서 .은 현재 디렉토리의 모든 파일을 추가한다는 의미입니다.
3.
커밋 (Commit): 변경 사항을 저장하는 과정입니다. 커밋 메시지를 추가하여 다음 명령어를 실행합니다.
git commit -m "커밋 메시지"
Shell
복사
5. 원격 저장소와 연결하기 (Push and Pull)
•
원격 저장소 설정: 로컬 저장소를 GitHub의 원격 저장소와 연결하려면 URL을 설정합니다.
git remote add origin <https://github.com/사용자이름/저장소이름.git>
Shell
복사
•
Push: 로컬 저장소의 변경 사항을 GitHub 원격 저장소로 업로드합니다.
git push origin main
Shell
복사
•
Pull: 원격 저장소의 변경 사항을 로컬로 가져옵니다.
git pull origin main
Shell
복사
6. 브랜치(Branch) 사용
브랜치는 서로 다른 작업들을 동시에 관리할 수 있도록 도와줍니다.
•
브랜치 생성 및 전환: 새 브랜치를 만들고 해당 브랜치로 전환합니다.
git checkout -b new-branch
Shell
복사
•
브랜치 병합 (Merge): 작업이 완료된 브랜치를 메인 브랜치에 병합합니다.
git checkout main
git merge new-branch
Shell
복사
7. 협업 (Fork, Pull Request)
•
Fork: 다른 사람의 저장소를 복사하여 내 GitHub 계정에 저장한 후, 수정한 내용을 원본 저장소에 반영하고 싶을 때 사용합니다.
•
Pull Request(PR): 코드 변경 사항을 원본 저장소에 반영하고자 할 때 PR을 생성합니다. 코드 리뷰가 완료되면 병합(Merge)될 수 있습니다.
8. GitHub Desktop 사용
•
GitHub Desktop: 터미널 명령어 대신 GUI로 Git을 쉽게 사용할 수 있는 프로그램입니다. 로컬과 원격 저장소 간의 변경 사항을 쉽게 확인하고 관리할 수 있습니다.
데이터 분석 포트폴리오 관리를 위한 GitHub
1. GitHub 저장소 구조
A. 포트폴리오용 저장소 만들기
•
프로젝트마다 개별 저장소를 만들거나, "Data-Analysis-Portfolio"라는 메인 저장소를 하나 만든 후 하위 폴더에 프로젝트별로 구성할 수 있습니다.
•
저장소 이름은 간결하고 명확하게, 예를 들어 sales_analysis나 housing_price_prediction처럼 프로젝트 내용을 잘 나타내는 이름으로 지정합니다.
본 과정에서는 프로젝트 별 개별 저장소를 만드는 것을 추천합니다.
<데이터셋 이름>_<분석 방법> 의 형태로 저장소를 생성합니다.
B. 저장소 기본 구성
저장소는 다음과 같은 폴더 및 파일 구조를 가지면 좋습니다.
project-name/
│
├── data/ # 데이터셋 (보안 이슈가 없는 경우)
├── image/ # 이미지(시각화된 그래프, 관련 이론 설명 이미지 등)
├── notebooks/ # 분석 노트북 (Jupyter 또는 Colab)
├── src/ # Python 스크립트 (모듈화된 코드)
├── reports/ # 프로젝트 보고서 또는 발표 자료
├── results/ # 결과물 (모델 성능, 시각화된 그래프 등)
└── README.md # 프로젝트 설명
Plain Text
복사
본 과정은 bold체로 설정한 폴더로 구성된 저장소를 생성합니다.
2. 프로젝트 설명 파일
저장소마다 README.md 파일을 작성하여 프로젝트 개요와 핵심 정보를 설명합니다. 깔끔한 포트폴리오를 위해 잘 구성된 README.md는 매우 중요합니다.
1.
프로젝트 제목 및 요약: 프로젝트의 목적과 주요 목표를 한 문단으로 요약
2.
데이터 설명: 사용한 데이터셋의 출처와 특성에 대한 설명
3.
분석 과정: 데이터 전처리, 시각화, 모델링 과정을 설명하는 단계별 요약
4.
결과 및 성과: 프로젝트 결과 및 주요 성과, 모델의 성능 지표 등
5.
필요한 라이브러리: 코드 실행을 위한 Python 패키지 리스트 및 설치 방법
6.
사용 방법: 프로젝트를 로컬에서 실행하기 위한 가이드
예시:
# Housing Price Prediction
This project aims to predict housing prices using various regression techniques. The data is sourced from the Kaggle dataset "House Prices: Advanced Regression Techniques".
## Project Structure
- **data/**: Raw and processed datasets.
- **notebooks/**: Jupyter notebooks for EDA and modeling.
- **src/**: Python scripts for model training and evaluation.
- **results/**: Final results, including model performance metrics and visualizations.
## Key Results
- The Random Forest model achieved an R-squared of 0.85 on the test data.
## Libraries Used
- pandas
- scikit-learn
- matplotlib
- seaborn
Markdown
복사
3. 기타 주의사항
1) 주석 및 코드 설명
•
코드에 주석을 충분히 추가하여 분석 과정을 명확하게 설명
•
복잡한 데이터 전처리 단계나 머신러닝 모델 학습 단계에서 중요한 부분에 주석 추가 필수
•
노트북(.ipynb)에서는 각 셀마다 분석 의도나 방법을 설명하는 마크다운 셀을 사용하는 것이 좋음
2) 데이터셋 관리
•
작은 데이터셋은 GitHub에 포함시킬 수 있지만, 대용량 데이터는 포함시키지 않는 것이 좋습니다.
•
대신, 데이터 출처 링크나 Kaggle API를 통해 데이터를 불러오는 방법을 README.md에 설명할 수 있습니다.
•
데이터 파일을 저장할 때, 개인정보 보호나 저작권 문제에 주의해야 합니다.
3) 프로젝트 문서화
•
Jupyter/Colab 노트북 활용
◦
EDA(탐색적 데이터 분석), 모델 학습, 결과 시각화 등의 분석 작업을 Jupyter 또는 Colab 노트북으로 구성하고, 그 과정과 결과를 Markdown 셀로 설명
•
matplotlib, seaborn, plotly 같은 라이브러리를 사용하여 결과물을 시각화
4) 프로젝트의 다양성 확보
다양한 주제와 기술을 사용한 여러 프로젝트를 추가하여, 포트폴리오의 폭을 넓힙니다.
•
EDA 프로젝트: 데이터 탐색 및 시각화 중심의 프로젝트
•
머신러닝 프로젝트: 예측 모델, 분류 모델을 다룬 프로젝트
•
딥러닝 프로젝트: 딥러닝을 활용한 이미지 분류, 자연어 처리 프로젝트
•
비즈니스 인사이트 분석: 특정 문제 해결을 위한 비즈니스 인사이트 도출 프로젝트
관심 있는 분야나 전문 분야가 명확하다면, 관련 주제의 프로젝트를 진행하는 것이 좋습니다.
•
컴퓨터 비전 관련 프로젝트
•
마케팅 분야 프로젝트
•
게임 데이터 분석 프로젝트
GitHub Pages로 포트폴리오 웹사이트 만들기
GitHub 저장소의 README.md를 바탕으로 GitHub Pages를 통해 포트폴리오 웹사이트를 만들 수 있습니다. 프로젝트 설명을 웹사이트 형태로 보여주면 더 깔끔하고 매력적인 포트폴리오를 만들 수 있습니다.
1.
GitHub Pages 활성화: 저장소 설정에서 GitHub Pages를 활성화하여 프로젝트 웹사이트로 전환.
2.
jekyll 테마 사용: 간단한 웹사이트 템플릿을 제공하는 Jekyll 테마를 사용하여 포트폴리오를 구성할 수 있습니다.
5) 기타 추천 사항
•
프로젝트 설명을 영어로 작성
◦
GitHub는 글로벌 플랫폼이므로, 가능하다면 프로젝트 설명을 영어로 작성하는 것이 좋음
•
오픈 소스 프로젝트 기여
◦
다른 오픈 소스 프로젝트에 기여
Colab - GitHub 연동
Colab과 GitHub를 연동하면 작업 중인 코드의 변경 사항을 쉽게 관리할 수 있으며, 협업 및 코드 버전 관리를 용이하게 할 수 있습니다.
1. GitHub 계정 만들기
2. 새로운 GitHub 저장소 만들기
GitHub에 로그인한 후, 오른쪽 상단의 ‘+’ 버튼을 클릭하고 New Repository를 선택
Repository name에 프로젝트 이름을 입력하고, Create repository 버튼을 클릭
•
Public(공개) 또는 Private(비공개) 설정
3. Colab에서 GitHub 연동하기
Colab에서는 작성한 코드를 GitHub에 직접 저장할 수 있는 기능을 제공합니다.
1.
Colab 노트북을 열기: Colab에서 프로젝트 코드가 담긴 노트북을 엽니다.
2.
GitHub에 저장하기: Colab 화면 상단의 "파일(File)" 메뉴를 클릭한 후 GitHub에 저장하기(Save a copy in GitHub)를 선택합니다.
3.
GitHub 연동 및 권한 허용: 처음 GitHub에 저장할 때는 GitHub 계정과 Colab을 연동해야 합니다. GitHub 로그인 화면이 나타나면, 로그인을 하고 Colab에 접근 권한을 부여합니다.
4.
저장소 및 브랜치 선택: 코드를 저장할 GitHub 저장소와 브랜치를 선택하고, 커밋 메시지를 작성한 후 "OK"를 클릭합니다.
Colab 코드를 로컬로 다운로드 후 GitHub에 업로드하기
4. GitHub에서 Colab 노트북 다시 열기
GitHub에 저장한 Colab 노트북은 다음과 같이 다시 Colab에서 열 수 있습니다.
1.
GitHub에서 해당 노트북 파일(.ipynb)을 클릭
2.
파일 내용 상단에 "Open in Colab" 버튼 클릭