어플리케이션 자원을 공유하는 태넌트 앱
HandStack 에서 태넌트 앱을 개발 및 운영하기 위해 checkup 모듈을 개발중입니다. 태넌트 앱은 기업의 비즈니스 앱을 구축하기 위해 고객과 개발자가 원하는 것을 충족시킬 수 있는 방법입니다.
왜냐하면 기업에서 자사 비즈니스 앱을 구축하기 위해 일반적으로 다음과 같은 과정을 진행합니다.
프로젝트 계획 및 목표 설정 > 팀 구성 > 요구사항 분석 및 설계 > 개발 > 테스트 및 배포 > 운영 및 유지보수
그외에도 보안 및 규정 준수나 비즈니스 지원 등의 단계는 개발 단계 이후에도 계속됩니다. 이러한 과정을 거쳐 웹 서비스를 개발하고 운영하는 것은 다양한 기술과 지식이 필요합니다.
다행히도, 클라우드 컴퓨팅과 소프트웨어 개발 기술의 발전으로, 이러한 과정을 보다 쉽게 진행할 수 있는 방법이 많이 개발되었습니다. 그러나, 여전히 개발자와 고객 모두에게 다음과 같은 핵심 문제가 존재합니다.
- 현실적인 문제 == 비용
- 고객이 원하는 것은 무엇인가?
- 개발자가 원하는 것은 무엇인가?
태넌트 앱으로 대안을 찾았습니다
클라우드 컴퓨팅 및 소프트웨어 개발에서 주로 사용되는 "태넌트"라는 용어가 있습니다.
"테넌트(Tenant)"는 일반적으로 독립적인 사용자 그룹 또는 조직을 나타냅니다. 프로그램 관점에서는 동일한 애플리케이션, 하드웨어, 또는 데이터베이스를 공유하지만, 고유한 업무 기능과 데이터는 서로 격리되어 있습니다.
예를 들어, 클라우드 기반 서비스에서는 여러 테넌트가 동일한 서비스를 사용할 수 있지만, 각 테넌트의 데이터는 서로 독립적입니다. 이는 각 테넌트가 자신의 데이터를 안전하게 보호하면서도, 동일한 리소스를 공유함으로써 관리 비용 효율성과 유연성을 높일 수 있게 합니다.
태넌트라는 용어는 인증, 데이터베이스, 보안, 사용자 인터페이스, 비즈니스 로직, 사용자 지원 등과 같은 여러 측면에서 적용될 수 있습니다. 이러한 면에서 태넌트는 독립적인 사용자 그룹 또는 조직을 나타내는 것으로 이해할 수 있습니다.
이러한 태넌트 개념을 기반으로, 별도의 가상화 기술을 사용하지 않고도 여러 사용자 그룹이 동일한 애플리케이션을 공유하면서, 각 사용자 그룹의 고유한 업무 기능과 데이터를 격리하여 사용할 수 있는 애플리케이션을 "태넌트 앱(Tenant App)"이라고 부릅니다.