포스트

[GitHub 100일 챌린지] Day 70 - Git Bisect로 버그 찾기

[GitHub 100일 챌린지] Day 70 - Git Bisect로 버그 찾기

100일 챌린지 Day 70 - 이진 탐색으로 버그가 발생한 커밋을 빠르게 찾는 Bisect를 배웁니다.

배울 내용

  1. Bisect의 이진 탐색 원리
  2. 수동/자동 Bisect
  3. 버그 커밋 특정

1. Bisect란?

버그가 처음 발생한 커밋을 이진 탐색으로 찾기

1
# 100개 커밋 → 7번 테스트로 찾기 (log₂100)

2. 기본 사용법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 시작
git bisect start
git bisect bad         # 현재는 버그
git bisect good v1.0.0 # 1.0은 정상

# Git이 중간 커밋으로 이동
# 테스트 후
git bisect good  # 또는 bad

# 반복...
# 버그 커밋 발견!

# 종료
git bisect reset

3. 자동 Bisect

1
2
3
4
5
6
7
8
9
10
11
# 테스트 스크립트
cat > test.sh <<'SCRIPT'
#!/bin/bash
npm test
SCRIPT

chmod +x test.sh

# 자동 실행
git bisect start HEAD v1.0.0
git bisect run ./test.sh

4. 실전 활용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 언제부터 로그인이 안 될까?

git bisect start
git bisect bad       # 현재
git bisect good v2.0 # 2.0은 정상

# 각 커밋 테스트
npm start
# 브라우저 테스트

git bisect good/bad
# 반복...

# 123abcd is the first bad commit
git bisect reset

정리

완료 체크:

  • Bisect로 버그 커밋을 찾을 수 있다
  • 이진 탐색의 효율을 이해했다

핵심 요약:

  • git bisect start/good/bad
  • 이진 탐색으로 O(log n)
  • 자동화 가능

Phase 7 완료! 🎉


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.