flex 같은 B2B 서비스에는 한 가지 구조적 특징이 있습니다.
수많은 회사가 같은 서비스를 함께 사용한다는 점입니다.
우리 회사도, 경쟁사도, 전혀 다른 업종의 회사도 같은 flex 위에서 각자의 인사 데이터를 다룹니다. 편리하고 효율적인 방식이지만, 고객사 입장에서는 자연스럽게 이런 걱정이 따라옵니다.
"우리 데이터가 같은 서비스를 쓰는 다른 회사에 보이거나, 어딘가에서 섞이지는 않을까요?"
절대 섞이지 않습니다!
그리고 이건 "조심하겠습니다" 수준의 약속이 아니라, 서비스가 데이터를 다루는 구조 자체에 새겨진 원칙입니다. 어떻게 그렇게 되는지를 설명하겠습니다.
한 건물을 함께 쓰지만, 방과 열쇠는 회사마다 다릅니다
flex는 멀티테넌트(multi-tenant) 구조입니다.
회사마다 서버와 데이터베이스를 물리적으로 따로 세우는 대신, 잘 통제된 하나의 인프라를 여러 고객사가 함께 사용합니다. 큰 건물 하나에 여러 회사가 입주해 있는 모습과 비슷합니다. 중요한 것은, 건물은 함께 쓰더라도 각 회사의 방은 서로 열리지 않고 열쇠도 회사마다 다르다는 점입니다. 함께 쓰는 것은 건물일 뿐, 그 안의 데이터는 회사별로 경계가 또렷이 나뉘어 있습니다.
모든 데이터에는 '어느 회사 것'이라는 경계가 붙습니다
flex 안의 모든 데이터는 고객사 식별자를 기준으로 분리됩니다.
데이터를 저장할 때도, 불러올 때도 '이건 어느 회사의 데이터인가'라는 경계가 항상 함께 따라다닙니다. 그래서 한 회사의 화면에서 이루어지는 어떤 요청도 그 회사의 경계 안에서만 응답되며, 경계 밖의 데이터는 조회 대상에 아예 포함되지 않습니다. 옆 회사의 데이터는 '보이지 않도록 가려지는' 것이 아니라, 처음부터 '닿을 수 없는' 영역입니다.
권한도 회사의 경계를 넘지 않습니다
누가 무엇을 볼 수 있는지를 정하는 권한 체계도 이 경계 위에서 작동합니다.
flex는 구성원과 데이터의 관계를 기준으로 권한을 판단하는 ReBAC(관계 기반 접근제어) 모델을 사용합니다. 어떤 이용자의 접근 요청이든 '이 사람이 이 데이터와 어떤 관계인가'를 먼저 확인하기 때문에, 자기 조직의 범위를 벗어난 데이터에는 권한 자체가 성립하지 않습니다. 실수로라도 다른 회사의 데이터에 권한이 닿는 상황을 구조적으로 차단하는 방식입니다.
AI가 답할 때에도, 경계는 그대로 유지됩니다
요즘 가장 많이 받는 걱정은 AI에 관한 것입니다.
"AI가 여러 회사의 데이터를 다루다 보면, 답변에 다른 회사 정보가 섞여 나오지 않을까?"
flex의 답은 분명합니다.
AI가 무언가를 답할 때에도 테넌트 경계는 똑같이 유지됩니다. AI는 질문한 그 회사의 데이터 범위 안에서만 정보를 참조해 답하며, 경계 밖의 다른 회사 데이터를 끌어오지 않습니다. 또한 고객 데이터는 AI 모델 학습에 사용되지 않고, 추론에 쓰인 데이터는 처리 후 남지 않습니다. 데이터가 회사 경계를 넘어 서로의 학습 재료가 되는 일은 일어나지 않습니다.
설계로 끝내지 않고, 계속 확인합니다
이 경계는 코드 안에만 존재하는 약속이 아닙니다.
flex는 새로운 기능을 배포하기 전에 보안 관점의 검토를 거치고, flex 서비스는 정기적으로 외부 전문업체의 모의해킹을 포함한 점검을 받습니다. AI 서비스 역시 출시 전에 별도의 보안성 검토와 모의해킹을 마쳤습니다. 경계가 설계한 대로 지켜지고 있는지를, 만들어 두고 잊는 것이 아니라 꾸준히 확인합니다.
마지막으로
"우리 데이터가 다른 회사와 섞이지 않나요?"라는 질문에,
flex는 "섞이지 않도록 조심하고 있습니다"가 아니라 "섞일 수 없는 구조로 만들었습니다"라고 답합니다.
여러 회사가 한 서비스를 함께 쓰더라도, 각 회사의 데이터는 저장될 때부터 조회될 때까지, 그리고 AI가 답할 때까지 회사의 경계를 넘지 않습니다.
함께 쓰는 편리함과 섞이지 않는 안전함은 양자택일이 아니라는 것, 그것이 flex가 멀티테넌트를 다루는 방식입니다.
플렉스는 앞으로도 보안을 위협하는 문제를 어떻게 예견하고 어떻게 해결했는지를 꾸준히 나누겠습니다. 다뤄지길 바라는 주제가 있으시다면 'Security Team에 문의하기'로 제안해주세요.


