소프트 스킬 · 기초
Git의 객체 모델에서 blob, tree, commit 객체는 각각 무엇을 저장하나요?
힌트 · 파일 내용, 디렉터리 구조, 스냅샷 메타데이터를 각 객체가 어떻게 나눠 담는지 관점에서 접근하세요.
파일 내용디렉토리 구조커밋 정보
모범답안
Git의 객체 모델에서 각 객체는 데이터를 효율적으로 관리하기 위해 역할을 분담합니다.
먼저 blob 객체는 실제 파일의 내용을 저장합니다. 파일이 변경될 때마다 새로운 blob 객체가 생성되며, 파일의 내용 자체를 해시값으로 식별합니다.
tree 객체는 디렉터리 구조를 나타냅니다. 디렉터리 내의 파일(blob 객체)과 하위 디렉터리(다른 tree 객체)에 대한 정보를 담고 있으며, 각 항목은 이름과 해당 객체의 해시값으로 구성됩니다.
마지막으로 commit 객체는 특정 시점의 스냅샷 메타데이터를 저장합니다. 이전 커밋에 대한 참조, 작성자 정보, 커밋 메시지, 그리고 해당 커밋이 가리키는 루트 tree 객체의 해시값 등을 포함하여 프로젝트의 변경 이력을 기록합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Git / 협업 면접 질문
- 좋은 커밋 메시지 작성법과 Conventional Commits에 대해 설명해주세요.
- .gitignore 파일의 역할과 올바른 작성 방법을 설명해주세요.
- fork와 clone의 차이를 설명하고, 오픈소스 기여 시 fork 기반 워크플로우를 설명해주세요.
- Git에서 blob 객체는 파일 이름을 저장하지 않는다고 하는데, 그렇다면 파일 이름은 어디에 기록되나요?
- Git Merge, Rebase, Squash의 차이점과 각각의 사용 시나리오를 설명해주세요.
- Git Flow 브랜치 전략을 설명하고, GitHub Flow와 어떻게 다른지 비교해주세요.