패스잇
시스템 설계 · 심화

다중 테넌트(Multi-tenant) SaaS 애플리케이션을 위한 데이터베이스를 설계한다고 가정해 봅시다. 테넌트 데이터 격리 수준(개별 DB, 스키마, 테이블)에 따른 장단점을 설명하고, 각 방식이 데이터 보안, 성능, 확장성, 운영 복잡성에 미치는 영향에 대해 구체적인 설계 전략과 함께 논하시오.

힌트 · 테넌트별 DB, 스키마, 테이블 방식의 격리 수준을 비교하고, 각각의 구현 복잡성, 비용, 보안, 성능 특성을 고려해야 합니다. 샤딩 전략과 확장성을 함께 고려하는 것이 중요합니다.

데이터 격리스키마 분리성능 격차확장성 제약운영 오버헤드

모범답안

다중 테넌트 SaaS 데이터베이스 설계 시 데이터 격리 수준은 중요한 고려 사항입니다. 크게 개별 DB, 스키마 분리, 테이블 분리 방식이 있습니다.

개별 DB 방식은 가장 강력한 격리를 제공하지만, 리소스 사용률이 낮고 관리 복잡도가 높습니다. 스키마 분리는 격리 수준은 낮지만, DB 리소스 효율성이 높고 관리가 용이합니다. 테이블 분리는 구현이 간단하지만, 격리 수준이 가장 낮고, 쿼리 성능에 영향을 줄 수 있습니다.

데이터 보안을 위해서는 개별 DB가 가장 안전하지만, 비용이 많이 듭니다. 성능은 데이터 양과 쿼리 패턴에 따라 달라지는데, 스키마 분리 시 샤딩 전략을 통해 성능을 개선할 수 있습니다. 확장성은 개별 DB가 가장 유리하지만, 스키마 분리도 샤딩을 통해 충분히 확장 가능합니다. 운영 복잡성은 개별 DB가 가장 높고, 테이블 분리가 가장 낮습니다.

따라서, 보안 요구사항, 성능 요구사항, 비용, 운영 복잡성을 종합적으로 고려하여 적절한 격리 수준을 선택해야 합니다. 예를 들어, 높은 보안이 요구된다면 개별 DB를 선택하고, 비용 효율성이 중요하다면 스키마 분리를 선택할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 데이터베이스 설계 면접 질문

← 데이터베이스 설계 면접 질문 전체 보기