Git 리드·아키텍트 배포·운영 기술면접

Git 리드 · 아키텍트 (10년+) 배포 · 운영 5문항 조회수 34 · 2026-08-04 (화) 15:11:32
1 Git 브랜칭 전략 및 CI/CD
Hard

Q. 대규모 마이크로서비스 환경에서 100명 이상의 개발자가 동시에 작업하는 상황입니다. Git Flow, GitHub Flow, Trunk-Based Development 중 어떤 전략을 선택하시겠습니까? 각 전략의 CI/CD 파이프라인 구성 차이와 함께 선택 이유를 설명해주세요.

배포 빈도, 브랜치 수명, 머지 복잡도, 자동화 수준을 고려해보세요.

A. 모범답안

Trunk-Based Development를 선택하겠습니다. 대규모 조직에서는 장수명 브랜치가 많아질수록 머지 충돌과 통합 지연이 기하급수적으로 증가합니다. Trunk-Based에서는 개발자들이 main 브랜치에 최소 하루 1회 이상 커밋하며, Feature Flag를 통해 미완성 기능을 숨깁니다. CI 파이프라인은 모든 커밋마다 자동 테스트를 실행하고, CD는 main 브랜치의 모든 커밋을 프로덕션까지 자동 배포합니다. Git Flow는 릴리즈 주기가 긴 패키지 소프트웨어에 적합하지만, 빠른 배포가 필요한 마이크로서비스에는 브랜치 관리 오버헤드가 큽니다. GitHub Flow는 중간 규모에 적합하지만, 100명 이상 환경에서는 PR 리뷰 병목이 발생할 수 있습니다.

핵심 포인트
  • • Trunk-Based Development 선택 및 근거
  • • Feature Flag를 통한 미완성 기능 관리
  • • 각 전략별 CI/CD 파이프라인 구성 차이 이해
  • • 대규모 조직에서의 브랜치 관리 복잡도 인식
답변에 넣으면 좋은 키워드
Trunk-Based Development Feature Flag 머지 충돌 CI/CD 파이프라인 브랜치 전략 배포 자동화
실무에서는

Google, Facebook 등 대규모 테크 기업들이 하루 수천 건의 배포를 안전하게 수행하는 브랜칭 전략 설계 시 활용됩니다.

Follow-up 질문

Feature Flag 시스템을 도입할 때 기술 부채가 쌓이는 것을 어떻게 방지하시겠습니까?

2 Git 기반 무중단 배포 전략
Hard

Q. Git 태그를 활용한 Blue-Green 배포 시스템을 구축 중입니다. 배포 중 데이터베이스 스키마 변경이 필요한 상황에서, 롤백 시 데이터 정합성을 보장하는 배포 전략과 Git 워크플로우를 설계해주세요.

스키마 변경의 호환성과 배포 단계를 분리하는 방법을 생각해보세요.

A. 모범답안

Expand-Contract 패턴을 적용한 3단계 배포 전략을 사용합니다. 1단계(Expand)에서는 새 컬럼을 추가하되 기존 코드와 호환되도록 nullable로 생성하고, 이를 migration-v1 태그로 표시합니다. 2단계에서는 애플리케이션 코드를 배포하여 신구 컬럼 모두에 데이터를 쓰도록 하며, release-v2 태그를 생성합니다. Blue-Green 스위칭은 이 단계에서 수행하고, 문제 발생 시 트래픽만 이전 환경으로 되돌립니다. 3단계(Contract)에서는 충분한 모니터링 후 구 컬럼을 제거하며, migration-v2 태그로 표시합니다. Git 워크플로우는 각 단계마다 별도 PR과 태그를 생성하고, CI/CD 파이프라인에서 태그 패턴에 따라 마이그레이션과 배포를 자동화합니다. 롤백 시에는 release 태그만 되돌리고 스키마는 그대로 유지하여 데이터 손실을 방지합니다.

핵심 포인트
  • • Expand-Contract 패턴을 통한 호환 가능한 스키마 변경
  • • 각 단계별 Git 태그 전략 및 롤백 시나리오
  • • Blue-Green 배포와 데이터베이스 마이그레이션 분리
  • • CI/CD 파이프라인에서 태그 기반 자동화
답변에 넣으면 좋은 키워드
Expand-Contract Blue-Green 배포 스키마 마이그레이션 Git 태그 롤백 전략 데이터 정합성
실무에서는

대규모 트래픽 서비스에서 무중단으로 데이터베이스 스키마를 변경하면서도 언제든 롤백 가능한 배포 시스템 구축 시 필수적입니다.

Follow-up 질문

마이크로서비스 환경에서 여러 서비스가 동일한 데이터베이스를 공유할 때 이 전략을 어떻게 조정하시겠습니까?

3 Git 모노레포 및 CI/CD 최적화
Hard

Q. 50개 이상의 마이크로서비스를 포함한 모노레포 환경에서 Git 커밋 시 변경된 서비스만 선택적으로 빌드하고 배포하는 CI/CD 파이프라인을 설계해야 합니다. 어떤 전략과 도구를 사용하시겠으며, 의존성 그래프를 어떻게 관리하시겠습니까?

Git diff를 활용한 변경 감지와 서비스 간 의존성 추적을 고려해보세요.

A. 모범답안

Git diff를 활용한 Affected Service Detection과 의존성 그래프 기반 빌드 전략을 사용합니다. 먼저 각 서비스의 루트 디렉토리에 package.json 또는 service.yaml로 의존성을 명시하고, Nx나 Turborepo 같은 모노레포 도구로 의존성 그래프를 구축합니다. CI 파이프라인에서는 'git diff HEAD~1 --name-only'로 변경된 파일 목록을 추출하고, 영향받는 서비스와 그에 의존하는 모든 downstream 서비스를 식별합니다. 공유 라이브러리 변경 시에는 의존하는 모든 서비스를 빌드하되, 캐싱을 활용해 중복 빌드를 방지합니다. 각 서비스별로 독립적인 Docker 이미지를 빌드하고, Git 커밋 SHA를 이미지 태그로 사용하여 추적성을 확보합니다. 배포는 Kubernetes의 Argo CD를 사용해 GitOps 방식으로 자동화하며, 각 서비스의 배포 상태를 Git 히스토리로 추적합니다.

핵심 포인트
  • • Git diff 기반 변경 감지 및 영향 분석
  • • 의존성 그래프를 통한 선택적 빌드
  • • 모노레포 도구(Nx, Turborepo) 활용
  • • Git 커밋 SHA 기반 이미지 태깅 및 추적성
답변에 넣으면 좋은 키워드
모노레포 Git diff 의존성 그래프 선택적 빌드 Nx GitOps Argo CD
실무에서는

Google, Uber 등 대규모 모노레포 환경에서 빌드 시간을 최소화하고 불필요한 배포를 방지하는 CI/CD 최적화에 활용됩니다.

Follow-up 질문

공유 라이브러리의 breaking change를 안전하게 배포하기 위한 전략은 무엇입니까?

4 Git 기반 롤백 및 장애 대응
Medium

Q. 프로덕션 배포 후 심각한 버그가 발견되어 긴급 롤백이 필요한 상황입니다. Git revert와 이전 커밋으로의 직접 배포 중 어떤 방법을 선택하시겠으며, 각 방법의 장단점과 함께 롤백 후 핫픽스 배포 전략을 설명해주세요.

Git 히스토리 보존과 재배포 가능성을 함께 고려해보세요.

A. 모범답안

Git revert를 사용한 롤백을 선택합니다. 이전 커밋으로 직접 배포하는 방법은 빠르지만 Git 히스토리에 롤백 기록이 남지 않아 추적성이 떨어지고, 이후 정상 배포 시 이미 배포된 커밋을 다시 푸시해야 하는 혼란이 발생합니다. Git revert는 문제가 된 커밋을 되돌리는 새로운 커밋을 생성하여 히스토리를 보존하고, CI/CD 파이프라인이 정상적으로 동작합니다. 롤백 후에는 revert된 상태에서 새로운 브랜치를 생성하여 핫픽스를 작업하고, 수정이 완료되면 revert 커밋을 다시 revert하여 원래 기능을 복원한 뒤 핫픽스를 적용합니다. 모든 과정은 태그로 표시하여 각 배포 시점을 명확히 추적할 수 있도록 합니다. 롤백 프로세스는 Runbook으로 문서화하고 정기적으로 훈련하여 장애 대응 시간을 최소화합니다.

핵심 포인트
  • • Git revert를 통한 히스토리 보존형 롤백
  • • 롤백과 핫픽스 배포의 체계적인 워크플로우
  • • Git 태그를 활용한 배포 시점 추적
  • • Runbook 기반 롤백 프로세스 표준화
답변에 넣으면 좋은 키워드
Git revert 롤백 전략 핫픽스 Git 히스토리 배포 추적성 Runbook
실무에서는

프로덕션 장애 발생 시 신속하고 안전하게 시스템을 이전 안정 상태로 복구하는 표준 운영 절차에 활용됩니다.

Follow-up 질문

데이터베이스 마이그레이션이 포함된 배포를 롤백할 때 추가로 고려해야 할 사항은 무엇입니까?

5 Git 기반 배포 모니터링 및 감사
Medium

Q. 규제 산업에서 모든 프로덕션 배포에 대한 감사 추적(audit trail)이 필수입니다. Git 커밋부터 실제 배포까지의 전체 과정을 추적하고, 누가 언제 무엇을 배포했는지 증명할 수 있는 시스템을 설계해주세요.

Git의 서명 기능과 배포 승인 프로세스를 함께 생각해보세요.

A. 모범답안

Git의 GPG 서명과 GitOps를 결합한 감사 추적 시스템을 구축합니다. 모든 개발자는 GPG 키로 커밋에 서명하고, Git 서버는 서명되지 않은 커밋을 거부하도록 설정합니다. 배포 승인은 Git 저장소의 별도 브랜치나 파일(예: deployments/production.yaml)에 대한 PR로 관리하며, 승인자의 서명된 머지 커밋이 배포 권한을 증명합니다. CI/CD 파이프라인은 배포 시 커밋 SHA, 타임스탬프, 배포자 정보, GPG 서명을 포함한 메타데이터를 불변 저장소(예: S3, Elasticsearch)에 기록합니다. Kubernetes 환경에서는 Argo CD의 Application 리소스가 Git 커밋과 1:1 매핑되어 배포 상태를 추적합니다. 정기적으로 Git 히스토리와 실제 프로덕션 상태를 비교하는 drift detection을 수행하여 수동 변경을 탐지하고, 모든 감사 로그는 WORM(Write Once Read Many) 스토리지에 보관하여 변조를 방지합니다.

핵심 포인트
  • • GPG 서명을 통한 커밋 및 배포 승인 검증
  • • GitOps 기반 배포 상태 추적
  • • 불변 저장소를 활용한 감사 로그 보존
  • • Drift detection을 통한 수동 변경 탐지
답변에 넣으면 좋은 키워드
GPG 서명 감사 추적 GitOps 배포 승인 불변 저장소 drift detection
실무에서는

금융, 헬스케어 등 규제 산업에서 SOC 2, ISO 27001 인증을 위한 배포 이력 관리 및 컴플라이언스 입증에 필수적입니다.

Follow-up 질문

개발자의 GPG 키가 유출되었을 때 어떤 대응 절차를 수립하시겠습니까?

댓글 0

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

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