edit all sequence
This commit is contained in:
@@ -34,7 +34,7 @@ activate Service
|
||||
|
||||
Service -> UserRepo: findById(userId)
|
||||
activate UserRepo
|
||||
UserRepo -> UserDB: SELECT * FROM users\nWHERE user_id = ?
|
||||
UserRepo -> UserDB: 사용자ID로 사용자 조회\n(사용자 정보 조회)
|
||||
activate UserDB
|
||||
UserDB --> UserRepo: 사용자 정보
|
||||
deactivate UserDB
|
||||
@@ -109,7 +109,7 @@ else 사용자 존재
|
||||
|
||||
Service -> StoreRepo: findByUserId(userId)
|
||||
activate StoreRepo
|
||||
StoreRepo -> UserDB: SELECT * FROM stores\nWHERE user_id = ?
|
||||
StoreRepo -> UserDB: 사용자ID로 매장 조회\n(매장 정보 조회)
|
||||
activate UserDB
|
||||
UserDB --> StoreRepo: 매장 정보
|
||||
deactivate UserDB
|
||||
@@ -134,7 +134,7 @@ else 사용자 존재
|
||||
|
||||
== 5단계: 데이터베이스 트랜잭션 ==
|
||||
|
||||
Service -> UserDB: BEGIN TRANSACTION
|
||||
Service -> UserDB: 트랜잭션 시작
|
||||
activate UserDB
|
||||
|
||||
note right of Service
|
||||
@@ -146,7 +146,7 @@ else 사용자 존재
|
||||
|
||||
Service -> UserRepo: save(user)
|
||||
activate UserRepo
|
||||
UserRepo -> UserDB: UPDATE users\nSET name = ?, phone_number = ?,\nemail = ?, password_hash = ?,\nupdated_at = NOW(),\nversion = version + 1\nWHERE user_id = ? AND version = ?
|
||||
UserRepo -> UserDB: 사용자 정보 업데이트\n(이름, 전화번호, 이메일,\n비밀번호해시, 수정일시,\n버전 증가)\nOptimistic Lock 적용
|
||||
UserDB --> UserRepo: 업데이트 완료 (1 row affected)
|
||||
UserRepo --> Service: User 엔티티
|
||||
deactivate UserRepo
|
||||
@@ -155,7 +155,7 @@ else 사용자 존재
|
||||
UserRepo --> Service: throw OptimisticLockException
|
||||
Service --> Controller: throw ConcurrentModificationException\n("다른 사용자가 수정 중입니다")
|
||||
Controller --> Client: 409 Conflict\n{"code": "USER_005",\n"error": "다른 세션에서 프로필을\n수정했습니다.\n새로고침 후 다시 시도하세요"}
|
||||
Service -> UserDB: ROLLBACK TRANSACTION
|
||||
Service -> UserDB: 트랜잭션 롤백
|
||||
deactivate UserDB
|
||||
deactivate Service
|
||||
deactivate Controller
|
||||
@@ -163,12 +163,12 @@ else 사용자 존재
|
||||
|
||||
Service -> StoreRepo: save(store)
|
||||
activate StoreRepo
|
||||
StoreRepo -> UserDB: UPDATE stores\nSET store_name = ?, industry = ?,\naddress = ?, business_hours = ?,\nupdated_at = NOW(),\nversion = version + 1\nWHERE store_id = ? AND version = ?
|
||||
StoreRepo -> UserDB: 매장 정보 업데이트\n(매장명, 업종, 주소,\n영업시간, 수정일시,\n버전 증가)\nOptimistic Lock 적용
|
||||
UserDB --> StoreRepo: 업데이트 완료 (1 row affected)
|
||||
StoreRepo --> Service: Store 엔티티
|
||||
deactivate StoreRepo
|
||||
|
||||
Service -> UserDB: COMMIT TRANSACTION
|
||||
Service -> UserDB: 트랜잭션 커밋
|
||||
UserDB --> Service: 트랜잭션 커밋 완료
|
||||
deactivate UserDB
|
||||
end
|
||||
@@ -182,7 +182,7 @@ else 사용자 존재
|
||||
end note
|
||||
|
||||
alt 프로필 캐시 사용 중
|
||||
Service -> Redis: DEL user:profile:{userId}
|
||||
Service -> Redis: 프로필 캐시 삭제\n(캐시키: user:profile:{userId})
|
||||
activate Redis
|
||||
Redis --> Service: 캐시 삭제 완료
|
||||
deactivate Redis
|
||||
|
||||
Reference in New Issue
Block a user