본문으로 건너뛰기

Auth Operation 도메인 이벤트 스토밍

본 문서는 Auth Operation 도메인 요구사항(requirements.md)을 기반으로 Event Storming 방식으로 분석한 결과입니다.

목적

Auth Operation 도메인은 운영자 계정 인증을 담당하는 도메인 입니다. 사용자 계정 생성, 로그인, 토큰 관리 등을 처리합니다.


1. 도메인 이벤트

1.1 토큰 관리

EventDescription
TokenValidatedJWT 토큰 검증이 완료됨
TokenValidationFailedJWT 토큰 검증이 실패함

1.2 회원가입

EventDescription
AccountRegistrationRequested계정 등록이 요청됨
AccountCreated계정이 생성됨
AccountCreationRejectedDueToDuplicateGroup동일 그룹에 이미 소속되어 가입이 거부됨

1.3 초대 기반 회원가입

EventDescription
InvitationValidated초대 정보가 검증됨
InvitationValidationFailed초대 정보 검증이 실패함 (만료/이미 사용/존재하지 않음)
AccountCreatedViaInvitation초대를 통해 계정이 생성됨
InvitationMarkedAsUsed초대가 사용 완료 상태로 표시됨

1.4 로그인

EventDescription
LoginAttempted로그인이 시도됨
PasswordVerificationFailed비밀번호 검증이 실패함
LoginSucceeded로그인이 성공함
LoginFailed로그인이 실패함
LoginAttemptRecorded로그인 실패 시도가 기록됨
LoginAttemptCountReset로그인 시도 횟수가 초기화됨
AccountLocked계정이 잠김 (5회 연속 실패)
AccountLockedLoginAttempted잠긴 계정으로 로그인이 시도됨
AccessTokenIssued액세스 토큰이 발급됨
RefreshTokenIssued리프레시 토큰이 발급됨

1.5 세션 관리

EventDescription
SessionCreated세션이 생성됨
AccountSessionExpired세션이 만료된 계정

2. 액터와 명령

각 액터가 수행할 수 있는 명령과 결과 이벤트를 정의합니다.

2.1 토큰 관리 명령

CommandActorEvent
ValidateTokenSystemTokenValidated

2.2 회원가입 명령

CommandActorEvent
RegisterAccountAccountAccountCreated
ValidateInvitationSystemInvitationValidated
RegisterAccountViaInvitationAccountAccountCreatedViaInvitation

2.3 로그인 명령

CommandActorEvent
LoginAccountLoginSucceeded
RecordLoginAttemptSystemLoginAttemptRecorded
ResetLoginAttemptCountSystemLoginAttemptCountReset
LockAccountSystemAccountLocked
IssueAccessTokenSystemAccessTokenIssued
IssueRefreshTokenSystemRefreshTokenIssued

2.4 세션 관리 명령

CommandActorEvent
CreateSessionSystemSessionCreated

3. Aggregate 매핑

각 명령과 이벤트가 어느 Aggregate에서 처리되는지 정의합니다.

3.1 OperationUser

트랜잭션 경계: 계정의 회원가입 관리

담당 Command:

  • RegistsAccount
  • RegistsAccountViaInvitation

발행 Event:

  • AccountRegistrationRequested
  • AccountCreated
  • AccountCreationRejectedDueToDuplicateGroup
  • AccountCreatedViaInvitation

3.2 OperationUserLogin

트랜잭션 경계: 계정의 로그인 관리

담당 Command:

  • Login
  • RecordLoginAttempt
  • ResetLoginAttemptCount
  • LockAccount

발행 Event:

  • LoginAttempted
  • PasswordVerificationFailed
  • LoginSucceeded
  • LoginFailed
  • LoginAttemptRecorded
  • LoginAttemptCountReset
  • AccountLocked
  • AccountLockedLoginAttempted
  • AccessTokenIssued
  • RefreshTokenIssued

3.2 Invitation

트랜잭션 경계: 초대의 유효성과 사용 상태를 원자적으로 처리 (계정 생성 시 사용 완료 처리)

담당 Command:

  • ValidateInvitation
  • RegisterAccountViaInvitation (Account Aggregate와 공유)

발행 Event:

  • InvitationValidated
  • InvitationValidationFailed
  • InvitationMarkedAsUsed

3.3 Token

트랜잭션 경계: 토큰의 생성/검증을 관리

담당 Command:

  • Validate
  • IssueAccessToken
  • IssueRefreshToken
  • IssueTemporaryAccessToken

발행 Event:

  • TokenValidated
  • TokenValidationFailed
  • AccessTokenIssued
  • RefreshTokenIssued
  • TemporaryAccessTokenIssued

변경 이력

버전날짜작성자변경 내용
0.58.02025-12-16mook@weltcorp.com문서 최초 작성
0.62.02025-12-29jeff@weltcorp.comAuth 범위 재정렬에 따른 이벤트 스토밍 보강