License & Seat

마켓플레이스에서 다루는 앱의 라이선스 소유권, 사용권 배정, 워크스페이스에 설치된 상태, 실행 권한을 분리해서 Fricle 마켓플레이스의 기준 모델로 고정한다.

핵심 결론

라이선스 소유권과 사용권 판정은 개인 계정 기준이다. 워크스페이스는 앱을 설치하고 함께 보는 작업 공간이다.

워크스페이스에 앱이 설치되어 있어도 그 공간이 라이선스나 사용권을 가진다는 뜻은 아니다. 각 사용자는 자기 계정에 연결된 라이선스나 선물 받은 사용권이 있어야 앱을 실제로 사용할 수 있다.

제품 축 기준 역할
라이선스 소유자 항상 개인 계정 구매 이력, 환불, 추가 사용자 구매, 소유권 판단의 기준이다.
사용권 대상 개인 계정 앱을 실제로 사용할 수 있는 사람을 정한다. 선물이나 추가 사용권도 최종 대상은 개인 계정이다.
설치 대상 워크스페이스 앱이 어느 작업 공간에 배치되어 실행될지 정한다. 설치는 소유권이 아니다.
실행 권한 워크스페이스 역할 + 사용권 + Operator 판정 보기 전용, 조작 가능, 차단 중 어떤 상태로 열릴지 최종 결정한다.

제품 용어

App License

무료 발급 또는 유료 구매로 생기는 앱 사용권의 원본이다. 가격이 0원이어도 내부적으로는 라이선스 흐름을 거친다.

Seat & Use Grant

라이선스를 실제 사용자 계정에 연결하는 단위다. 본인 사용, 선물, 추가 사용자 배정은 모두 개인 계정 기준으로 판단한다.

워크스페이스에 설치

앱을 특정 작업 공간에서 열 수 있게 연결하는 상태다. 구매 기준은 개인 계정, 설치 기준은 워크스페이스다.

Runtime Permission

라이선스가 있더라도 워크스페이스 역할과 Operator 판정을 통과해야 조작할 수 있다. 라이선스와 권한은 섞지 않는다.

라이선스와 사용권 다이어그램

발급 소유 배정 설치 선물 자격 판정 회수 구매 발급 + 구매 0원 또는 결제 소유자 개인 계정 구매 이력 기준 사용권 개인 사용권 본인 또는 선물 설치 워크스페이스에 설치 소유권 아님 실행 실행 판정 역할 + 조작 주체 선물 추가 사용자 개인 계정 귀속 변경 회수 + 만료 데이터 삭제 아님
소유 라이선스는 개인 계정에 남는다 구매 이력, 환불, 추가 사용자 구매의 기준은 개인 계정이다.
배정 사용권은 개인 계정으로 간다 본인 사용권이든 선물 받은 사용권이든 최종 사용 자격은 개인 계정에 붙는다.
설치 앱은 워크스페이스에 설치된다 설치는 앱을 어느 작업 공간에 보여줄지 정하는 상태이며 개인 사용권을 대신하지 않는다.
실행 권한 모델로 내려간다 실행 시에는 역할, 사용권, Operator를 다시 확인해 결과 모드를 정한다.
라이선스와 사용권 다이어그램은 “누가 샀는가”, “누가 쓸 수 있는가”, “어느 워크스페이스에 설치되어 있는가”, “실제로 조작 가능한가”를 분리해서 보여준다.

판정 흐름

1. 발급 + 구매 무료 앱은 0원 발급, 유료 앱은 결제 후 라이선스를 만든다.
2. 소유자 확정 라이선스 자산과 구매 이력은 개인 계정에 귀속된다.
3. 사용권 배정 소유자는 본인 계정에서 쓰거나 다른 개인 계정에 사용권을 선물하거나 배정한다.
4. 워크스페이스에 설치 앱을 작업 공간에 설치해 협업 공간에서 보이게 한다. 이 설치는 개인 사용권 판정을 대체하지 않는다.
5. 실행 판정 설치 상태, 사용권, 워크스페이스 역할, Operator를 함께 확인해 모드를 정한다.

결정 규칙

모든 앱은 라이선스 흐름을 가진다 라이선스 소유자는 개인 계정 사용권 대상은 개인 계정 설치 기준은 워크스페이스 설치된 상태는 사용권 배정이 아니다
  1. 무료 앱도 라이선스 없이 바로 쓰는 것이 아니라, 0원 라이선스와 기본 사용권을 만든다.
  2. 유료 앱 구매자는 라이선스 소유자가 되며, 추가 사용권 구매와 회수의 기준이 된다.
  3. 사용권은 개인 계정에 직접 배정한다. 선물과 추가 사용자 배정도 개인 계정 기준으로 처리한다.
  4. 워크스페이스에 설치한다는 것은 앱을 작업 공간에 배치하는 상태이며 라이선스 소유권이나 개인 사용권을 바꾸지 않는다.
  5. 실행 시점에는 설치 상태와 사용권만 보지 않고, 워크스페이스 역할과 Operator 조건을 다시 판정한다.
  6. 사용자 화면에서는 내부 모델 이름보다 “보유”, “할당”, “설치됨”, “보기 전용”, “사용 불가” 같은 결과 언어를 우선한다.

제품 화면 반영

화면 보여줄 것 연결 문서
Marketplace 앱 탐색, 구매, 라이선스 보유, 개인 사용권 배정, 워크스페이스에 설치된 상태를 사용자가 이해할 수 있게 보여준다. UX UI: Marketplace
Dev Center + 배포콘솔 퍼블리셔, 앱, 릴리스, 마켓플레이스 게시 정책을 다룬다. 구매자 라이선스와 사용권 배정은 Marketplace 흐름으로 내려보낸다. UX UI: Dev Center
권한 화면 워크스페이스 역할, 사용권 부족, Operator 불일치를 각각 다른 차단 이유로 보여준다. UX UI: Permission
결제 + 저장소 추가 사용자 구매, 만료, 회수, 환불, 저장소 제한 같은 과금 결과를 다룬다. Pipeline: Billing
실행 파이프라인 앱 실행 전 설치 상태, 라이선스, 사용권, 권한을 확인해 full edit, view only, blocked를 결정한다. Pipeline: Permission

확정 기준과 후속 분리

항목 확정 기준 후속 위치
워크스페이스에 설치된 상태와 개인 사용권 구분 워크스페이스는 앱이 놓이는 공간이고, 사용권은 개인 계정에 붙는다. 화면에서는 “이 워크스페이스에 설치됨”과 “내 계정에 사용권 있음/없음”을 분리해서 보여준다. UX UI: Marketplace UX UI: Permission
사용자 수량과 과금 수량은 앱을 사용할 수 있는 개인 계정 수를 뜻한다. 추가 사용자 구매는 허용하지만 가격, 묶음 할인, 기업 계약 같은 과금 방식은 Billing 정책에서 정한다. Pipeline: Billing
사용권 회수 + 만료 회수나 만료는 데이터를 바로 삭제하는 일이 아니라 사용 가능 상태를 바꾸는 일이다. 기존 설치와 데이터는 보존하되, 사용자는 보기 전용 또는 사용 불가 상태로 내려갈 수 있다. Pipeline: LiveDoc Sync UX UI: Billing UX UI: Permission
Operator 지정 라이선스와 Operator는 다른 문제다. 앱을 쓸 자격이 있어도, 현재 앱 인스턴스를 조작할 사람으로 인정되어야 편집과 실행이 가능하다. Architecture: Access Model Pipeline: Permission UX UI: Permission