pjhcsols / VirtualFitting_System

가상피팅&의류입점 플랫폼
4 stars 0 forks source link

[BE_2] User 부하 테스트 & 서버 환경 구축에서의 Thread 관리 & 회원가입 동시성 이슈 #24

Closed pjhcsols closed 2 months ago

pjhcsols commented 2 months ago

Fix: Thread starvation or clock leap detected, Dead Lock, pool-size Connection 개수 수정[박한솔]

pjhcsols commented 2 months ago

Feat: User Type에 의한 데이터 격리 보장 & 회원가입 서비스 Isolation.SERIALIZABLE 채택[박한솔]

회원가입 지연 로딩 발생 트랜젝션안에서 지연로딩 모두 해결해야됨-> 해결책 spring.jpa.open-in-view=*false*

→부하테스트 시 발생한 트랜잭션 내에서 지연로딩 문제를 해결하고자 하며 spring.jpa.open-in-view=false 설정을 사용하여 세션 관리를 효율적으로 처리합니다.

이를 통해 노멀, 브랜드, 슈퍼 유저 각 회원가입 서비스는 동시성 락을 걸어 데이터 일관성을 유지합니다. 동시성 문제를 완전히 해결하기 위해 Isolation.SERIALIZABLE을 선택하였으며, 각 유저 유형(normal, brand, super)에 따라 데이터 격리를 보장합니다. 데이터 일관성을 높이고 동시에 각 유저 객체에 대한 접근이 몰릴 가능성이 낮아 성능 저하를 최소화합니다. 이를 위해 @Transactional(isolation = Isolation.SERIALIZABLE)을 사용하여 트랜잭션 격리 수준을 설정합니다.