피드로 돌아가기
[SaaS] 병원향 B2B SaaS 제품에 도전합니다
강남언니 공식 블로그강남언니 공식 블로그
Backend

[SaaS] 병원향 B2B SaaS 제품에 도전합니다

힐링페이퍼가 Kubernetes 네임스페이스 기반 멀티테넌트 아키텍처로 병원향 SaaS 솔루션(KOS)을 구축해 테넌트 간 데이터 격리와 독립적 배포 지원

김윤혁2023년 8월 9일8intermediate

Context

강남언니 정보 플랫폼만으로는 병원 선택 이후의 예약, 대기, 고객 관리 영역에 개입하기 어려웠으며, 병원 운영자가 고객 접점에서 효율적인 의료 서비스 제공에 집중하지 못하고 있었다. 기존 방식으로는 빠른 배포, 안정성, 확장성을 동시에 만족할 수 없었기에 새로운 아키텍처가 필요했다.

Technical Solution

  • Kubernetes 네임스페이스 기반 멀티테넌트 구조 도입: 각 병원(테넌트)을 별도 네임스페이스에 배치해 물리적 네트워크와 개별 데이터베이스로 격리
  • Common 서비스와 Tenant 서비스 분리: 인증, 메타데이터 같은 공유 리소스는 Common 네임스페이스에 배치하고, 예약 서비스 등 병원별 독립 운영 서비스는 Tenant 네임스페이스에 배치
  • 이벤트 기반 비동기 처리 구조 채택: HTTP 호출 의존도를 줄이고 I/O 집약적, 병렬처리 중심 로직을 이벤트 소싱으로 구현
  • IDL(Interface Definition Language) 도입: 백엔드와 프론트엔드 간 통신 규약을 자동화해 개발 속도 향상
  • 마이크로프론트엔드 구조 적용: 복잡한 프론트엔드 프로젝트를 모듈화하고 독립 배포 가능하게 구성
  • 소켓 통신과 이벤트 소싱 기반 아키텍처: 다중 계정의 실시간 이벤트 추적과 데이터 변화 감지 요구사항 충족
  • 자체 배포 시스템 구축: 네임스페이스 생성, 제품 출시, 버전 업데이트 전 과정을 코드와 자동화로 관리
  • TDD 기반 개발: 도메인 로직 버그 가능성 최소화

Key Takeaway

Kubernetes 네임스페이스를 활용한 멀티테넌트 격리는 보안과 안정성을 제공하면서도 인프라 레벨 분기를 통해 선택적 기능 배포와 리소스 효율성을 동시에 달성할 수 있다. 이벤트 기반 비동기 처리와 도메인 기반 설계는 복잡한 병원 운영 도메인의 확장성을 확보하는 핵심 패턴이다.


병원, 클리닉 같은 엔터프라이즈 다중 고객을 지원하는 B2B SaaS 개발 조직에서 Kubernetes 네임스페이스 격리를 도입하면 테넌트 간 보안 침해 위험을 제거하면서 고객별 선택적 기능 배포와 인프라 리소스 낭비를 동시에 해결할 수 있다. IDL 기반 백엔드-프론트엔드 계약과 이벤트 소싱을 조합하면 복잡한 도메인 로직 변경 시 특정 고객 환경에만 신규 기능을 먼저 배포하는 A/B 테스트와 점진적 롤아웃이 가능해진다.

원문 읽기
[SaaS] 병원향 B2B SaaS 제품에 도전합니다 | Devpick