면접 질문 대비 2 - Git

프망생·2025년 4월 27일

면접 질문 대비

목록 보기
2/2

Q) Git Master와 Main 브랜치의 차이점을 설명하세요.

A) 대표적은 VCS(Version Control System)인 Git에서는 주 브랜치로 'master' 브랜치를 사용했지만, Git 2.28 버전부터 주 브랜치를 'main' 브랜치로 변경하였다.

'Maser'라는 단어는 주종 관계와 같이 인종 차별적인 것으로 인식될 수 있어, 'Main'이라는 단어로 변경되었다. 그래서 Git 2.28 미만 버전에서는 'git config --global init.defaultBranch main' 명령어로 주 브랜치를 구성하거나, 프로젝트 단위로는 'git branch -m master main' 명령어로 주 브랜치를 변경할 수 있다.

Q) Git Flow 전략을 사용하는 이유와 주 브랜치에 대해 설명해 주세요.

A) Git Flow는 복잡한 프로젝트 개발에서 안전성과 효율성을 향상시키며 버전 관리를 하기 위한 브랜치 관리 전략을 말한다.

담당자에 따라 이름은 조금씩 다를 수 있지만, 주로 'main', 'dev', 'feature', 'release', 'hotfix'로 역할에 맞게 브랜치를 구분한다.

'main'은 실제 출시 제품의 브랜치이고, 'dev'는 여러 기능을 병합하는 등의 용도로 안전할 개발을 위해 사용하는 브랜치이다.

'feature'는 'feature/login', 'feature/board'와 같이 기능별 이름을 추가해 개발을 진행하는 브랜치이고 'release'는 출시 버전을 준비해 버저닝하는 브랜치이고, 'hotfix'는 긴급 버그 수정을 위해 사용하는 브랜치이다.

이렇게 각 브랜치를 역할에 맞게 엄격하게 사용해야 브랜치 간의 병합과 충돌을 최소화해서 프로젝트의 안정성과 효율성을 높일 수 있다.

Q) Git Merge와 GitHub Pull Request의 차이점을 설명하시오

A) Git Merge는 단순히 로컬 개발 환경에서 각 브랜치를 병합할 때 사용하는 명령으로, 발생하는 충돌을 직접 해결하기 쉽고 별도의 검토나 승인 없이 빠르게 병합할 수 있다.

반면 GitHub Pull Request는 원격 저장소에서 다른 개발자와의 협업을 위해 사용하는 기능으로, 병합 전에 코드 리뷰 등의 피드백을 받을 수 있어서 여러 개발자가 변경 사항을 검토하고 토론할 수 있으며, 프로젝트에 따라 관리자 승인이 필요할 수 있기 때문에 더 안전하게 코드를 병합하는 좀 더 구조화된 과정이다.

그래서 간단한 변경 사항의 브랜치 병합은 로컬에서 Git Merge 명령을 사용하고, 더 복잡한 변경 사항이나 협업을 위한 코드는 되도록 GitHub Pull Request 기능을 사용해서 병합을 하는 것이 좋다.

Q) Markdown 문법 중 코드 블록(Code Block)과 인라인 코드(Inline Code)의 차이점에 대해 설명하시오

A) 마크다운 문법에서 코드 블록은 주로 여러 줄의 코드 영역을 표시할 때 사용하는 기능으로, 백틱(`)기호를 연속으로 3개 사용해 코드의 시작과 끝을 표시한다.

또한 코드 블록은 ```html과 같이 작성 코드의 언어를 명시할 수도 있어서 코드의 가독성을 높이고 코드 하이라이팅을 적용할 수 있다.

인라인 코드는 한 줄의 코드 영역을 표시할 때 사용하는 기능으로 `div` 처럼 백틱 기호 1개씩 코드의 시작과 끝에 사용한다.

그래서 문장 안에서 코드 부분을 강조하는 용도로 사용한다.

profile
안녕하세요. 프론트엔드 지망생입니다.

0개의 댓글