Git 신입 기술면접

Git 신입 · 취준 (0~1년) 프레임워크 3문항 조회수 23 · 2026-08-13 (목) 17:40:36
1 Git 기본 개념
Easy

Q. Git의 세 가지 영역인 Working Directory, Staging Area, Repository에 대해 설명하고, 각 영역 간 파일이 어떻게 이동하는지 설명해주세요.

git add와 git commit 명령어가 파일을 어느 영역으로 이동시키는지 생각해보세요.

A. 모범답안

Working Directory는 실제 작업 중인 파일들이 있는 영역입니다. Staging Area(Index)는 다음 커밋에 포함될 변경사항을 준비하는 임시 영역입니다. Repository는 커밋된 변경사항이 영구적으로 저장되는 영역입니다. 파일 수정 후 'git add' 명령어로 Working Directory의 변경사항을 Staging Area로 이동시키고, 'git commit' 명령어로 Staging Area의 내용을 Repository에 저장합니다. 이러한 3단계 구조 덕분에 커밋할 변경사항을 선택적으로 관리할 수 있습니다.

핵심 포인트
  • • Working Directory는 작업 중인 파일 영역
  • • Staging Area는 커밋 준비 영역
  • • Repository는 커밋 저장소
  • • git add로 Staging으로, git commit으로 Repository로 이동
답변에 넣으면 좋은 키워드
Working Directory Staging Area Index Repository git add git commit
실무에서는

코드 리뷰를 위해 논리적으로 관련된 변경사항만 묶어서 커밋할 때 Staging Area를 활용합니다.

Follow-up 질문

특정 파일의 일부 변경사항만 Staging Area에 추가하고 싶다면 어떤 명령어를 사용하면 될까요?

2 브랜치 전략
Medium

Q. Git에서 브랜치(branch)가 무엇인지 설명하고, 새로운 기능을 개발할 때 main 브랜치에서 직접 작업하지 않고 별도의 브랜치를 만들어 작업하는 이유를 설명해주세요.

여러 개발자가 동시에 작업할 때와 안정적인 코드 유지 관점에서 생각해보세요.

A. 모범답안

브랜치는 독립적인 작업 공간으로, 특정 커밋을 가리키는 포인터입니다. 별도 브랜치를 만들어 작업하는 이유는 첫째, main 브랜치의 안정성을 유지하기 위함입니다. 개발 중인 불완전한 코드가 main에 섞이지 않습니다. 둘째, 여러 기능을 동시에 개발할 수 있습니다. 각 개발자가 독립적으로 작업하고 완료 후 병합할 수 있습니다. 셋째, 문제 발생 시 해당 브랜치만 삭제하거나 롤백하면 되므로 위험을 격리할 수 있습니다. 넷째, 코드 리뷰와 테스트를 거친 후 병합하는 협업 프로세스를 구축할 수 있습니다.

핵심 포인트
  • • 브랜치는 독립적인 작업 공간
  • • main 브랜치의 안정성 유지
  • • 동시 다발적인 기능 개발 가능
  • • 위험 격리 및 협업 프로세스 구축
답변에 넣으면 좋은 키워드
브랜치 main feature branch 병합 독립적 작업 안정성
실무에서는

팀 프로젝트에서 각 개발자가 feature 브랜치를 만들어 작업하고 Pull Request를 통해 코드 리뷰 후 main에 병합하는 방식으로 협업합니다.

Follow-up 질문

feature 브랜치에서 작업 중 main 브랜치의 최신 변경사항을 가져와야 할 때 merge와 rebase 중 어떤 방식을 선호하시나요? 그 이유는 무엇인가요?

3 충돌 해결
Medium

Q. Git에서 merge conflict(병합 충돌)가 발생하는 원인과 이를 해결하는 기본적인 과정을 설명해주세요.

같은 파일의 같은 부분을 서로 다르게 수정했을 때를 생각해보세요.

A. 모범답안

Merge conflict는 두 브랜치가 같은 파일의 같은 위치를 서로 다르게 수정했을 때 Git이 자동으로 병합할 수 없어 발생합니다. 해결 과정은 먼저 'git status' 명령어로 충돌이 발생한 파일을 확인합니다. 충돌 파일을 열면 '<<<<<<<', '=======', '>>>>>>>' 마커로 구분된 충돌 영역을 볼 수 있습니다. 개발자가 직접 코드를 검토하여 어떤 변경사항을 유지할지 결정하고 마커를 제거한 후 최종 코드로 수정합니다. 수정 완료 후 'git add'로 충돌 해결을 표시하고 'git commit'으로 병합을 완료합니다. 필요시 팀원과 소통하여 어떤 코드를 유지할지 협의하는 것이 중요합니다.

핵심 포인트
  • • 같은 파일의 같은 위치를 다르게 수정했을 때 발생
  • • 충돌 마커로 구분된 영역 확인
  • • 수동으로 코드 선택 및 수정
  • • git add와 git commit으로 해결 완료
답변에 넣으면 좋은 키워드
merge conflict 충돌 마커 git status git add 병합
실무에서는

여러 개발자가 동시에 같은 기능을 수정하거나 main 브랜치를 오랫동안 병합하지 않았을 때 충돌이 자주 발생하며, 이를 해결하는 능력이 필수적입니다.

Follow-up 질문

충돌을 최소화하기 위해 팀에서 사용할 수 있는 협업 방법이나 전략에는 어떤 것들이 있을까요?

댓글 0

로그인 후 댓글을 작성할 수 있습니다.

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!