🧠 이번 주에 새로 배운 것- 낙관적 락(@Version) vs 비관적 락(SELECT FOR UPDATE) 선택 기준 - 동시성 윈도우(Race Condition Window) 개념과 이중 방어 패턴 - 원자적 UPDATE(@Modifying + WHERE 조건)로 쿠폰 사용 처리 - CountDownLatch로 실제 Race Condition을 재현하는 테스트 작성법 - Application Layer vs Domain Layer 책임 분리 (OrderApplicationService, LikeApplicationService) 💭 이런 고민이 있었어요- 쿠폰 발급에서 existsByUserIdAndCouponTemplateId() 체크 후 save() 사이 동시성 윈도우 문제 - 낙관적/비관적 ..