소프트 스킬 · 심화
모노레포(Monorepo)와 멀티레포(Multi-repo)의 차이와 장단점을 설명해주세요.
힌트 · 코드 공유 용이성, 빌드 복잡도, CI/CD 전략, Turborepo/Nx 등 툴링 필요성을 비교해보세요.
코드 공유의존성 관리빌드/테스트가시성협업
모범답안
면접관님, 모노레포와 멀티레포는 코드 관리 방식의 차이입니다. 모노레포는 하나의 저장소에 모든 프로젝트 코드를 담는 방식이고, 멀티레포는 각 프로젝트마다 별도의 저장소를 사용하는 방식입니다.
모노레포의 장점은 코드 공유와 재사용이 용이하고, 의존성 관리가 편리하며, 전체 프로젝트에 대한 가시성이 높다는 점입니다. 단점으로는 저장소 크기가 커지고, 빌드 및 테스트 시간이 길어질 수 있으며, 특정 부분만 수정해도 전체 빌드를 해야 할 수도 있다는 점입니다. Turborepo나 Nx 같은 도구를 사용하면 이러한 단점을 어느 정도 해소할 수 있습니다.
반면, 멀티레포는 각 프로젝트가 독립적이어서 빌드 및 테스트 속도가 빠르고, 권한 관리가 용이하다는 장점이 있습니다. 하지만 코드 공유가 어렵고, 의존성 관리가 복잡해지며, 프로젝트 간 변경 사항 추적이 어렵다는 단점이 있습니다.
어떤 방식을 선택할지는 프로젝트의 규모, 팀 구성, 개발 문화 등을 고려하여 결정해야 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Git / 협업 면접 질문
- Git에서 충돌(Conflict)이 발생하는 상황과 해결 방법을 설명해주세요.
- git tag와 Release 관리 방법을 설명해주세요.
- git bisect를 이용한 버그 원인 커밋 찾기 방법을 설명해주세요.
- Trunk-based Development란 무엇이며, Git Flow와 어떻게 다른가요?
- GitHub Actions를 이용한 CI/CD 파이프라인 구성 방법을 설명해주세요.
- Git의 객체 데이터베이스를 구성하는 blob, tree, commit 객체가 각각 무엇을 저장하며 서로 어떻게 참조하는지 설명해주세요. 동일한 내용의 파일이 여러 디렉터리에 존재할 때 blob 객체는 어떻게 처리되나요?