실제 팀의 Git 프로세스: 어떤 워크플로우를 선택할까
면접에서 자주 묻는 질문: '어떤 Git 워크플로우를 사용했나요?' 이 섹션을 마치면 정직하고 상세한 답변을 할 수 있습니다. 세 가지 인기 접근법인 Feature Branch Workflow, Git Flow, Trunk-Based Development를 살펴보고 각각이 어떤 상황에서 효과적이고 어떤 상황에서 병목이 되는지 분석합니다.
- 면접에서 세 가지 일반적인 Git 워크플로우를 설명하고 차이점을 설명할 수 있습니다.
- 팀 규모와 릴리스 빈도가 개발 프로세스 선택에 미치는 영향을 이해합니다.
- 새 팀에 합류할 때 워크플로우에 관한 올바른 질문을 하는 방법을 배웁니다.
Simula ng leksyon
왜 Feature Branch Workflow일까?
- Feature Branch = 각 장의 독립된 초고
- 병렬 작업을 위한 코드 격리
- main 브랜치에 영향을 주지 않는 안전한 실험
- 모든 수준의 팀이 쉽게 도입 가능
- 스타트업과 소규모 프로젝트에 이상적
여러분이 책을 집필할 때 각 장마다 별도의 초고를 만든다고 상상해 보세요. Feature Branch Workflow가 바로 이런 방식으로 작동합니다. 각각의 새로운 기능은 격리된 환경에서 개발됩니다. 이 접근 방식은 팀이 동시에 여러 작업을 수행하면서도 메인 코드에 혼란을 주지 않도록 해줍니다. 메인 브랜치가 안정적으로 유지된다는 확신을 가지고 자유롭게 실험할 수 있습니다. 특히 속도와 유연성이 중요한 소규모 팀에 잘 맞습니다. 기능이 완료되면 코드 리뷰를 거친 후에야 메인 코드에 병합됩니다. 단순함과 효율성, 이것이 이 접근 방식을 인기 있게 만드는 이유입니다.
feature 브랜치의 생명주기
- git checkout -b feature/new-payment
- 명확한 메시지와 함께 커밋
- git push origin feature/new-payment
- pull request 생성
- 코드 리뷰 후 main에 병합
feature 브랜치가 생성부터 병합까지의 전체 과정을 살펴보겠습니다. 먼저 git checkout -b feature/new-payment 명령어로 main에서 새 브랜치를 만듭니다. 작업을 진행하면서 변경 사항을 명확하고 상세하게 설명하는 커밋을 작성합니다. 기능이 완료되면 브랜치를 원격 저장소에 푸시하고 pull request를 생성합니다. 동료들이 코드를 검토하고 의견을 남기면, 모든 수정 사항이 반영된 후에 변경 사항이 메인 브랜치에 병합됩니다. 중요한 규칙은 하나의 브랜치에 하나의 논리적으로 완결된 작업만 담는 것입니다. 이렇게 하면 커밋 기록을 깔끔하게 유지할 수 있습니다.
# main 브랜치에서 새 브랜치 생성
git checkout main
git pull origin main
git checkout -b feature/new-payment
# 작업하고 커밋하기
echo 'Add payment processing' > payment.js
git add payment.js
git commit -m '결제 처리 모듈 추가'
# 푸시하고 PR 생성하기
git push origin feature/new-payment
# 그 다음 GitHub UI를 통해 Pull Request 생성
2개의 명령어로 feature 브랜치 생성하기
- Feature Branch Workflow — 단순함과 효율성
- 최신 main 브랜치에서 브랜치 생성
- git checkout -b feature/new-login
- 브랜치 이름은 작업 내용을 반영
- feature/, fix/, docs/ 접두사로 명확성 확보
실제로 feature 브랜치를 만들어 보겠습니다. 먼저 메인 브랜치로 전환하고 업데이트합니다: git checkout main && git pull. 이제 작업을 위한 새 브랜치를 만듭니다: git checkout -b feature/new-login. -b 플래그는 Git에게 새 브랜치를 만들고 바로 전환하라고 지시합니다. 단 두 개의 명령어면 작업을 시작할 준비가 됩니다. 브랜치 이름이 작업의 내용을 반영하는지 확인하세요. feature/, fix/, docs/ 등의 접두사를 시작에 붙이면 브랜치의 목적을 빠르게 파악할 수 있습니다. 이제 변경 작업을 시작할 수 있습니다.
git checkout main && git pull
# 메인 브랜치 업데이트
git checkout -b feature/new-login
# 새 브랜치 생성 및 전환
Buong leksyon ay para sa subscription
31 pang slide sa buong bersyon.
Mabubuksan ang video, lahat ng slide, tala, pagsusulit, AI tutor, at interview pagkatapos mag-sign in at mag-subscribe.
Mag-sign in o magparehistro Mag-subscribeNilalaman ng leksyon
- 왜 Feature Branch Workflow일까?
- feature 브랜치의 생명주기
- 2개의 명령어로 feature 브랜치 생성하기
- 변경 사항을 리뷰에 보내기
- 코드 리뷰 통과 및 병합하기
- Git Flow: 개발을 위한 컨베이어 벨트
- Feature 브랜치와 릴리스 준비
- 긴급 수정: Hotfix 활용하기
- 실습: feature 브랜치 생성
- 프로젝트에서 Git Flow 시작하기
- 새 기능 개발: 브랜치 생성부터 병합까지
- 릴리스 준비: 변경 사항 패키징
- 긴급 수정: Hotfix 실전 적용
- Trunk-Based Development: 접근 방식의 핵심
- TBD에서 미완성 기능 처리 방법
- 실전: main 브랜치에 자주 커밋하기
- Trunk-Based Development 선택 시점
- 실수 1: 소규모 팀에서의 Git Flow
- 실수 2: 코드 리뷰 없는 Trunk-Based
- 실수 3: 장기간 유지되는 feature 브랜치
- 올바른 워크플로우 선택 방법
- Git 프로세스 선택: 핵심 기준
- Feature Branch: 스타트업을 위한 시내 주행용 자동차
- Git Flow: 대규모 팀을 위한 견고한 시스템
- Trunk-Based: 빠른 배포를 위한 고성능 시스템
- 현재 Git 프로세스 분석: Git Flow의 문제점
- 마이그레이션 계획: Git Flow에서 더 간단한 프로세스로 전환
- 팀에 TBD 새로운 관행 교육
- 실습: 기능 브랜치를 TBD로 마이그레이션
- 면접에서 Workflow에 대해 말하는 방법
- 문제 및 해결 사례 예시
- 프로세스에 변경 사항을 적용하는 방법
- 면접에서 하지 말아야 할 말
- 우리의 길을 선택하다: 요약 및 과제
Mga artikulo tungkol sa araling ito
- Git merge vs rebase: alin ang piliin para sa team ninyo
- Mga tanong tungkol sa Git sa job interview: 25 tanong na may sagot
- Git Flow, GitHub Flow, at trunk-based: aling Git workflow ang piliin
- Git at GitHub: ano ang pagkakaiba at paano sila magkaugnay
- Paano mag-install ng Git sa Windows, macOS, at Linux
Lahat ng leksyon ng kurso
- 소개: 완전 초보에서 자신 있는 개발자로 성장하기 위한 Git
- Git가 왜 필요한가? — 취업에 왜 필수인가
- Git 설치 및 설정: 첫 실행을 위한 준비
- 첫 번째 저장소: init, add, commit과 인덱스의 마법
- 히스토리 읽기: log, diff, show 및 과거 탐색
- 브랜치: 코드의 평행 현실
- 오류 취소하기: restore, reset, revert — 올바른 방법과 위험한 방법
- GitHub 및 원격 저장소: 클라우드에 코드 저장하기
- 팀워크: 포크, 기능 브랜치 및 풀 리퀘스트
- 병합 충돌: 당황하지 말고 이해하고 해결하기
- 실제 팀의 Git 프로세스: 어떤 워크플로우를 선택할까
- 고급 도구: 리베이스, 스태시, 체리픽 및 태그
- 최종 프로젝트: 실제 팀 개발 시뮬레이션