
📅 2025-11-17
➡️ Git 협업에 대해 새롭게 알게 된 것 또는 헷갈리는 부분 정리
| 명령어 | 설명 | 예시 |
|---|---|---|
git init | 현재 폴더를 Git 저장소로 초기화 | git init |
git add | 변경된 파일을 스테이징 영역에 추가 | git add . (전체 파일 추가) |
git commit | 스테이징 영역에 있는 변경사항을 커밋(버전)으로 확정 | git commit -m "feat: 로그인 로직 추가" |
git push | 로컬 저장소의 커밋을 원격 저장소로 업로드 | git push origin feature/login |
git pull | 원격 저장소의 최신 커밋을 로컬 저장소에 가져오고 병합( fetch + merge 를 합친 명령어) | git pull origin dev |
git merge | 다른 브랜치를 현재 브랜치에 병합(Merge Commit) | git merge feature/login |
git checkout | 특정 브랜치로 이동하거나, 특정 커밋 시점으로 이동 | git checkout dev |
git branch | 브랜치를 생성, 조회, 삭제 등에 사용 | git branch feature/login |
git rebase | 커밋 히스토리를 재정렬하여 깔끔하게 합치는 방법 ( 지금은 하지 마세요 ) | git rebase dev |
develop, feature, release, hotfix 등을 세분화일반적으로 나누는 브랜치
main, master) → 배포용병합 순서
기능 단위 별 브랜치 → 병합 → 디벨롭 브랜치 → 최종병합→ 마스터 브랜치
| 브랜치명 | 설명 | 예시 |
|---|---|---|
main | 배포용 브랜치 | main |
dev | 통합(개발)용 브랜치 | dev |
feature/ or feat/ | 기능 개발 브랜치 | feature/login |
bugfix/ or fix/ | 버그 수정 브랜치 | bugfix/nav-bar |
hotfix/ | 긴급 패치 브랜치 | hotfix/payment |
chore/ | 문서, 설정파일 변경 브랜치 | chore/update-readme |
docs/ | 문서 작업 브랜치 | docs/api-guide |
refactor/ | 리팩토링 브랜치 | refactor/homepage-ui |
권장하는 브랜치 관리 Flow

| 커밋 타입 | 설명 | 예시 메시지 |
|---|---|---|
feat | 새로운 기능 추가 | feat: 회원가입 로직 추가 |
fix | 버그 수정 | fix: 로그인 시 비밀번호 검증 오류 해결 |
docs | 문서 수정 | docs: README에 프로젝트 개요 추가 |
style | 코드 포맷팅, 세미콜론 누락 등; 코드 변경 없음 | style: ESLint 룰 적용 및 포맷 수정 |
refactor | 코드 리팩토링, 성능 개선 (기능 변경 없이 구조 개선) | refactor: 홈 화면 UI 로직 개선 |
test | 테스트 관련 코드(누락된 테스트 추가, 리팩토링 테스트 등) | test: 유닛 테스트 추가 |
chore | 빌드 업무, 패키지 매니저 설정, 기타 자잘한 수정 | chore: package.json 버전 업그레이드 |
팀에 따라
[이슈번호]등의 형식을 추가하기도 함
작은 단위로 PR 작성하기
feat/login-page 이런식으로 page 단위의 모든 기능들을 전부 다 한 PR 에 넣으려고 하면 리뷰가 불가능할 수준으로 작업 단위가 커지게 됨의미 있는 커밋으로 구성하기
feat: 로그인 화면 추가 → design: UI 컴포넌트 배치 수정 → fix: 로그인 오류 수정PR 템플릿 활용하기

feature, bugfix, hotfix 등Pending, Review in progress, Approved 등구현 의도 질문
“이 부분에서 이 로직(XYZ)을 선택하신 이유가 궁금합니다. 다른 방식(ABC)으로 구현하면 어떤 이점 혹은 단점이 있을까요?”
사용 라이브러리 질문
“이 라이브러리를 선택하신 이유가 있나요? 직접 구현같은 좀 더 가벼운 대안도 있는 것 같아서요.”
가정/전제 질문
“이 로직이 실행되기 전에 이미 유저 권한이 검증된 상태라는 전제를 가지고 계신 것 같은데, 맞을까요?”
코드 구조 개선
“이 함수가 하는 일이 조금 많은 것 같습니다. A 기능과 B 기능으로 나누면 더 가독성이 좋아질 것 같아요.”
성능 개선
“현재 매번 데이터베이스에 접근하는 로직인데, 캐싱을 도입하면 성능 면에서 이점이 있을 것 같습니다.”
로직 단순화
“여기에서 if-else가 계속 중첩되는데, early return을 쓰면 더 명확하고 짧아질 것 같아요.”
네이밍 개선
“handleData()보다 transformUserData()처럼 함수를 더 구체적으로 설명하는 이름은 어떨까요?”
타입 안전성/오류 처리
“유저 입력값이 null인 경우도 대비해야 할 것 같아요. 예외 처리를 추가해주세요.”
아이디어 칭찬
“이 부분은 좋네요! 배워갑니다~”
가독성 칭찬
“코드가 매우 깔끔하고 읽기 편하네요.”
복잡한 알고리즘/로직
“이 로직이 꽤 복잡한데, 주석을 추가해주실 수 있을까요?”
레거시 코드 맥락
“기존 제 코드 부분과 호환이 이뤄지는지 궁금합니다.”
서드파티 API 연동
“이거 API를 어떻게 호출하는지 조금 더 자세한 예시나 문서를 링크해주실 수 있을까요?”
문서/가이드 링크
“이 부분에서 공식 가이드는 이렇게 권장하고 있는데, 참고해보시면 좋을 것 같아요. 공식문서 링크”
관련 라이브러리 소개
“비슷한 기능을 하는 ABC라는 라이브러리가 있는데, 더 가벼울 수 있으니 한번 살펴보셔도 좋겠습니다.”
불필요한 주석/로그
“개발 과정의 디버깅 로그(console.log)와 주석(// 테스트)은 머지 전에 제거하는 게 좋겠습니다.”
포맷팅/린트
“ESLint 규칙에 따라 세미콜론을 붙여야 하는데, 자동화 설정이 안 되어 있는지 확인해주세요.”
팀 컨벤션 상기
“이런 경우에는 snake_case보다는 camelCase를 권장하고 있습니다. (컨벤션 링크) 확인 부탁드려요!”
“코딩 컨벤션에 따르면 함수 선언부는 윗줄에 작성하고, 변수는 const를 먼저 선언하도록 하고 있습니다. 수정 부탁드려요.”
머지 충돌 안내
“지금 dev 브랜치와 충돌이 발생했네요. 충돌 부분 확인 후 해결 부탁드립니다.”
머지 시점 확인
“이 PR은 이 PR(링크) 이 머지된 후에 머지하는 게 좋겠습니다. 순서가 바뀌면 기능이 깨질 수도 있어서요~ 트래킹 부탁드립니다.”
스크럼 이후 머지 제안
“내일 스크럼 때 관련 이슈를 한 번 더 논의하고 머지하면 어떨까요? 공유가 필요해 보입니다.”
LGTM(승인)
“LGTM! 특별히 문제 없어 보이고, 제안해주신 부분도 좋습니다.”
조건부 머지(Conditional)
“크게 문제는 없지만, 위에서 제안한 부분만 반영해주시면 머지 가능합니다!”
추가 리뷰 요청
“제가 로컬에서 테스트해봤는데 작동은 잘 됩니다. 혹시 다른 분들도 한 번씩 확인 부탁드려요.”
브랜치 전략
dev(통합) → main(배포)PR & 코드 리뷰
컨벤션 및 스타일 통일
Clean Code 습관