레퍼런스업데이트 2026. 07. 09 · 읽는 데 6

데이터 격리와 보안

전 고객이 하나의 데이터베이스를 공유하는데, 어떻게 서로의 데이터가 섞이지 않는가. 행 단위 보안·격리된 계산 엔진·미학습 서약·시한부 지원 접근이 격리를 강제하는 방식을 정리했습니다.

Taylro는 전 고객이 하나의 공통 데이터베이스를 공유하고, 고객별 차이는 코드가 아니라 설정값으로만 둡니다. 그렇다면 자연스러운 질문이 남습니다 — 같은 저장소 위에서 어떻게 한 회사가 다른 회사의 숫자를 절대 보지 못하게 만드는가. 답은 격리를 애플리케이션이 아니라 데이터 계층에서 강제한다는 데 있습니다.

하나의 데이터베이스, 그런데 왜 안전한가

고객마다 별도 데이터베이스를 두는 방식은 언뜻 안전해 보이지만, 스키마가 조금씩 갈라지고 고객별 코드 분기가 늘며 "이 고객만 다르게 동작하는" 예외가 쌓입니다. Taylro는 반대로 단일 공통 데이터베이스를 유지하고 고객 간 차이는 오직 설정값으로 표현해, 모두가 같은 코드·같은 계산 로직을 씁니다. 그래서 보안의 관건은 "공유하느냐"가 아니라 "격리를 어디서 강제하느냐"가 됩니다 — Taylro는 격리를 화면이나 조회 코드가 아니라 데이터베이스 자체의 규칙으로 못박습니다. 조회하는 쪽이 실수하더라도 데이터 계층이 먼저 걸러내므로, 격리가 애플리케이션 버그에 의존하지 않습니다.

lightbulb
격리는 가장 아래층에서 강제됩니다
"화면에서 우리 회사 것만 보여주니 안전하다"는 조회 코드에 의존하는 방식이라, 그 코드에 실수가 있으면 격리가 뚫립니다. Taylro는 한 단계 아래, 즉 데이터가 저장된 계층에서 소속 밖의 행 자체를 보이지 않게 만듭니다.

행 단위 보안으로 테넌트를 격리합니다

저장되는 모든 데이터 행에는 그 데이터가 어느 회사(테넌트)의 것인지가 새겨집니다. 그리고 데이터베이스에는 테넌트별 행수준 보안(RLS) 정책이 걸려 있어, 어떤 조회가 들어오든 요청자의 소속 밖 행은 결과에서 자동으로 배제됩니다. 조회 코드가 소속 조건을 빠뜨려도, 정책이 데이터 계층에서 먼저 필터를 적용합니다.

테넌트(tenant)
플랫폼을 함께 쓰는 개별 고객사(회사)를 가리키는 격리 단위입니다. 모든 데이터 행이 하나의 테넌트에 귀속되며, 격리 정책의 기준이 됩니다.
  • 소속 밖은 존재하지 않는 것과 같습니다 — 다른 테넌트의 행은 조회 결과에 아예 나타나지 않으므로, 실수로 노출되거나 합산될 여지가 없습니다.
  • 모든 데이터에 일관 적용됩니다 — 원가·수익성 결과, 현장 재고, 계획, AI가 참조하는 근거까지 같은 격리 규칙 아래 놓입니다.
  • 조회 코드의 완벽함에 기대지 않습니다 — 애플리케이션이 조건을 빠뜨려도 데이터 계층이 마지막 방어선으로 남습니다.
report
흔한 오해 — "쿼리에서 걸러주니 괜찮다"
조회할 때마다 소속 조건을 코드로 붙이는 방식은, 한 곳에서 조건을 빠뜨리는 순간 다른 회사 데이터가 새어 나갑니다. 행수준 보안은 그 조건을 사람이 매번 붙이는 것이 아니라 데이터베이스가 항상 강제하도록 하여, 이 부류의 실수를 구조적으로 차단합니다.

계산 엔진도 같은 격리 안에서 동작합니다

원가·수익성 계산은 사람의 화면 조작 없이 자동으로 도는 결정론 엔진이 수행합니다. 이런 자동 처리는 흔히 격리를 우회하기 쉬운 지점입니다 — 편의를 위해 모든 행을 볼 수 있는 특권 권한으로 돌리는 경우가 많기 때문입니다. Taylro는 그렇게 하지 않습니다. 계산 엔진은 격리를 우회할 수 없는 제한된 실행 권한(격리 롤)으로 동작하며, 처리 중인 테넌트의 범위 안에서만 데이터를 읽고 씁니다. 즉 자동 계산 경로에도 앞의 행수준 보안이 그대로 적용되어, 사람이 조회할 때든 엔진이 계산할 때든 격리의 강도는 같습니다. 특권으로 격리를 넘어서는 우회로가 존재하지 않습니다.

AI는 데이터를 학습하지도, 밖으로 내보내지도 않습니다

Taylro의 AI는 고객의 데이터를 해석·서술하는 데만 쓰이며, 그 데이터를 AI 모델을 학습(훈련)시키는 데 사용하지 않습니다. 한 고객의 숫자가 다른 고객을 위한 모델에 스며들 여지를 두지 않습니다.

  • 고객 데이터는 AI 모델의 학습·미세조정에 쓰이지 않습니다 — 미학습 서약.
  • AI가 답변을 만들 때 참조하는 근거 역시 그 시점 그 테넌트의 데이터로 한정되며, 앞의 행 단위 격리를 그대로 따릅니다.
  • 수치 자체는 AI가 만들지 않습니다 — 계산은 결정론 엔진이 하고 AI는 그 결과를 설명만 하므로, 데이터가 모델로 흘러 들어갈 통로가 애초에 좁습니다.

AI가 답을 내놓을 때는 반드시 그 판단의 근거로 이어지는 자사 딥링크만 제시합니다. 사용자가 그 링크를 눌러 실제 데이터와 계산 근거를 직접 확인할 수 있게 하려는 설계입니다. 반대로 AI 답변은 외부 URL이나 외부 이미지를 렌더링하지 않습니다 — 답변 화면이 플랫폼 밖의 주소로 데이터를 실어 보내거나 외부 자원을 불러오는 통로가 되지 않도록, 반출 경로 자체를 막아둔 것입니다.

  • AI 답변의 링크는 자사 근거 딥링크만 허용됩니다 — 사용자를 데이터의 출처로 데려갑니다.
  • 외부 URL·외부 이미지는 렌더링하지 않아, 답변을 매개로 데이터가 밖으로 새는 경로를 차단합니다.
  • AI는 사람의 승인 없이 운영 시스템에 무언가를 실행하지 않습니다 — 판단과 초안까지가 AI의 몫이고, 실행은 언제나 사람이 승인합니다.

지원 접근은 시한부·읽기 전용이며 감사됩니다

문제를 진단하거나 도움을 드리기 위해 시스템 관리자가 고객 데이터를 들여다봐야 할 때가 있습니다. 이 지원 접근은 상시 권한이 아니라 세 가지 제약 아래에서만 열립니다.

  1. 1
    시한부
    지원 접근은 아무 때나 유효하지 않고, 지원이 필요한 상황에서 한정된 시간 창으로만 열립니다. 창이 닫히면 접근도 자동으로 사라집니다.
  2. 2
    읽기 전용
    지원 접근으로는 데이터를 조회만 할 수 있습니다. 고객 데이터를 수정하거나 삭제할 수 없습니다.
  3. 3
    전 과정 감사
    누가 언제 어떤 범위를 열람했는지가 감사 기록으로 남습니다. 접근이 조용히 이루어지지 않습니다.
warning
지원 접근이 곧 상시 열람은 아닙니다
시스템 관리자라도 평상시에는 고객 데이터를 볼 수 없습니다. 지원 접근은 명시적으로 부여되어야 열리고, 시간이 지나면 닫히며, 열람 사실이 반드시 기록으로 남습니다.
더 읽어보기

우리 회사 데이터로 직접 확인해 보세요

격리와 보안 원칙 위에서, 최근 1개월 자료로 제품·거래처별 수익성을 계산해 어디서 벌고 어디서 새는지 보여드립니다.

arrow_forward무료 수익성 진단 신청

우리 회사 숫자로 직접 확인해 보세요

개념을 이해했다면, 다음은 실제 데이터입니다. 최근 1개월 자료로 제품·거래처별 진짜 수익성을 2주 안에 무료로 보여드립니다.