데이터베이스 시니어 배포·운영 기술면접

데이터베이스 이론 시니어 (7년+) 배포 · 운영 5문항 조회수 36 · 2026-08-04 (화) 13:30:34
1 무중단 배포
Hard

Q. 대규모 트래픽을 처리하는 서비스에서 데이터베이스 스키마 변경(테이블에 NOT NULL 컬럼 추가)을 무중단으로 배포해야 합니다. 어떤 전략과 단계로 진행하시겠습니까?

스키마 변경을 여러 단계로 나누고, 애플리케이션 코드와의 호환성을 고려해보세요.

A. 모범답안

무중단 스키마 변경은 최소 3단계로 진행합니다. 1단계에서는 NULL 허용 컬럼을 추가하고 애플리케이션을 배포하여 신규 데이터부터 값을 입력하도록 합니다. 2단계에서는 배치 작업으로 기존 레코드의 NULL 값을 채우되, 락 경합을 피하기 위해 작은 청크 단위로 UPDATE를 수행합니다. 3단계에서는 모든 데이터 마이그레이션이 완료된 후 ALTER TABLE로 NOT NULL 제약조건을 추가합니다. 각 단계 사이에는 모니터링 기간을 두어 문제 발생 시 롤백할 수 있도록 합니다. Blue-Green 배포나 Feature Flag를 활용하면 더욱 안전하게 진행할 수 있습니다.

핵심 포인트
  • • 스키마 변경을 여러 단계로 분리하여 점진적으로 적용
  • • 애플리케이션 코드와 스키마의 하위 호환성 유지
  • • 배치 작업 시 청크 단위 처리로 락 경합 최소화
  • • 각 단계마다 모니터링과 롤백 계획 수립
답변에 넣으면 좋은 키워드
무중단 배포 스키마 마이그레이션 하위 호환성 청크 단위 처리 Feature Flag 점진적 배포
실무에서는

대규모 서비스에서 테이블 구조 변경 시 서비스 중단 없이 안전하게 배포하는 상황

Follow-up 질문

만약 이 과정에서 레플리케이션 지연이 발생하여 읽기 전용 레플리카에서 일관성 문제가 생긴다면 어떻게 대응하시겠습니까?

2 모니터링
Hard

Q. 프로덕션 데이터베이스의 슬로우 쿼리가 갑자기 증가했습니다. 어떤 메트릭을 확인하고 어떤 순서로 원인을 진단하시겠습니까? 모니터링 시스템 구축 관점에서 설명해주세요.

데이터베이스 레이어뿐만 아니라 인프라, 애플리케이션 레이어까지 종합적으로 살펴보세요.

A. 모범답안

먼저 슬로우 쿼리 로그와 쿼리 실행 계획을 분석하여 어떤 쿼리가 느려졌는지 파악합니다. 동시에 CPU, 메모리, 디스크 I/O, 네트워크 대역폭 등 시스템 리소스 메트릭을 확인하여 인프라 병목을 확인합니다. Connection pool 사용률, Active connection 수, Lock wait time을 점검하여 동시성 이슈를 진단합니다. 캐시 히트율과 버퍼 풀 상태를 확인하여 메모리 부족 여부를 판단합니다. APM 도구로 애플리케이션 레벨의 트랜잭션 패턴 변화를 분석하고, 최근 배포나 트래픽 증가 이벤트와 상관관계를 찾습니다. 이를 위해 Prometheus, Grafana, Datadog 같은 통합 모니터링 스택과 알림 임계값 설정이 필수적입니다.

핵심 포인트
  • • 슬로우 쿼리 로그와 실행 계획 분석
  • • 시스템 리소스 메트릭(CPU, 메모리, I/O) 종합 확인
  • • Connection pool, Lock wait 등 동시성 메트릭 점검
  • • APM과 배포 이력 상관관계 분석
  • • 통합 모니터링 스택과 알림 체계 구축
답변에 넣으면 좋은 키워드
슬로우 쿼리 로그 실행 계획 시스템 메트릭 Connection pool APM Prometheus Grafana
실무에서는

서비스 응답 속도 저하 시 데이터베이스 성능 이슈를 신속하게 진단하고 대응하는 상황

Follow-up 질문

슬로우 쿼리 모니터링을 위한 적절한 알림 임계값은 어떻게 설정하시겠습니까? False positive를 줄이는 방법은 무엇인가요?

3 백업 및 복구
Hard

Q. 데이터베이스 백업 전략을 수립할 때 RTO와 RPO 요구사항이 각각 1시간, 5분인 금융 서비스가 있습니다. 어떤 백업 아키텍처와 복구 절차를 설계하시겠습니까?

여러 백업 방식을 조합하고, 복구 시간을 단축할 수 있는 아키텍처를 고려하세요.

A. 모범답안

RPO 5분을 만족하기 위해 바이너리 로그(또는 WAL) 기반 연속 백업과 Point-in-Time Recovery를 구성합니다. 물리 백업은 매일 전체 백업을 수행하고, 증분 백업을 매시간 실행하여 복구 시간을 단축합니다. RTO 1시간을 위해 Hot Standby 레플리카를 구성하여 장애 시 즉시 승격할 수 있도록 합니다. 백업 데이터는 다른 리전의 오브젝트 스토리지에 저장하여 재해 복구 시나리오에 대비합니다. 정기적으로(최소 월 1회) 복구 훈련을 수행하여 RTO 목표 달성 가능성을 검증하고, 복구 절차를 자동화 스크립트로 문서화합니다. 백업 무결성 검증을 위해 별도 환경에서 자동으로 복구 테스트를 수행하는 파이프라인을 구축합니다.

핵심 포인트
  • • 바이너리 로그 기반 연속 백업으로 RPO 5분 달성
  • • 전체 백업과 증분 백업 조합으로 복구 시간 단축
  • • Hot Standby 레플리카로 RTO 1시간 보장
  • • 크로스 리전 백업으로 재해 복구 대비
  • • 정기적인 복구 훈련과 자동화된 검증 프로세스
답변에 넣으면 좋은 키워드
RTO RPO Point-in-Time Recovery 증분 백업 Hot Standby 바이너리 로그 재해 복구
실무에서는

금융, 의료 등 데이터 손실과 서비스 중단이 치명적인 서비스의 백업 및 복구 전략 수립

Follow-up 질문

대용량 데이터베이스(수십 TB)의 경우 전체 백업 시간이 너무 오래 걸립니다. 어떤 최적화 방법을 사용하시겠습니까?

4 데이터베이스 마이그레이션
Hard

Q. 온프레미스 Oracle 데이터베이스를 클라우드 PostgreSQL로 마이그레이션하는 프로젝트를 리딩합니다. 무중단 마이그레이션을 위한 전략과 롤백 계획을 설명해주세요.

데이터 동기화, 애플리케이션 호환성, 트래픽 전환 단계를 순차적으로 고려하세요.

A. 모범답안

먼저 AWS DMS나 Debezium 같은 CDC 도구로 Oracle에서 PostgreSQL로 실시간 데이터 복제 파이프라인을 구축합니다. 스키마와 저장 프로시저는 사전에 변환하고, 애플리케이션 코드의 SQL 방언 차이를 수정합니다. Dual write 패턴으로 일정 기간 두 데이터베이스에 동시 쓰기를 수행하며 데이터 정합성을 검증합니다. 트래픽 전환은 Canary 배포 방식으로 진행하여 먼저 읽기 트래픽의 일부를 PostgreSQL로 라우팅하고, 문제가 없으면 점진적으로 비율을 높입니다. 롤백 계획으로는 DNS 또는 프록시 레벨에서 즉시 Oracle로 트래픽을 되돌릴 수 있도록 구성하고, 최소 2주간 Oracle 데이터베이스를 유지합니다. 마이그레이션 전후 성능 벤치마크를 수행하여 쿼리 응답 시간과 처리량을 비교 검증합니다.

핵심 포인트
  • • CDC 도구를 활용한 실시간 데이터 복제
  • • Dual write 패턴으로 데이터 정합성 검증
  • • Canary 배포 방식의 점진적 트래픽 전환
  • • 즉시 롤백 가능한 인프라 구성
  • • 성능 벤치마크를 통한 마이그레이션 검증
답변에 넣으면 좋은 키워드
CDC 데이터 마이그레이션 Dual write Canary 배포 데이터 정합성 DMS 롤백 계획
실무에서는

레거시 시스템을 클라우드로 전환하면서 서비스 중단 없이 데이터베이스를 마이그레이션하는 상황

Follow-up 질문

마이그레이션 중 두 데이터베이스 간 데이터 불일치가 발견되었습니다. 어떻게 원인을 파악하고 해결하시겠습니까?

5 장애 대응 및 복구
Hard

Q. 프로덕션 데이터베이스에서 잘못된 배치 작업으로 인해 대량의 데이터가 삭제되었습니다. 30분 전 시점으로 복구해야 하는데, 서비스는 계속 운영 중입니다. 어떻게 대응하시겠습니까?

전체 서비스를 중단하지 않고 특정 데이터만 복구하는 방법을 고려하세요.

A. 모범답안

먼저 잘못된 배치 작업을 즉시 중단하고 추가 피해를 막습니다. 별도의 임시 데이터베이스 인스턴스를 생성하여 백업에서 30분 전 시점으로 Point-in-Time Recovery를 수행합니다. 삭제된 데이터만 추출하는 SQL 쿼리를 작성하고, 복구된 임시 DB에서 프로덕션 DB로 선택적으로 데이터를 복원합니다. 이때 트랜잭션 로그를 분석하여 복구 시점 이후 정상적으로 발생한 변경사항은 유지되도록 주의합니다. 복구 전에 영향받은 테이블의 현재 상태를 덤프하여 롤백 포인트를 확보합니다. 복구 완료 후 데이터 정합성을 검증하고, 배치 작업에 대한 사전 검증 프로세스와 Dry-run 절차를 추가하여 재발을 방지합니다.

핵심 포인트
  • • 별도 인스턴스에서 PITR로 안전하게 복구
  • • 삭제된 데이터만 선택적으로 복원
  • • 트랜잭션 로그 분석으로 정상 변경사항 보존
  • • 복구 전 현재 상태 백업으로 롤백 포인트 확보
  • • 재발 방지를 위한 프로세스 개선
답변에 넣으면 좋은 키워드
Point-in-Time Recovery 선택적 복구 트랜잭션 로그 데이터 정합성 장애 대응 Dry-run
실무에서는

운영 중 발생한 데이터 손실 사고를 서비스 중단 없이 신속하게 복구하는 상황

Follow-up 질문

이런 휴먼 에러를 사전에 방지하기 위해 어떤 기술적, 프로세스적 안전장치를 마련하시겠습니까?

댓글 0

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

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