핵심 인사이트 (3줄 요약)
- 본질: 멀티 테넌시(Multi-tenancy)는 단일 소프트웨어 인스턴스로 여러 고객(Tenant)에게 서비스를 제공하면서, 각 고객의 데이터와 설정을 완벽하게 격리하는 아키텍처다.
- 가치: 인프라 자원을 공유하여 운영 비용을 획기적으로 낮추고, 중앙 집중식 업데이트를 통해 모든 고객에게 동시에 최신 기능을 제공할 수 있다.
- 판단 포인트: 보안 요구사항에 따라 데이터를 테넌트 ID로 구분할지(공유 스키마), 논리적 공간을 나눌지(별도 스키마), 물리적 DB를 분리할지 결정해야 한다.
Ⅰ. 개요 및 필요성
SaaS(Software as a Service) 기업이 성공하려면 수천 명의 고객을 효율적으로 관리해야 한다. 고객마다 별도의 서버와 DB를 구축해주는 '싱글 테넌시' 방식은 비용이 너무 많이 들고 업데이트도 어렵다. 멀티 테넌시는 하나의 큰 시스템을 지어놓고 고객들이 방(Tenant)만 나누어 쓰게 함으로써 '규모의 경제'를 실현한다. 이를 통해 기업은 낮은 구독료로 서비스를 제공할 수 있고, 단 한 번의 배포로 모든 고객의 버전을 최신으로 유지할 수 있다.
📢 섹션 요약 비유: 멀티 테넌시는 '아파트 시스템'이다. 엘리베이터와 계단(인프라)은 같이 쓰지만, 각 집(테넌트)의 현관문은 따로 있고 안의 물건은 절대 섞이지 않는 것과 같다.
Ⅱ. 아키텍처 및 핵심 원리
데이터 격리 (Data Isolation) 3단계 전략
- Shared Database, Shared Schema:
- 모든 고객의 데이터를 하나의 테이블에 넣고
Tenant_ID컬럼으로 구분한다. - 장점: 비용이 가장 저렴하고 확장이 쉬움. 단점: 보안 사고 시 전 고객 데이터 노출 위험.
- 모든 고객의 데이터를 하나의 테이블에 넣고
- Shared Database, Separate Schema:
- DB 서버는 같지만 고객별로 스키마(논리적 공간)를 분리한다.
- 장점: 데이터 섞임 방지, 적절한 성능 보장.
- Separate Database:
- 고객별로 물리적으로 다른 DB 서버를 사용한다.
- 장점: 최고의 보안과 성능 격리. 단점: 관리 비용이 매우 높음.
핵심 해결 과제: Noisy Neighbor
특정 고객이 시스템 자원을 과도하게 사용해 다른 고객의 서비스 속도가 느려지는 현상이다. 이를 막기 위해 테넌트별 자원 할당량(Quota) 제한과 속도 제한(Throttling) 기술이 필수적이다.
📢 섹션 요약 비유: 격리 전략은 '창고 공유 방식'과 같다. 한 상자에 칸막이만 친 것(공유 스키마)부터, 각자 개인 금고를 가진 것(별도 DB)까지 고객의 중요도에 따라 선택할 수 있다.
Ⅲ. 비교 및 연결
싱글 테넌트 vs 멀티 테넌트
| 비교 항목 | 싱글 테넌트 (On-premise형) | 멀티 테넌트 (Modern SaaS형) |
|---|---|---|
| 운영 및 관리 | 고객별 개별 업데이트 (복잡) | 중앙 통합 업데이트 (단순) |
| 초기 도입 비용 | 매우 높음 (서버 구축 필수) | 낮음 (가입 즉시 사용) |
| 보안성 | 물리적 격리로 매우 높음 | 논리적 격리 기술에 의존 |
| 확장성 | 서버 추가 증설 필요 (느림) | 자원 풀 공유로 신속한 확장 |
📢 섹션 요약 비유: 싱글 테넌트는 '단독 주택'이고, 멀티 테넌트는 '호텔'이다. 호텔은 방마다 손님이 다르지만 건물 관리와 청소는 호텔 주인이 한 번에 효율적으로 처리한다.
Ⅳ. 실무 적용 및 기술사 판단
기술사 핵심 포인트:
- 커스터마이징 전략: 소스 코드는 공유하되, 테넌트별 설정(Configuration) 값을 통해 기능 활성화나 UI 로고 등을 다르게 보여주는 메타데이터 기반 아키텍처가 핵심이다.
- 보안 및 규제: 금융이나 공공기관 고객은 별도 DB 방식(Tiering)을 요구하는 경우가 많으므로 하이브리드 전략을 준비해야 한다.
- 오토스케일링: 테넌트 유입에 따라 인프라가 자동으로 늘어나는 프로비저닝 자동화가 SaaS의 수익성을 결정한다.
📢 섹션 요약 비유: 멀티 테넌시는 '규모의 경제'를 실현하는 도구다. 자원을 쪼개 써서 비용은 낮추고, 관리 효율은 극대화하여 서비스의 경쟁력을 높인다.
Ⅴ. 기대효과 및 결론
멀티 테넌시 아키텍처는 클라우드 네이티브 소프트웨어의 근간이다. 고객에게는 저렴하고 편리한 서비스를, 기업에게는 높은 마진과 관리의 편의성을 제공한다. 기술사 시험에서는 단순한 공유를 넘어, 'Noisy Neighbor' 해결 방안과 테넌트별 데이터 격리 기법의 장단점을 비교 논술하는 것이 SaaS 전문가로서의 역량을 보여주는 포인트다.
📢 섹션 요약 비유: 멀티 테넌시는 IT 세상의 '셰어하우스'다. 거실은 같이 쓰지만 내 방은 나만 쓸 수 있게 완벽하게 나누는 지혜로운 거주 방식이다.
📌 관련 개념 맵
| 개념 | 연관 키워드 | 관계 |
|---|---|---|
| Tenant ID | 데이터 식별자, 컬럼 | 공유 DB 방식에서 고객을 구분하는 유일한 키 |
| Noisy Neighbor | 자원 독점, 성능 간섭 | 멀티 테넌시에서 반드시 해결해야 할 부작용 |
| Provisioning | 자동 할당, 설정 적용 | 신규 테넌트 가입 시 환경을 자동으로 구성하는 기술 |
| Row-level Security | 행 단위 보안, 필터링 | DB 레벨에서 테넌트별 데이터 접근을 차단하는 기술 |
👶 어린이를 위한 3줄 비유 설명
- 하나의 큰 놀이터를 여러 유치원 아이들이 같이 쓰는데, 서로의 장난감은 섞이지 않게 잘 관리하는 거예요.
- 선생님(관리자)은 한 명이지만, 모든 아이를 동시에 효율적으로 돌봐줄 수 있어요.
- 돈을 조금만 내도 좋은 놀이터를 이용할 수 있게 해주는 아주 똑똑한 방법이에요.