[카테고리:] SaaS

  • 해외 AI 제품 도입, 계약 전에 벤더에게 물어야 할 12가지

    지난 1년간 저희가 참여한 AI 도입 프로젝트에서 가장 자주 반복된 실패는 기술 문제가 아니었습니다. 데모는 훌륭했고, 파일럿 결과도 나쁘지 않았고, 계약도 무리 없이 체결됐습니다. 그런데 6개월 뒤 실사용자 수를 열어보면 처음 2주에 몰려 있고 그 뒤로는 거의 평평합니다.

    원인을 되짚어보면 대개 계약 전에 묻지 않은 질문 한두 개로 수렴합니다. 한국어 출력 품질이 영어의 절반이었다거나, 우리 데이터가 어느 리전에 저장되는지 아무도 확인하지 않았다거나, 좌석당 과금이라 실제로 필요한 인원을 다 붙이면 예산의 세 배가 된다는 사실을 도입 후에 알게 된 경우입니다.

    이 글은 그 질문들을 정리한 목록입니다. 해외에서 만든 AI 제품을 한국 조직에 붙일 때로 한정했고, 국내 벤더에게는 절반 정도만 해당됩니다.

    해외 AI 제품이 유독 어려운 네 가지 이유

    같은 제품을 미국 기업이 도입할 때와 한국 기업이 도입할 때 난이도가 다릅니다. 차이는 대부분 다음 네 곳에서 생깁니다.

    1. 한국어는 대개 ‘지원 언어 목록’에 있을 뿐입니다. 지원과 품질은 다른 문제입니다. 영어로 90점 나오는 요약 기능이 한국어에서 60점이 되는 일은 흔하고, 벤더는 이걸 먼저 말해주지 않습니다.
    2. 데이터 리전이 계약서에 없습니다. 제품 문서에는 ‘글로벌 인프라’라고만 적혀 있고, 실제 저장 위치는 물어봐야 나옵니다. 개인정보나 계약서를 넣는 용도라면 이 한 줄이 도입 가능 여부를 갈라놓습니다.
    3. 과금 단위가 한국 조직 구조와 잘 안 맞습니다. 좌석당 과금은 ‘담당자 몇 명만 쓰는’ 조직에 유리하고, 여러 부서가 조금씩 나눠 쓰는 조직에는 불리합니다.
    4. 지원 시간대가 겹치지 않습니다. 본사가 미국 서부면 우리 오전에 답이 오지 않습니다. 장애가 났을 때 이 시차는 체감 다운타임을 두 배로 만듭니다.

    계약 전에 물어야 할 12가지

    순서대로 물어볼 필요는 없지만, 아래 네 영역 중 어느 하나라도 답을 못 받으면 계약을 미루는 편이 낫습니다. 도입 후에 알게 되면 되돌릴 수 없는 항목들만 남겼습니다.

    A. 데이터와 보안

    1. 우리가 입력한 데이터가 모델 학습에 사용됩니까? 계약서 몇 조 몇 항입니까? ‘학습에 쓰지 않습니다’라는 영업 담당자의 구두 답변은 근거가 아닙니다. DPA(데이터 처리 계약)나 이용약관의 조항 번호를 받아 두세요. 기본값은 학습에 사용하고 옵트아웃은 상위 플랜에서만 제공하는 제품이 아직 많습니다.
    2. 데이터는 물리적으로 어느 리전에 저장됩니까? 리전을 선택할 수 있습니까? 도쿄·싱가포르 리전을 고를 수 있는지가 실무에서 가장 중요합니다. 미국 단일 리전뿐이라면, 그 사실을 알고 도입하는 것과 모르고 도입하는 것은 완전히 다른 리스크입니다.
    3. 계약 종료 시 데이터 삭제는 며칠 안에, 어떤 증빙으로 확인됩니까? 삭제 확인서를 발급해 주는 벤더와 ‘정책에 따라 처리된다’고만 답하는 벤더가 있습니다. 내부 감사가 있는 조직이면 전자만 후보입니다.

    B. 한국어와 현지 적합성

    1. 우리 업종 용어로 한국어 출력 테스트를 해볼 수 있습니까? 벤더가 준비한 데모 데이터가 아니라 우리 문서로 해야 합니다. 사내 용어 50개 정도를 넣고 돌려보면 판단이 30분 안에 끝납니다. 이걸 거절하는 벤더는 그 자체로 답입니다.
    2. UI 한국어화는 어디까지입니까? 사용자 화면만 한국어이고 관리자 설정 화면과 오류 메시지는 영어인 제품이 많습니다. 오류 메시지가 영어면 현업 문의가 전부 IT팀으로 몰립니다.
    3. 한국어 처리 시 토큰 소모가 영어 대비 몇 배입니까? 사용량 기반 과금이라면 이 배수가 곧 비용입니다. 한국어는 같은 내용에 토큰을 더 쓰기 때문에, 영어 기준 단가표를 그대로 예산에 넣으면 반드시 초과합니다.

    C. 비용 구조

    1. 과금 단위가 좌석입니까 사용량입니까, 그리고 우리 사용 패턴에서 12개월 총액은 얼마입니까? 월 단가가 아니라 연 총액으로 물어야 합니다. 좌석당 과금이면 ‘1년 뒤 예상 좌석 수’를 넣은 금액까지 받아 두세요.
    2. 세금계산서 발행, 원화 결제, 연간 선불 계약이 가능합니까? 해외 카드 결제만 되는 제품은 규모가 커지면 회계에서 막힙니다. 도입 검토 초반에 확인하면 후보를 빠르게 줄일 수 있는 조건입니다.
    3. 다음 갱신 시 인상 상한이 계약서에 있습니까? 첫해 할인율이 큰 제품일수록 중요합니다. 2년차에 정가로 돌아오면서 예산이 두 배가 되는 패턴이 반복됩니다.

    D. 운영과 이탈

    1. 장애 시 연락 채널과 응답 시간이 한국 업무시간(KST)에 어떻게 적용됩니까? SLA 문서의 ‘4시간 내 응답’이 벤더 현지 업무시간 기준인지 24시간 기준인지 확인해야 합니다. 전자라면 우리 오전 장애는 다음 날 처리됩니다.
    2. 데이터 내보내기 포맷은 무엇이고, 우리가 직접 실행할 수 있습니까? 벤더에게 요청해야만 내보낼 수 있는 구조는 이탈 비용을 벤더가 정하게 됩니다. API나 관리자 화면에서 직접 CSV/JSON을 뽑을 수 있어야 협상력이 유지됩니다.
    3. 지금 이 제품을 쓰는 한국 고객사가 있습니까? 레퍼런스 통화가 가능합니까? 한국 레퍼런스가 없다는 답도 유용한 정보입니다. 없다면 우리가 첫 고객이라는 뜻이고, 그에 맞는 할인과 지원을 요구할 근거가 됩니다.

    어느 단계에서 무엇을 쓰는가

    단계여기서 확인할 질문통과하지 못하면
    후보 조사8번(결제·세금계산서), 2번(리전)후보에서 제외 — 뒤로 갈수록 확인 비용이 커집니다
    데모·PoC4번(우리 데이터 한국어 테스트), 5번(UI 한국어화)PoC 중단. 여기서 걸러야 할 것을 계약 후에 발견하면 손실이 큽니다
    견적·협상6번, 7번, 9번(비용 3종)연 총액 재산정 후 재협상
    계약 직전1번, 3번, 10번, 11번조항 추가 요구. 대부분 이 시점에는 반영해 줍니다
    도입 후 90일12번(레퍼런스), 실사용률갱신 전에 교체 검토 시작

    후보를 좁히는 데 시간을 덜 쓰는 방법

    위 12개 질문은 후보가 2~3개로 좁혀진 다음에 쓰는 도구입니다. 실제로 시간이 가장 많이 드는 구간은 그 앞단, 즉 ‘어떤 제품이 있는지’를 파악하는 단계입니다. 이 단계는 검색으로 하면 며칠이 걸리고, 정리된 목록으로 하면 반나절이면 끝납니다.

    7번(12개월 총액)에 답하려면 절감액 추정이 필요한데, 이건 대개 내부 설득용 자료로도 그대로 쓰입니다. AI 도입 ROI 계산기에 인원과 시간만 넣으면 손익분기 시점까지 나옵니다. 무료이고 회원가입이 없습니다.

    자주 반복되는 세 가지 실수

    1. 벤더가 준비한 데이터로 데모를 봅니다. 데모 데이터는 그 제품이 가장 잘하는 형태로 정제돼 있습니다. 우리 문서를 넣어보지 않은 데모는 ‘제품이 좋다’는 정보만 주고, ‘우리에게 맞다’는 정보는 주지 않습니다.
    2. PoC 성공 기준을 정하지 않고 시작합니다. 기준이 없으면 PoC는 항상 ‘가능성은 확인했다’로 끝납니다. 시작 전에 숫자로 적어야 합니다 — 예: 문서 100건 요약 시 재작업률 20% 이하.
    3. 도입 담당자만 검토합니다. 매일 쓸 부서가 검토에서 빠지면, 6개월 뒤 실사용률이 낮은 이유를 아무도 설명하지 못합니다. 4번 테스트는 실사용 부서 인원이 직접 해야 하고, 사내 AI 교육 설계와 함께 다뤄야 정착률이 올라갑니다.

    정리

    해외 AI 제품 도입에서 되돌릴 수 없는 결정은 대부분 계약 시점에 이미 끝나 있습니다. 12개 질문 중 2번(리전), 4번(우리 데이터 한국어 테스트), 7번(연 총액), 11번(내보내기) 네 개만이라도 계약 전에 서면으로 받아 두면, 실패 사례의 상당수는 사전에 걸러집니다.

    제품 선정이 아니라 도입 구조가 문제인 경우도 적지 않습니다. 어떤 업무를 자동화할지, 조직을 어떻게 재배치할지가 정리되지 않은 상태에서는 어떤 제품을 골라도 결과가 비슷합니다. 그 단계라면 AI 에이전트 도입 전략과 사내 AI 교육을 먼저 보시길 권합니다. 직접 구축이 필요한 범위라면 IT 외주개발 비용 비교에 산정 기준을 정리해 두었습니다.

    검토 중인 제품이 있고 12개 질문 중 답이 막히는 항목이 있다면, 문의로 보내주세요. 같은 카테고리에서 저희가 본 사례를 기준으로 어떤 항목을 더 봐야 하는지 알려드립니다.


    ※ 본문에서 참고 자료로 링크한 서핑베어 툴즈(surfingbear.ai)는 Divii가 운영하는 AI 도구·제품 정보 사이트입니다. 링크된 도구와 디렉토리는 무료로 공개돼 있으며, 별도의 광고 대가를 받고 게재한 링크가 아닙니다.

  • B2B SaaS 멀티테넌트 구조 설계 가이드 | 실제 개발 사례 기반

    B2B SaaS 멀티테넌트 구조 설계 가이드 | 실제 개발 사례 기반

    인베스트리 투자조합 관리 ERP, Lotus Soft 창업사관학교 플랫폼, Athena 정보보호관리 시스템 — 세 프로젝트 모두 “여러 기업이 하나의 플랫폼을 각자의 공간으로 사용”하는 멀티테넌트 구조입니다. 실제 개발 경험으로 멀티테넌트 설계의 핵심을 정리합니다.


    멀티테넌트(Multi-tenant)란?

    하나의 소프트웨어 인스턴스를 여러 고객(테넌트)이 공유하는 구조입니다. 각 테넌트는 자신의 데이터만 보고 관리하며, 다른 테넌트의 데이터는 볼 수 없습니다.

    대표적인 예: Slack, Notion, Salesforce. 같은 소프트웨어인데 삼성 직원은 삼성 워크스페이스만, LG 직원은 LG 워크스페이스만 보입니다.


    멀티테넌트 DB 설계 3가지 방식

    방식 1 — 데이터베이스 완전 분리

    테넌트마다 별도의 데이터베이스를 생성합니다.

    tenant_a_db
      ├── users
      ├── projects
      └── invoices
    
    tenant_b_db
      ├── users
      ├── projects
      └── invoices
    

    장점: 완벽한 데이터 격리, 테넌트별 독립적 백업/복원 가능, 성능 예측 가능

    단점: 테넌트 수가 늘면 DB 수도 늘어 관리 복잡도 증가, 비용 높음

    Athena처럼 정보보호 데이터를 다루거나 금융 데이터가 포함된 경우 이 방식이 적합합니다.


    방식 2 — 스키마 분리

    같은 DB, 테넌트별 스키마(네임스페이스)를 분리합니다. PostgreSQL에서 주로 사용합니다.

    -- tenant_a 스키마
    CREATE SCHEMA tenant_a;
    CREATE TABLE tenant_a.users (...);
    
    -- tenant_b 스키마
    CREATE SCHEMA tenant_b;
    CREATE TABLE tenant_b.users (...);
    

    장점: DB는 하나, 논리적 분리 가능

    단점: 스키마 수가 많아지면 마이그레이션 관리가 복잡


    방식 3 — 행 수준 분리 (Row-Level Security)

    같은 테이블에 tenant_id 컬럼으로 구분합니다.

    CREATE TABLE users (
      id UUID PRIMARY KEY,
      tenant_id UUID NOT NULL,  -- 테넌트 구분자
      name VARCHAR(100),
      email VARCHAR(255)
    );
    
    -- 조회 시 반드시 tenant_id 필터 적용
    SELECT * FROM users WHERE tenant_id = 'tenant_a_uuid';
    

    장점: 구조 단순, 비용 낮음, 테넌트 추가 쉬움

    단점: 실수로 tenant_id 필터를 빠뜨리면 데이터 노출 위험

    인베스트리, Lotus Soft처럼 중간 규모의 B2B SaaS에 적합합니다. 단, 모든 쿼리에 tenant_id 필터를 강제하는 미들웨어 레이어가 필수입니다.


    권한 관리 (RBAC) 설계

    멀티테넌트 SaaS에서 권한 관리는 두 축으로 나뉩니다.

    축 1 — 플랫폼 레벨: 슈퍼 어드민(플랫폼 전체 관리), 테넌트 어드민(자사 관리), 일반 사용자

    축 2 — 기능 레벨: 읽기, 쓰기, 삭제, 관리

    Lotus Soft의 경우:

    • 슈퍼 어드민: 전체 창업사관학교와 스타트업 데이터 열람, 시스템 설정
    • 서브 어드민(창업사관학교): 자기 소속 스타트업만 관리, 프로그램 등록
    • 테넌트(스타트업): 자사 정보와 신청한 프로그램만 확인

    이 구조를 DB로 표현하면:

    CREATE TABLE roles (
      id UUID PRIMARY KEY,
      name VARCHAR(50),         -- 'super_admin', 'tenant_admin', 'user'
      tenant_id UUID,           -- NULL이면 플랫폼 레벨 역할
      permissions JSONB         -- {"read": true, "write": true, "delete": false}
    );
    

    빌링(과금) 구조 설계

    SaaS의 과금은 테넌트 단위로 이루어집니다. Lotus Soft에서 계정 유료화 버전에 따라 접근 가능한 기능이 달라지는 구조를 구현했습니다.

    플랜 테이블:

    CREATE TABLE plans (
      id UUID PRIMARY KEY,
      name VARCHAR(50),         -- 'free', 'pro', 'enterprise'
      features JSONB,           -- 플랜별 가능 기능 목록
      price_monthly DECIMAL
    );
    
    CREATE TABLE tenant_subscriptions (
      tenant_id UUID REFERENCES tenants(id),
      plan_id UUID REFERENCES plans(id),
      started_at TIMESTAMP,
      expires_at TIMESTAMP
    );
    

    기능 제한 체크:

    // 미들웨어에서 플랜 기능 확인
    const canUseFeature = async (tenantId, feature) => {
      const subscription = await getTenantSubscription(tenantId);
      return subscription.plan.features[feature] === true;
    };
    

    테넌트 온보딩 자동화

    새 고객(테넌트)이 가입했을 때 자동으로 설정이 완료되어야 합니다.

    온보딩 프로세스:

    1. 테넌트 레코드 생성
    2. 어드민 계정 생성 및 이메일 발송
    3. 기본 플랜 적용
    4. 초기 데이터 세팅 (샘플 데이터 또는 빈 상태)
    5. 웰컴 이메일 발송

    이 과정을 수동으로 하면 실수가 생기고 시간이 걸립니다. 가입 즉시 자동화되는 파이프라인을 처음부터 설계해야 합니다.


    실제 개발 시 자주 발생하는 버그

    버그 1 — tenant_id 필터 누락: 쿼리에서 tenant_id를 빠뜨려 다른 테넌트 데이터가 노출. 반드시 모든 쿼리에 자동으로 tenant_id를 주입하는 미들웨어 레이어를 만들어야 합니다.

    버그 2 — 공유 리소스 캐시 충돌: 레디스 캐시 키에 tenant_id를 포함하지 않으면 A 테넌트 캐시가 B 테넌트에 노출됩니다. 캐시 키는 반드시 {tenant_id}:{resource_type}:{id} 형식으로.

    버그 3 — 파일 저장소 분리 미흡: S3처럼 파일을 저장할 때 테넌트별 폴더 구조를 만들지 않으면 파일이 섞입니다. s3://bucket/{tenant_id}/files/{filename} 구조를 처음부터 적용하세요.


    마치며

    멀티테넌트 SaaS는 처음부터 올바르게 설계하지 않으면 나중에 수정하는 비용이 막대합니다. 특히 데이터 격리와 권한 관리는 보안 사고로 이어질 수 있어 더욱 중요합니다.

    인베스트리, Lotus Soft, Athena 세 프로젝트를 통해 확인한 것은, “완벽한 멀티테넌트 설계는 없지만, 처음에 어떤 방식을 선택할지 팀 전체가 합의하고 일관되게 지키는 것”이 가장 중요하다는 점입니다.

    무료 상담

    비슷한 플랫폼을 만들고 계신가요?

    디비컨설팅은 100건 이상의 웹·앱·플랫폼 구축 경험이 있습니다. 기획 단계에서 놓치기 쉬운 부분부터 함께 점검해 드립니다.

    프로젝트 상담받기 →

    기획서 없이 문의하셔도 됩니다 · 영업일 기준 24시간 이내 회신 · 상담 무료

  • SaaS B2B 플랫폼 개발 전략 — 투자 조합 관리 ERP부터 정보보호 솔루션까지

    SaaS B2B 플랫폼 개발 전략 — 투자 조합 관리 ERP부터 정보보호 솔루션까지

    인베스트리 투자조합 관리 ERP, Athena 정보보호관리 시스템, Lotus Soft 창업사관학교 지원 플랫폼. 세 가지 모두 B2B SaaS 프로젝트입니다. B2B SaaS를 개발하면서 반복적으로 마주치는 공통 과제들을 정리합니다.

    B2B SaaS가 B2C 앱과 다른 점

    B2C 앱은 “일반 사용자 한 명”을 위한 서비스입니다. 회원가입하면 바로 쓸 수 있고, 데이터는 내 것입니다.

    B2B SaaS는 다릅니다. “기업 조직”이 사용하고, 조직 내에 여러 역할의 사용자가 있으며, 기업마다 데이터가 철저히 분리되어야 합니다.

    이 차이가 설계의 핵심 복잡성을 만듭니다.

    핵심 설계 1 — 멀티테넌트 아키텍처

    SaaS의 가장 중요한 설계 개념입니다. 하나의 플랫폼을 여러 기업(테넌트)이 공유하되, 각 기업의 데이터는 완전히 분리되어야 합니다.

    Lotus Soft의 경우: 슈퍼 어드민(플랫폼 전체 관리), 서브 어드민(창업사관학교), 테넌트(입주 스타트업) 3계층으로 나뉩니다. 각 레이어가 볼 수 있는 데이터와 할 수 있는 작업이 다릅니다.

    인베스트리의 경우: GP(업무집행조합원)별로 독립적인 ERP 공간을 가집니다. A GP의 데이터는 B GP가 절대 볼 수 없어야 합니다.

    멀티테넌트 구현 방식은 크게 세 가지입니다:

    • 데이터베이스 분리: 테넌트별로 별도 DB. 격리성 최고, 비용 높음.
    • 스키마 분리: 같은 DB, 테넌트별 스키마. 중간 수준.
    • 행 수준 분리: 같은 테이블, 테넌트 컬럼으로 필터. 비용 낮음, 격리 구현 주의 필요.

    규모와 보안 요구사항에 따라 방식을 선택해야 합니다.

    핵심 설계 2 — 권한 관리 시스템 (RBAC)

    Role-Based Access Control. 역할에 따라 접근 권한을 부여하는 방식입니다.

    예를 들어 Athena 정보보호관리 시스템에서:

    • 슈퍼 어드민: 모든 기업 데이터 접근, 시스템 설정 변경
    • 기업 어드민: 자사 데이터만 접근, 부서원 계정 관리
    • 일반 사용자: 자신의 업무 영역만 접근, 입력 가능

    권한 시스템을 처음부터 잘 설계하지 않으면, 나중에 “이 메뉴는 이 사람만 봐야 하는데…”라는 요청이 올 때마다 전체 코드를 손봐야 합니다.

    핵심 설계 3 — 복잡한 데이터 구조 시각화

    B2B SaaS는 복잡한 데이터를 다룹니다. 인베스트리의 경우 투자조합 → 피투자조합 → 투자 내역 → 관련 서류로 이어지는 계층 구조가 있습니다.

    이 복잡성을 사용자가 쉽게 이해하고 작업할 수 있도록 UI/UX를 설계하는 것이 가장 큰 도전이었습니다.

    핵심 원칙:

    • 현재 어디 있는지 항상 알 수 있도록 (브레드크럼, 사이드바 강조)
    • 가장 자주 하는 작업을 가장 적은 클릭으로
    • 대용량 데이터를 페이지 속도 저하 없이 표시

    핵심 설계 4 — 기존 업무 방식 디지털화

    Athena는 윈도우 설치 프로그램으로 운영되던 것을 웹으로 전환한 프로젝트입니다. 엑셀 형식의 데이터를 웹에 연동하고, 입력값을 자동으로 문서화·시각화합니다.

    “기존에 엑셀로 하던 걸 그대로 웹으로”라는 요청은 생각보다 많습니다. 이때 주의할 점은 엑셀의 유연성을 과도하게 따라가려 하면 안 된다는 것입니다. 웹 서비스는 엑셀이 아닙니다. 엑셀보다 편리한 특정 작업 흐름을 설계하고, 데이터 시각화로 부가가치를 더하는 것이 맞습니다.

    핵심 설계 5 — 온보딩과 사용 지원

    B2B SaaS는 “쓰기 어렵다”는 평가를 받으면 바로 이탈입니다. 특히 기존 방식(엑셀, 설치 프로그램)을 쓰던 사람들에게 새로운 시스템은 거부감을 줍니다.

    설계 포인트:

    • 첫 로그인 후 단계별 가이드 (온보딩 투어)
    • 자주 하는 작업에 대한 툴팁
    • 도움말 문서 또는 인앱 가이드
    • 이전 방식 대비 어떻게 편리해졌는지 명확히 보여주기

    수익화 모델 설계

    SaaS의 과금 모델은 크게 세 가지입니다.

    사용자 수 기반: 월 활성 사용자(MAU) 또는 시트 수에 따라 과금. 가장 일반적.

    기능 티어 기반: Free/Pro/Enterprise로 나눠 기능 범위로 과금. Lotus Soft처럼 계정 유료화 버전에 따라 기능이 달라지는 구조.

    사용량 기반: API 호출 수, 처리량 등에 따라 과금. AI 기능이 있는 서비스에 적합.

    마치며

    B2B SaaS의 성공 요건은 단순합니다. “담당자가 매일 열게 되는 도구” 가 되어야 합니다. 매일 쓰게 되면 전환 비용이 높아지고, 전환 비용이 높아지면 장기 계약이 됩니다.

    그러려면 기술적 완성도보다 업무 플로우에 얼마나 잘 맞아떨어지는가가 더 중요합니다. 개발 전에 “이 서비스를 쓸 사람이 하루에 어떻게 일하는가”를 깊이 이해하는 시간이 반드시 필요합니다.

    무료 상담

    비슷한 플랫폼을 만들고 계신가요?

    디비컨설팅은 100건 이상의 웹·앱·플랫폼 구축 경험이 있습니다. 기획 단계에서 놓치기 쉬운 부분부터 함께 점검해 드립니다.

    프로젝트 상담받기 →

    기획서 없이 문의하셔도 됩니다 · 영업일 기준 24시간 이내 회신 · 상담 무료