← 카탈로그

오브젝트 스토리지 — 스코프 토큰 + 프로바이더 어댑터

featurezerocloud

큰 창고를 빌려주면서 창고 전체 열쇠(마스터 키) 를 주는 대신, 딱 한 칸만 열리는 임시 열쇠를 만들어 주는 방법이에요. 그 임시 열쇠를 잃어버려도 다른 칸은 안전하죠.

비유: 물품보관함 임시 열쇠 🔑

지하철 물품보관함(창고)을 빌려서 친구들에게 나눠 쓴다고 해봐요.

  • 마스터 키 (진짜 열쇠) — 보관함 전부를 열 수 있는 열쇠. 이건 내 주머니에만 있고, 친구한테는 절대 안 보여줘요. 이게 새어나가면 모든 칸이 털려요.
  • 임시 열쇠 (스코프 토큰) — "3번 칸만" 열리는 열쇠를 만들어 친구에게 줘요. 친구는 3번 칸만 쓸 수 있고, 다른 칸은 못 열어요.

핵심: 친구는 임시 열쇠만 쥐어요. 진짜 마스터 키는 그 뒤에 꽁꽁 숨어 있어요.

임시 열쇠로 칸을 여는 흐름

친구가 임시 열쇠를 가져오면, 내가 대신 확인하고 진짜 열쇠로 그 칸만 열어줘요.

열쇠를 확인할 때 3가지를 봐요.

  • 진짜 있는 열쇠인가?
  • 아직 살아있는(취소 안 된) 열쇠인가?
  • 유효기간이 안 지났나?

셋 다 통과해야 열어줘요. 만약 임시 열쇠를 잃어버렸으면, 그 열쇠 하나만 "취소" 표시하면 다른 칸들은 멀쩡해요. (폭발 반경이 그 칸 하나로 딱 한정돼요.)

물건 목록을 보여주는 방식 (번역기)

창고 주인(S3)은 물건 목록을 "다음, 그 다음…" 식으로만 보여줘요(이어보기 방식). 그런데 우리 앱은 "3페이지 보여줘, 전부 몇 개야?" 처럼 보고 싶어요. 그래서 중간에 번역기(어댑터) 를 둬서 창고 방식 → 우리 앱 방식으로 바꿔요.

단, 이 번역엔 비용이 있어요. "전부 몇 개?" 를 알려면 창고 물건을 한 번 쭉 훑어야 해서, 물건이 아주 많으면 느려질 수 있어요. 그래서 필요할 때만 번역해요.

보너스: 물건을 올릴 때 "올리는 중 → 확정" 두 단계로 나누기도 해요. 업로드가 중간에 끊기면 "확정 안 됨" 표시가 남아서, 나중에 찌꺼기만 골라 청소할 수 있어요.

핵심만 다시

  1. 마스터 키는 숨기고, 칸 하나만 열리는 임시 열쇠를 만들어 나눠줘요.
  2. 임시 열쇠는 있나 · 살아있나 · 유효기간 3가지를 확인하고 열어줘요.
  3. 잃어버리면 그 열쇠만 취소 — 나머지 칸은 안전해요.
  4. 목록 보여주는 방식이 다르면 번역기로 바꾸되, 비용을 알고 써요.

더 자세한 진짜 코드·설계는 옆의 개요 / Variants / Apply Recipe 탭에서 볼 수 있어요.