GitHub와 GitHub Desktop 시작하기

Yoonmin·2025년 9월 30일

협업툴

목록 보기
1/2

1. GitHub란?

GitHub는 Git 기반의 코드 호스팅 플랫폼입니다. 현재 1억 5천만 명 이상이 사용하며 4억 2천만 개 이상의 프로젝트가 호스팅되고 있습니다.

최신 주요 기능 (2024-2025)

GitHub Copilot 멀티모델 지원
Claude 3.5 Sonnet, Gemini 1.5 Pro, OpenAI o1 등 여러 AI 모델을 선택해서 사용할 수 있습니다. 작업에 따라 최적의 모델을 선택할 수 있어 효율적입니다.

자동 보안 수정
Copilot Autofix는 JavaScript, TypeScript, Java, Python에서 90% 이상의 보안 알림을 자동으로 수정합니다.

Push Protection
비밀 정보(API 키, 비밀번호 등)가 레포지토리에 푸시되기 전에 자동으로 차단합니다.


2. GitHub Desktop이란?

GitHub Desktop은 명령줄 대신 GUI로 Git을 쉽게 사용할 수 있게 해주는 무료 오픈소스 도구입니다.

2025년 신규 기능

멀티도메인 지원
여러 GitHub 계정(회사, 개인 등)에 동시에 로그인할 수 있습니다.

파일 필터링
변경된 파일이 많을 때 파일명으로 필터링하여 빠르게 찾을 수 있습니다.


3. GitHub Desktop 설치

macOS

brew install --cask github

Windows

winget install github-desktop

또는 공식 웹사이트에서 다운로드


4. 기본 사용법

4.1 레포지토리 생성

1. File > New Repository
2. 이름과 경로 입력
3. .gitignore 선택 (중요!)
4. Create Repository

⚠️ 보안 팁: .gitignore에 꼭 포함할 것

.env
.env.local
*.key
*.pem
config/secrets.yml
node_modules/

4.2 레포지토리 복제

1. File > Clone Repository
2. URL 입력 또는 목록에서 선택
3. 저장할 폴더 선택
4. Clone

4.3 변경사항 커밋

1. 파일 수정
2. GitHub Desktop에서 변경사항 확인
3. 커밋 메시지 작성
4. "Commit to main" 클릭
5. "Push origin" 클릭

4.4 브랜치 작업

1. Branch > New Branch
2. 브랜치 이름 입력 (예: feature/login)
3. 작업 후 커밋
4. Branch > Create Pull Request

5. 필수 보안 설정

5.1 2단계 인증 (2FA) 설정

2FA는 계정 보안을 크게 향상시킵니다. 비밀번호만으로는 피싱이나 재사용으로 손상될 수 있습니다.

권장 순서:
1. 하드웨어 보안 키 (YubiKey 등) - 가장 안전
2. Passkeys (Touch ID, Face ID)
3. 인증 앱 (Google Authenticator, Authy)
4. SMS (최후의 수단)

설정 방법:

GitHub.com > Settings > 
Password and authentication > 
Two-factor authentication > Enable

5.2 SSH 키 설정 (HTTPS보다 안전)

# 최신 알고리즘 사용
ssh-keygen -t ed25519 -C "your_email@example.com"

# 공개 키 복사
cat ~/.ssh/id_ed25519.pub

# GitHub에 등록: Settings > SSH and GPG keys

5.3 환경 변수 사용

절대 커밋하면 안 되는 것:

  • API 키
  • 데이터베이스 비밀번호
  • JWT 시크릿
  • 개인 키 파일

.env 파일 사용 (절대 커밋 금지!)

# .env
DATABASE_URL=postgresql://user:password@localhost/db
API_KEY=your-secret-key

코드에서 사용:

// Node.js
require('dotenv').config();
const apiKey = process.env.API_KEY;
# Python
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv('API_KEY')

6. 실무 활용 팁

6.1 브랜치 전략

main (배포용)
  └── develop (개발용)
      ├── feature/new-feature (새 기능)
      ├── bugfix/fix-login (버그 수정)
      └── hotfix/security-patch (긴급 수정)

6.2 커밋 메시지 작성법

✅ 좋은 예:
feat: 사용자 로그인 기능 추가
fix: 비밀번호 유효성 검사 버그 수정
docs: README에 설치 가이드 추가

❌ 나쁜 예:
수정
test
ㅇㅇ

6.3 Pull Request 체크리스트

## 작업 내용
- [ ] 새로운 기능 구현 완료
- [ ] 테스트 코드 작성
- [ ] 문서 업데이트

## 보안 체크
- [ ] 민감한 정보 제거 확인
- [ ] 입력 검증 추가
- [ ] 의존성 취약점 없음

7. 자주 묻는 질문

Q: 실수로 비밀번호를 커밋했어요!

# 1. 즉시 해당 비밀번호 변경
# 2. GitHub Desktop에서 해당 커밋 되돌리기
# 3. 이미 푸시했다면 강제 푸시 (조심!)
git push --force

Q: 충돌이 발생했어요!

1. GitHub Desktop에서 충돌 파일 확인
2. "Open in [Editor]" 클릭
3. <<<< HEAD와 >>>> 사이 코드 수정
4. 저장 후 커밋

Q: 이전 버전으로 돌아가고 싶어요!

1. History 탭에서 원하는 커밋 찾기
2. 우클릭 > Revert this commit

8. 추천 도구

보안 스캔:

  • GitGuardian - 비밀 정보 탐지
  • Snyk - 의존성 취약점 검사

코드 품질:

  • ESLint - JavaScript 린팅
  • Prettier - 코드 포맷팅

9. 핵심 요약

GitHub Desktop으로 GUI에서 쉽게 Git 사용
2FA는 필수! 하드웨어 키 권장
환경 변수로 비밀 정보 관리
.gitignore로 민감한 파일 제외
브랜치 전략으로 체계적 개발
Pull Request로 코드 리뷰

보안은 귀찮은 것이 아니라 필수입니다. 처음부터 올바른 습관을 들이면 나중에 큰 문제를 예방할 수 있습니다! 🚀


참고 링크:

profile
'같이의 가치를'

0개의 댓글