Git 협업하기 | Pull Request와 Conflict 이해하기
Git은 혼자 개발할 때도 유용하지만, 여러 개발자가 함께 프로젝트를 진행할 때 더욱 강력한 도구입니다. 이번 강의에서는 Branch를 이용한 협업 방법, Pull Request의 개념, Code Review의 중요성, Merge 과정에서 발생하는 Conflict(충돌)를 해결하는 방법을 알아봅니다.
Git은 왜 협업에 강할까요?
Git은 원래 여러 명의 개발자가 하나의 프로젝트를 함께 개발하기 위해 만들어졌습니다.
예를 들어 쇼핑몰 프로젝트가 있다고 가정해 보겠습니다.
세 명의 개발자가 동시에 작업합니다.
김개발 → 회원가입
이개발 → 게시판
박개발 → 결제
세 사람 모두 같은 프로젝트를 개발하지만,
각자의 기능은 서로 영향을 주지 않아야 합니다.
이때 사용하는 것이 바로 Branch입니다.
협업은 Branch에서 시작합니다.
각 개발자는 자신의 Branch를 만들어 작업합니다.
main
├── login
├── board
└── payment
회원가입 개발자는
login Branch에서 작업하고,
게시판 개발자는
board Branch에서 작업합니다.
원본 프로젝트(main)는 항상 안전하게 유지됩니다.
작업이 끝나면 어떻게 할까요?
회원가입 기능이 완성되었습니다.
하지만 바로 main에 합치지는 않습니다.
먼저
다른 개발자에게
검토를 요청합니다.
이 과정을
Pull Request(PR) 라고 합니다.
Pull Request란?
Pull Request는
"제가 만든 기능을 검토한 후 프로젝트에 반영해 주세요."
라는 요청입니다.
흐름을 보면
Branch
↓
기능 개발
↓
Pull Request
↓
Code Review
↓
Merge
입니다.
왜 Pull Request가 필요할까요?
예를 들어
회원가입 기능을 만들었습니다.
혼자 보기에는 문제가 없어 보입니다.
하지만
다른 개발자가 확인해 보니
비밀번호 암호화가 빠져 있었습니다.
또는
SQL Injection 취약점이 발견되었습니다.
이처럼 Pull Request는
프로젝트의 품질을 높이는 중요한 과정입니다.
Code Review란?
Pull Request가 올라오면
다른 개발자가 코드를 검토합니다.
이 과정을
Code Review라고 합니다.
예를 들어
회원가입 기능
↓
코드 검토
↓
수정 요청
↓
수정 완료
↓
Merge
입니다.
Code Review는
실수를 줄이고
더 좋은 코드를 만드는 가장 좋은 방법입니다.
Merge
Code Review가 끝났다면
Branch를 main으로 합칩니다.
login Branch
↓
Merge
↓
main
이제 회원가입 기능이
원본 프로젝트에 반영되었습니다.
Conflict란?
협업하다 보면
가끔 Merge가 되지 않는 경우가 있습니다.
이를
Conflict(충돌)
라고 합니다.
Conflict는 왜 발생할까요?
예를 들어
김개발
index.html
↓
버튼 추가
이개발
index.html
↓
버튼 삭제
두 사람이
같은 줄을 수정했습니다.
Git은
어느 것이 맞는지 알 수 없습니다.
그래서
Conflict 발생
을 알려줍니다.
Conflict 해결 방법
Conflict가 발생하면
Git이 충돌 부분을 표시해 줍니다.
예를 들면
<<<<<<< HEAD
내 코드
=======
상대 코드
>>>>>>> branch
처럼 표시됩니다.
이때
원하는 코드만 남기고 저장한 뒤
다시 Commit하면 됩니다.
Conflict를 줄이는 방법
Conflict는 피할 수 없는 경우도 있지만,
줄일 수는 있습니다.
추천하는 방법은
기능별 Branch 사용
회원가입은 login
게시판은 board
결제는 payment
처럼 기능별로 개발합니다.
자주 Pull 하기
오랫동안 작업하지 말고
최신 프로젝트를 자주 받아옵니다.
git pull
를 자주 실행하면
Conflict를 크게 줄일 수 있습니다.
작은 기능 단위로 Merge 하기
한 달 동안 작업한 뒤 Merge하면
Conflict가 많이 발생합니다.
작은 기능마다 Merge하는 것이 좋습니다.
AI와 협업할 때도 같습니다.
AI와 개발할 때도
Conflict와 비슷한 상황이 자주 발생합니다.
예를 들어
AI가
회원가입 기능을 수정하면서
로그인 기능까지 변경했습니다.
이 경우
Branch를 사용했다면
원본 프로젝트에는 영향이 없습니다.
main
↓
Branch
↓
AI 작업
↓
테스트
↓
Merge
이것이 가장 안전한 방법입니다.
실무 협업 순서
실무에서는 보통 다음 순서로 개발합니다.
git pull
↓
Branch 생성
↓
기능 개발
↓
Commit
↓
Push
↓
Pull Request
↓
Code Review
↓
Merge
이 과정이
Git 협업의 기본 흐름입니다.
오늘 배운 내용
항목 | 설명 |
|---|---|
Branch | 기능별 작업 공간 |
Pull Request | Merge 요청 |
Code Review | 코드 검토 |
Merge | 원본 프로젝트에 반영 |
Conflict | 충돌 해결 |
기억하면 좋은 흐름
Pull
↓
Branch
↓
개발
↓
Commit
↓
Push
↓
Pull Request
↓
Code Review
↓
Merge
이 흐름이 Git 협업의 핵심입니다.
바이브 코딩 시대의 협업
예전에는
사람과 사람이 협업했습니다.
앞으로는
사람과 AI도 함께 협업합니다.
따라서
Branch
Commit
Merge
는
사람과의 협업뿐 아니라
AI와 협업할 때도 동일하게 사용됩니다.
Git을 잘 사용하는 개발자는
사람과도 협업하고,
AI와도 협업할 수 있는 개발자입니다.
마무리
이번 강의에서는 Git을 이용한 협업 방법을 알아보았습니다.
Git의 가장 큰 장점은 단순히 프로젝트를 저장하는 것이 아니라,
여러 사람이 동시에 개발하면서도 프로젝트를 안전하게 유지할 수 있다는 점입니다.
AI 시대에도 이러한 협업 방식은 그대로 유지됩니다.
Branch에서 기능을 개발하고,
Commit으로 변경 이력을 남기고,
Pull Request와 Code Review를 거쳐 Merge하는 습관을 들인다면 규모가 큰 프로젝트도 안정적으로 관리할 수 있습니다.
다음 강의에서는 **Git에서 자주 사용하는 복구 명령어(restore, reset, revert)**를 배우며, 실수했을 때 프로젝트를 안전하게 되돌리는 방법을 알아보겠습니다.
FAQ
Q1. Pull Request는 혼자 개발할 때도 필요한가요?
필수는 아닙니다. 하지만 개인 프로젝트에서도 기능을 검토하거나 변경 이력을 명확하게 남기기 위해 사용하는 경우가 많습니다.
Q2. Conflict가 발생하면 프로젝트가 망가진 건가요?
아닙니다. Conflict는 Git이 자동으로 병합할 수 없는 부분을 알려주는 것입니다. 충돌 부분을 직접 수정한 후 Commit하면 정상적으로 해결됩니다.
Q3. AI와 협업할 때도 Pull Request가 필요한가요?
AI는 Pull Request를 생성하지 않지만, AI가 작성한 코드를 개발자가 검토(Code Review)한 뒤 Merge한다는 개념으로 생각하면 됩니다. 이 습관을 들이면 AI가 만든 코드도 더욱 안전하게 프로젝트에 반영할 수 있습니다.
로그인하면 진도를 저장할 수 있습니다.