LEVEL 85 QUEST
팀 관리와 초대 시스템
팀 관리와 초대 시스템 — DevFoil 바이브코딩 Stage 18, Lv.85
팀 초대 시스템의 전체 흐름
초대부터 팀 합류까지의 과정
B2B SaaS에서 팀 초대 시스템은 핵심 기능입니다.
관리자가 팀원을 초대하면, 이메일을 통해 초대장이 발송되고,
초대받은 사람이 수락하면 팀에 합류하는 전체 흐름을 구현합니다.
전체 플로우:
전체 플로우:
- 1단계: 관리자가 이메일 주소와 역할을 입력하여 초대
- 2단계: 시스템이 고유 토큰을 생성하고 초대 이메일 발송
- 3단계: 초대받은 사람이 이메일의 링크 클릭
- 4단계: 기존 회원이면 바로 팀 합류, 새 사용자면 회원가입 후 합류
- 5단계: 지정된 역할로 팀 멤버에 추가
초대(Invitation) 데이터 모델
초대 정보를 저장하는 테이블 설계
초대에는 만료 시간, 상태 관리, 보안 토큰 등 고려할 사항이 많습니다.
실무에서 빠뜨리기 쉬운 부분까지 포함한 스키마입니다.
// Prisma 스키마
model Invitation {
id String @id @default(cuid())
tenantId String
email String // 초대받는 사람 이메일
roleId String // 할당할 역할
token String @unique // 보안 토큰 (UUID v4)
status InvitationStatus @default(PENDING)
invitedBy String // 초대한 사람 ID
expiresAt DateTime // 만료 시간 (72시간)
acceptedAt DateTime? // 수락 시간
createdAt DateTime @default(now())
tenant Tenant @relation(fields: [tenantId], references: [id])
role Role @relation(fields: [roleId], references: [id])
inviter User @relation(fields: [invitedBy], references: [id])
@@unique([tenantId, email]) // 같은 테넌트에 중복 초대 방지
@@index([token])
}
enum InvitationStatus {
PENDING // 대기 중
ACCEPTED // 수락됨
EXPIRED // 만료됨
REVOKED // 취소됨
}
🔒
여기까지는 미리보기입니다
팀 관리와 초대 시스템
무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.
Google로 3초 만에 시작 →🧵 Threads로 시작무료 공개 강의 둘러보기 (Lv.1~3)무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.