![[기술 면접] 9. Database Replication이 무엇인가요? 1 Replication이 무엇인가요?](http://allhoneytip.com/wp-content/uploads/2023/09/제목을-입력해주세요__복사본-12-001-2-300x300-optimized.png)
저번 시간에 이어, 이번엔 Database Replication에 관련된 질문을 알아보겠습니다. 이번 시간은 이전 시간보다 조금 어려울 수 있습니다. 심화부분이라고 생각하고 숙지하시길 권해드립니다. 해당 면접 질문은 서비스 플랫폼 기업 K사와 L사에서 출제된 적이 있습니다.
![[기술 면접] 9. Database Replication이 무엇인가요? 2 image 9](http://allhoneytip.com/wp-content/uploads/2023/09/image-9-1024x586-optimized.png)
Q: Database Replication이 무엇인가요?
DB 복제를 의미하며 보통 Master 1개와 Slave N개의 형태로 구성합니다. Master, Slave DB 간에 데이터는 비동기로 동기화하는 특징이 있습니다.
Database Replication은 스케일 아웃으로 성능이 향상되고 데이터 백업도 가능하지만, 비동기로 동기화를 진행하기 때문에 Replication 지연이 존재하여 데이터 일관성이 깨질 수 있습니다.
Q: Replication 지연을 어떻게 해결하나요?
해결 방법을 세가지 말씀드리자면,
- 첫째로 밀리세컨드 단위의 지연을 인정하고 다시 시도하는 방법이 있습니다. 네트워크 문제나 리소스 부족으로 인해 발생하는 지연을 다루는 대표적인 방법이며, 원인이 해결된 이후 데이터 동기화를 진행합니다.
- 둘째로 캐싱을 활용합니다. 성능을 향상시킬 수 있지만, 캐시의 데이터 일관성을 별도로 관리해야합니다.
- 셋째로 지연 문제가 심각하다면, DB 시스템을 변경하는 것도 방법이 될 수 있습니다. 오라클 DB는 높은 가용성과 성능을 제공하는데, Replication과 클러스터링 기능을 내장하고 있어서 지연 문제를 효과적으로 관리할 수 있습니다.
Q: HA(고가용성)에 대해서 질문을 드리겠습니다. MySQL 한 대만 존재하는 것이 있을 것이고, 한 대는 Master, 한 대는 Slave로 동작하는 구조가 있습니다. 이러한 구조의 목적이 무엇인가요?
Master DB 수정 시에 Slave DB에 Replication을 시행합니다. 업데이트와 조회를 각각의 DB로 구분하여 수행하고 트래픽을 분산시킵니다.
Q: 앞에 말씀드린 구조에서 발생할 수 있는 문제점은 무엇인가요?
대규모 트래픽이 발생하면, Master DB가 Slave DB에 Replication 되기 전에 Slave DB가 사용되어, 데이터 무결성이 깨질 수 있습니다.
마치며
이번 시간에는 Database Replication에 대해 알아보았습니다.
다음 시간에는, JDBC와 관련된 면접 질문에 대해 알아보겠습니다.
![[기술 면접] 9. Database Replication이 무엇인가요? 3 image 10](http://allhoneytip.com/wp-content/uploads/2023/09/image-10-optimized.png)
답글 남기기