diff --git a/README.md b/README.md index 0bb60c76..92d2f5fa 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,680 @@ +## 트랜잭션 전파 속성 +### REQUIRED +: 스프링 트랜잭션의 기본 설정 이미 진행 중인 트랜잭션이 있으면 기존 트랜잭션에 합류하고, 없으면 새로운 물리 트랜잭션을 생성함 여러 논리 트랜잭션이 하나의 물리 트랜잭션을 공유하게 됨 + +``` +@Service +@RequiredArgsConstructor +public class OrderService { + + private PaymentService paymentService; + + @Transactional(propagation = Propagation.REQUIRED) + public void processOrder(Order order) { + orderRepository.save(order); + // 기존 트랜잭션에 합류 + paymentService.processPayment(order); + } +} + +@Service +public class PaymentService { + @Transactional(propagation = Propagation.REQUIRED) + public void processPayment(Order order) { + paymentRepository.save(new Payment(order.getId(), order.getAmount())); + } +} +``` + +``` +processOrder 시작 (신규 물리 트랜잭션 1 시작, rollbackOnly = false) + ├── orderRepository.save() + │ + ├── processPayment() 호출 (물리 트랜잭션 1에 합류) + │ ├── paymentRepository.save() + │ ├── 예외 발생 + │ └── 트랜잭션 매니저가 rollbackOnly = true 로 마킹 + │ + ├── 예외가 processOrder로 전파됨 + │ + └── processOrder 종료 시점 + ↓ + rollbackOnly = true 확인 + ↓ + 물리 트랜잭션 1 전체 ROLLBACK + ↓ + 주문, 결제 모두 롤백됨 +``` + +여러 서비스 로직을 완벽하게 하나의 원자적 작업(All or Nothing)으로 묶어서, 하나라도 실패하면 전체를 취소해야 할 때 사용 + +### REQUIRES_NEW +: 현재 트랜잭션의 존재 여부와 상관없이 항상 새로운 물리 트랜잭션을 시작 기존 트랜잭션이 있으면 이를 일시 정지시키고, 새로운 커넥션을 맺어 독립적으로 실행 + +``` +@Service +@RequiredArgsConstructor +public class OrderService { + + private LogService logService; + + @Transactional(propagation = Propagation.REQUIRED) + public void processOrder(Order order) { + orderRepository.save(order); + + try { + // 새 물리 트랜잭션 시작 + logService.writeLog("주문 시도: " + order.getId()); + } catch (RuntimeException e) { + // 예외를 잡아서 부모 트랜잭션으로 전파되는 것을 막음 + log.error("로그 저장 실패"); + } + } +} + +@Service +public class LogService { + @Transactional(propagation = Propagation.REQUIRES_NEW) + public void writeLog(String message) { + logRepository.save(new Log(message)); + } +} + +``` + +``` +processOrder 시작 (신규 물리 트랜잭션 1 시작) + ├── orderRepository.save() + │ + ├── writeLog() 시작 + │ ├── 물리 트랜잭션 1 일시 정지 + │ ├── 신규 물리 트랜잭션 2 시작 (새 DB Connection) + │ ├── 예외 발생 + │ └── 물리 트랜잭션 2 ROLLBACK (로그만 롤백) + │ + ├── 예외가 processOrder로 던져짐 -> catch문으로 잡음 + │ ↓ + │ 물리 트랜잭션 1 재개 + │ + └── processOrder 종료 시점 + ↓ + rollbackOnly = false 유지됨 (예외를 잡았으므로) + ↓ + 물리 트랜잭션 1 COMMIT + ↓ + 로그는 롤백되었지만 주문은 정상 커밋됨 + +``` + +메인 비즈니스 로직의 성공/실패 여부와 무관하게 반드시 커밋되어야 하는 로직(예: 시스템 로그, 통계 데이터 적재)을 분리할 때 사용 단, DB 커넥션을 2개 이상 동시에 사용하므로 트래픽이 많을 때 커넥션 풀(Connection Pool)이 빠르게 고갈될 수 있어 주의가 필요 + +### MANDATORY + : 기존 트랜잭션이 반드시 있어야 함. 이미 진행 중인 트랜잭션이 있으면 합류하고, 없으면 예외(IllegalTransactionStateException)를 발생시킴 + +``` +@Service +@RequiredArgsConstructor +public class OrderService { + + private LogService logService; + + // 트랜잭션 없음 + public void processOrder(Order order) { + // ① 로그 저장 (오류 발생) + logService.writeLog("주문 시도: " + order.getId()); + } +} + +@Service +public class LogService { + @Transactional(propagation = Propagation.MANDATORY) + public void writeLog(String message) { + logRepository.save(new Log(message)); + } +} +``` + +``` +트랜잭션 흐름 (부모 트랜잭션이 없을 경우) + +Plaintext +processOrder 시작 (트랜잭션 X) + ├── writeLog() 호출 + │ ↓ + │ 트랜잭션 매니저 확인: "진행 중인 트랜잭션이 없네?" + │ ↓ + │ IllegalTransactionStateException 예외 발생 + │ ↓ + └── processOrder 비정상 종료 (로그 저장 실패) += 강제적으로 부모 트랜잭션 내에서만 실행되도록 보장해야 할 때 사용 +``` + +### SUPPORTS +: 기존 트랜잭션이 있으면 합류하고, 없으면 트랜잭션 없이(Non-Transactional) 단순하게 실행 + +``` +@Service +@RequiredArgsConstructor +public class OrderService { + + private SelectService selectService; + + // 트랜잭션 없음 + public void getOrderInfo() { + selectService.readData(); + } +} + +@Service +public class SelectService { + @Transactional(propagation = Propagation.SUPPORTS) + public void readData() { + // 데이터 조회 로직 + } +} +``` + +``` +트랜잭션 흐름 (부모 트랜잭션이 없을 경우) + +Plaintext +getOrderInfo 시작 (트랜잭션 X) + ├── readData() 호출 + │ ↓ + │ 트랜잭션 매니저 확인: "진행 중인 트랜잭션 없음" + │ ↓ + │ 신규 트랜잭션 생성 안 함 (단순 쿼리 실행) + │ ↓ + └── getOrderInfo 종료 +``` + +읽기 전용 메서드처럼 굳이 트랜잭션 오버헤드가 필요 없지만, 부모 트랜잭션이 있다면 같은 영속성 컨텍스트를 공유하고 싶을 때 사용 + +### NOT_SUPPORTED +: 트랜잭션을 지원하지 않음. 기존 진행 중인 트랜잭션이 있으면 이를 일시 정지하고, 트랜잭션 없이(Non-Transactional) 실행 + +``` +@Service +@RequiredArgsConstructor +public class OrderService { + + private ExternalApiService externalApiService; + + @Transactional(propagation = Propagation.REQUIRED) + public void processOrder(Order order) { + orderRepository.save(order); + // 트랜잭션 일시 정지 후 외부 API 호출 + externalApiService.sendSms("주문 완료"); + } +} + +@Service +public class ExternalApiService { + @Transactional(propagation = Propagation.NOT_SUPPORTED) + public void sendSms(String message) { + // 외부 SMS 발송 로직 (DB 트랜잭션 무관) + } +} +``` + +``` +processOrder 시작 (신규 트랜잭션 1 시작) + ├── orderRepository.save() 영속성 컨텍스트에 적재 + │ + ├── sendSms() 시작 + │ ├── 물리 트랜잭션 1 일시 정지 + │ ├── 트랜잭션 없이 외부 API 호출 실행 + │ └── 완료 후 물리 트랜잭션 1 재개 + │ + └── processOrder 종료 → 트랜잭션 1 COMMIT +``` +DB Connection을 오래 쥐고 있으면 안 되는 외부 API 호출이나, 긴 작업 시간이 소요되는 트랜잭션 무관 로직을 처리할 때 사용 + +### NEVER +: 트랜잭션 환경을 절대 허용하지 않고 기존 진행 중인 트랜잭션이 있으면 예외(IllegalTransactionStateException)를 발생시킴 없으면 트랜잭션 없이 실행 + +``` +@Service +@RequiredArgsConstructor +public class OrderService { + + private VerifyService verifyService; + + @Transactional(propagation = Propagation.REQUIRED) + public void processOrder(Order order) { + // 검증 로직 호출 (오류 발생) + verifyService.checkSomething(); + } +} + +@Service +public class VerifyService { + @Transactional(propagation = Propagation.NEVER) + public void checkSomething() { + // 무거운 비즈니스 로직 + } +} +``` + +``` +processOrder 시작 (신규 트랜잭션 시작) + ├── checkSomething() 호출 + │ ↓ + │ 트랜잭션 매니저 확인: "트랜잭션이 진행 중이네?" + │ ↓ + │ IllegalTransactionStateException 예외 발생 + │ ↓ + └── processOrder 비정상 종료 (전체 롤백) +``` + +트랜잭션이 적용되면 치명적인 데드락이 발생하거나 성능 저하가 우려되는 핵심 로직을 보호하기 위해 강제 차단할 때 사용 + +### NESTED +: 기존 트랜잭션이 있으면 중첩 트랜잭션을 시작함. (기존 트랜잭션이 없으면 REQUIRED와 동일하게 작동) +물리 트랜잭션은 부모와 1개를 공유하지만 중첩 지점에 DB Savepoint를 생성하여 자식 트랜잭션 부분만 별도로 롤백 가능 + +``` +@Service +@RequiredArgsConstructor +public class OrderService { + + private LogService logService; + + @Transactional(propagation = Propagation.REQUIRED) + public void processOrder(Order order) { + orderRepository.save(order); + + try { + // 자식 트랜잭션 호출 + logService.writeLog("주문 완료"); + } catch (RuntimeException e) { + // 예외를 잡아서 부모 트랜잭션으로 전파되지 않게 막음 + log.error("로그 저장 실패, 하지만 주문은 진행함"); + } + } +} + +@Service +public class LogService { + @Transactional(propagation = Propagation.NESTED) + public void writeLog(String message) { + logRepository.save(new Log(message)); + throw new RuntimeException("로그 저장 중 오류 발생"); + } +} +``` + +``` +processOrder 시작 (신규 물리 트랜잭션 1 시작) + ├── orderRepository.save() + │ + ├── writeLog() 시작 + │ ├── 물리 트랜잭션 1 내부에 Savepoint 생성 + │ ├── logRepository.save() + │ ├── 예외 발생 + │ └── Savepoint 지점까지만 ROLLBACK (부모에게 영향 없음) + │ + ├── 예외가 processOrder로 던져짐 -> catch문으로 잡음 + │ + └── processOrder 종료 + ↓ + rollbackOnly = false 유지됨 + ↓ + 물리 트랜잭션 1 COMMIT + ↓ + 주문은 커밋, 로그는 롤백됨 + +``` + +REQUIRES_NEW보다 DB Connection 낭비를 줄이면서, 부분 롤백(특정 작업 실패 시 메인 작업은 유지)이 필요할 때 사용 (단, JPA에서는 지원하지 않으며 JDBC Savepoint 기능에 의존) + +## 트랜잭션 개선 사항 + +이번 리팩토링에서는 결제/취소/만료 스케줄러 흐름을 중심으로 트랜잭션 경계를 다시 정리함 +목표는 다음 3가지 : + +- 외부 API 호출과 DB 트랜잭션을 명확히 분리 +- 클래스 레벨 `@Transactional` 남용을 줄이고 메서드 단위로 경계를 드러냄 +- 상태 전이 규칙을 강화해 잘못된 결제 상태 변경을 막음 + +--- + +### 1. 예매 취소 플로우에서 외부 결제 취소를 트랜잭션 밖으로 분리 + +기존 `ReservationService.cancelPaidReservation()`은 클래스 레벨 `@Transactional` 안에서 바로 외부 결제 취소 API를 호출하고 있었음 + +이 구조는 다음 문제가 있었음 + +- 외부 네트워크 대기 시간 동안 트랜잭션 경계가 길어짐 +- 결제 성공 플로우와 취소 플로우의 설계 원칙이 일관되지 않음 +- 서비스 계층이 외부 API 호출과 로컬 상태 변경을 동시에 책임짐 + +이를 개선하기 위해 역할을 다음처럼 분리함 + +- `ReservationPaymentFacade` + 외부 PG 취소 API 호출 담당 +- `ReservationService` + 외부 취소가 성공한 뒤 로컬 DB 상태 변경만 담당 + +즉, 흐름은 아래처럼 바뀌었다. + +1. `ReservationPaymentFacade`에서 완료 예매 여부 확인 +2. `paymentService.cancelPayment(...)` 호출 +3. 취소 성공 응답 확인 +4. 그 후에만 `reservationService.cancelPaidReservationAfterPaymentCancellation(...)` 호출 +5. 짧은 로컬 트랜잭션에서 `paymentStatus=CANCELLED`, `status=취소` 반영 + +이로써 외부 API 호출과 DB 상태 변경의 책임이 분리되었고, 긴 트랜잭션을 줄일 수 있게 됨 + +### 2. 클래스 레벨 `@Transactional` 제거 및 메서드 단위 경계 명시 + +기존에는 일부 서비스에 클래스 레벨 `@Transactional`이 걸려 있었음 + +- `ReservationService` +- `FoodOrderService` +- `ReviewService` + +이 방식은 빠르게 적용하기는 쉽지만, 다음 문제가 있는데 + +- 새 메서드가 추가될 때 의도치 않게 모두 쓰기 트랜잭션이 됨 +- 내부 호출(self-invocation) 때문에 메서드별 어노테이션 의도가 흐려질 수 있음 +- 읽기/쓰기 메서드의 구분이 코드에서 잘 드러나지 않음 + +개선 후에는 다음 원칙으로 바꿈 + +- 쓰기 메서드에만 `@Transactional` +- 조회 메서드는 `@Transactional(readOnly = true)` +- 클래스 레벨 선언은 제거 + +예를 들어 다음 메서드들만 명시적으로 트랜잭션을 갖도록 정리함 + +- 예매 생성, 결제 준비, 결제 확정, 취소 +- 매점 주문 생성, 결제 준비, 재고 차감, 취소 +- 리뷰 생성 + +이렇게 하면 트랜잭션 경계가 코드에서 더 분명하게 드러나고, 추후 유지보수 시 실수 가능성이 감소 + +### 3. 만료 스케줄러의 내부 호출 트랜잭션 문제 분리 + +기존 `PendingOrderExpirationService`는 다음 구조였음 + +- `expirePendingReservationsAndFoodOrders()` + 내부에서 + - `expirePendingReservations()` + - `expirePendingFoodOrders()` + 호출 + +하지만 같은 클래스 내부 호출은 스프링 프록시를 타지 않기 때문에, 안쪽 메서드의 `@Transactional`이 독립적으로 적용되지 않음 + +즉, 선언상으로는 분리된 것처럼 보여도 실제로는 하나의 큰 트랜잭션처럼 동작할 수 있음 + +이를 해결하기 위해 만료 책임을 분리하는 두 개의 서비스로 나눔 + +- `PendingReservationExpirationService` +- `PendingFoodOrderExpirationService` + +그리고 `PendingOrderExpirationService`는 두 서비스를 호출하는 오케스트레이션 역할만 담당하게 함 + +이 구조의 장점 : + +- 예약 만료와 매점 주문 만료의 트랜잭션 경계가 실제로 분리 +- 한쪽 실패가 다른 쪽 처리에 불필요하게 영향을 주는 구조를 줄일 수 있음 +- 코드상 의도와 실제 런타임 동작이 일치 + +### 4. 보상 트랜잭션의 락 정책 통일 + +보상 처리용 `PaymentCompensationService`는 `REQUIRES_NEW`를 사용해 독립 트랜잭션으로 보상 로직을 수행함 + +기존에는 다음 차이가 있었는데 + +- 예매 보상 취소는 `findByIdWithLock(...)` +- 매점 주문 보상 취소는 일반 `findById(...)` + +이 차이는 동시성 상황에서 음식 주문 보상 처리 쪽이 더 약한 구조이므로 +개선 후에는 매점 주문 보상 취소도 `findByIdWithLock(...)`로 맞춤 + +이렇게 맞춘 이유 : + +- 보상 로직도 결국 상태 변경이므로 락 정책이 일관되어야 함 +- 사용자 취소, 스케줄러 만료, 보상 처리 등이 겹칠 때 상태 경합을 줄일 수 있음 +- 실패 복구 경로는 특히 더 보수적으로 설계하는 편이 안전함 + +### 5. 주문/예매의 결제 상태 전이 규칙 강화 + +기존에도 `assignPaymentId`, `confirm` 등 일부 검증은 있었지만, `markPaymentPaid`, `markPaymentFailed`, `markPaymentUnknown`, `markPaymentCancelled`는 상대적으로 전이 규칙이 느슨했음 + +이 상태에서는 아래와 같은 문제가 생길 수 있음 + +- 이미 완료된 주문/예매에 잘못된 결제 상태를 덮어쓸 수 있음 +- `PROCESSING`이 아닌 상태에서 `FAILED`, `UNKNOWN`으로 바뀌는 실수를 막기 어려움 +- 보상/예외 처리 중 중복 호출이 일어날 때 의도치 않은 상태 변경이 생길 수 있음 + +이를 개선하기 위해 `Reservation`, `FoodOrder` 엔티티에 상태 전이 검증을 추가힘 + +- `PAID` 전이 + `PROCESSING -> PAID`만 허용 +- `FAILED` 전이 + `PROCESSING -> FAILED`만 허용 +- `UNKNOWN` 전이 + `PROCESSING -> UNKNOWN`만 허용 +- `CANCELLED` 전이 + `PAID` 또는 `UNKNOWN` 상태에서만 허용 +- 잘못된 전이는 `PAYMENT_NOT_READY` 예외로 차단 +- 이미 같은 상태인 경우 일부 메서드는 idempotent 하게 무시 + +이로써 서비스 계층에서 한 번 더 방어하고, 최종적으로는 도메인 엔티티가 자기 상태를 스스로 지킬 수 있게 함 + +### 최종 효과 + +- 외부 결제 호출과 DB 트랜잭션 경계가 더 명확해짐 +- 취소 플로우가 결제 플로우와 동일한 설계 원칙 +- 클래스 레벨 트랜잭션으로 인한 과도한 경계 확장을 감소 +- 스케줄러 만료 처리의 실제 트랜잭션 동작이 선언과 일치 +- 보상 처리의 동시성 안정성이 높아짐 +- 결제 상태 전이 규칙이 강화되어 잘못된 상태 변경 가능성이 줄어듦 + +--- +## 쿼리 성능 최적화 + +이번 과제에서는 실제 서비스에서 자주 사용되거나 성능 병목이 발생할 수 있는 쿼리를 선정한 뒤, +`EXPLAIN ANALYZE`를 통해 실행 계획을 직접 확인하고 인덱스를 개선하여 성능을 최적화했다. + +최적화 대상은 다음 3가지 쿼리이다. + +1. 예약 만료 대상 조회 쿼리 +2. 사용자별 예매 목록 조회 쿼리 +3. 상영 시간 겹침 검사 쿼리 + +### 1. 예약 만료 대상 조회 쿼리 최적화 + +#### 대상 쿼리 + +```sql +SELECT id +FROM reservation +WHERE status = '대기' + AND payment_status IN ('READY', 'FAILED') + AND created_at < NOW() + INTERVAL 1 DAY; +``` + +#### 기존 문제점 + +기존에는 `reservation(status, created_at)` 인덱스를 사용하고 있었기 때문에 +`status`, `created_at` 조건은 인덱스로 처리할 수 있었지만, +`payment_status` 조건은 별도의 `Filter` 단계에서 후처리되고 있었다. + +기존 실행 계획 일부: + +```text +Filter: (reservation.payment_status in ('READY','FAILED')) +Index range scan on reservation using idx_reservation_status_created_at +``` + +즉 쿼리 조건은 `status`, `payment_status`, `created_at`를 모두 사용하지만, +기존 인덱스는 `payment_status`를 반영하지 못해 조건과 인덱스 구성이 완전히 일치하지 않았다. + +#### 적용한 인덱스 + +```sql +CREATE INDEX idx_reservation_status_payment_created_id +ON reservation (status, payment_status, created_at, id); +``` + +#### 개선 결과 + +복합 인덱스 적용 후 실행 계획: + +```text +Covering index range scan on reservation using idx_reservation_status_payment_created_id +``` + +즉 `status`, `payment_status`, `created_at`를 모두 인덱스에서 처리할 수 있게 되었고, +조회 컬럼인 `id`까지 인덱스에 포함되어 테이블 본문 접근 없이 결과를 반환할 수 있게 되었다. + +#### 정리 + +- 기존: `payment_status` 후처리 필터 발생 +- 개선 후: `Covering index range scan` +- 의미: 조건과 인덱스 구조의 정합성이 높아짐 + +--- + +### 2. 사용자별 예매 목록 조회 쿼리 최적화 + +#### 대상 쿼리 + +```sql +SELECT id +FROM reservation +WHERE user_id = 1 +ORDER BY created_at DESC +LIMIT 20; +``` + +#### 기존 문제점 + +기존에는 `user_id`에 대한 외래키 인덱스는 존재했지만, +정렬 기준인 `created_at DESC`가 인덱스에 포함되어 있지 않아 추가 정렬이 발생했다. + +기존 실행 계획: + +```text +Index lookup on reservation using FK... (user_id=1) +Sort: reservation.created_at DESC +``` + +즉 사용자별 예매는 빠르게 찾을 수 있었지만, +최신순으로 정렬하기 위해 별도의 `Sort` 비용이 들었다. + +#### 적용한 인덱스 + +```sql +CREATE INDEX idx_reservation_user_created_id +ON reservation (user_id, created_at, id); +``` + +#### 개선 결과 + +개선 후 실행 계획: + +```text +Covering index lookup on reservation using idx_reservation_user_created_id (user_id=1) (reverse) +``` + +실행 시간 비교: + +- 최적화 전: `2.57 ms` +- 최적화 후: `0.665 ms` + +#### 정리 + +- 기존: `user_id` 조건 탐색 후 별도 정렬 수행 +- 개선 후: 복합 인덱스를 통해 최신순 조회를 인덱스 수준에서 처리 +- 의미: `WHERE + ORDER BY + LIMIT` 패턴 최적화 성공 + +--- + +### 3. 상영 시간 겹침 검사 쿼리 최적화 + +#### 대상 쿼리 + +```sql +SELECT COUNT(*) > 0 +FROM movie_screen ms +WHERE ms.screen_id = 1 + AND ms.start_at < '2026-12-01 20:00:00' + AND ms.end_at > '2026-12-01 19:00:00'; +``` + +이 쿼리는 상영 일정 등록 시, +해당 상영관에 시간 겹침이 존재하는지 검사하는 데 사용된다. + +#### 기존 문제점 + +기존에는 `screen_id` 외래키 인덱스를 통해 상영관별 후보를 찾은 뒤, +`start_at`, `end_at` 조건은 후처리 필터로 검사하고 있었다. + +기존 실행 계획: + +```text +Index lookup on ms using FK... (screen_id=1) +Filter: (ms.start_at < ... and ms.end_at > ...) +``` + +즉 상영관 단위로는 빠르게 찾지만, +시간 조건은 인덱스 차원에서 충분히 활용하지 못하고 있었다. + +#### 적용한 인덱스 + +```sql +CREATE INDEX idx_movie_screen_screen_start_end +ON movie_screen (screen_id, start_at, end_at); +``` + +#### 개선 결과 + +개선 후 실행 계획: + +```text +Covering index range scan on ms using idx_movie_screen_screen_start_end +``` + +실행 시간 비교: + +- 최적화 전: `0.124 ms` +- 최적화 후: `0.052 ms` + +#### 정리 + +- 기존: `screen_id`만 인덱스로 찾고 시간 조건은 필터 처리 +- 개선 후: `screen_id + start_at + end_at` 복합 인덱스를 활용한 범위 탐색 +- 의미: 일정 충돌 검사 비용 감소 + +--- + +## 실행 계획 및 성능 비교 요약 + +| 쿼리 | 기존 방식 | 개선 방식 | 최적화 전 | 최적화 후 | +|---|---|---|---:|---:| +| 예약 만료 대상 조회 | `status`, `created_at` 인덱스 + `payment_status` 후처리 | `status`, `payment_status`, `created_at`, `id` 복합 인덱스 | 실행시간 차이 미미 | `Covering index range scan` 확인 | +| 사용자별 예매 목록 조회 | `user_id` 인덱스 탐색 후 정렬 | `user_id`, `created_at`, `id` 복합 인덱스 | `2.57 ms` | `0.665 ms` | +| 상영 시간 겹침 검사 | `screen_id` 인덱스 탐색 후 시간 필터 | `screen_id`, `start_at`, `end_at` 복합 인덱스 | `0.124 ms` | `0.052 ms` | + +--- + +## 결론 + +이번 최적화에서는 단순히 인덱스를 추가하는 데 그치지 않고, +실제 쿼리의 조건 순서와 접근 패턴에 맞게 복합 인덱스를 설계했다. + +특히 다음과 같은 점을 확인할 수 있었다. + +- 조건 컬럼이 인덱스에 충분히 반영되지 않으면 후처리 `Filter`가 남는다. +- `WHERE + ORDER BY + LIMIT` 패턴은 정렬 컬럼까지 포함한 복합 인덱스가 매우 중요하다. +- `Covering index scan`이 가능해지면 테이블 본문 접근 없이 더 효율적인 조회가 가능하다. + + + ## 운영 로깅 개선 ### 이번 리팩토링에서 적용한 내용 diff --git a/logs/application-2026-05-06.0.log b/logs/application-2026-05-06.0.log new file mode 100644 index 00000000..90687c76 --- /dev/null +++ b/logs/application-2026-05-06.0.log @@ -0,0 +1,737 @@ +2026-05-06 15:20:08.900 [Test worker] ERROR o.s.b.d.LoggingFailureAnalysisReporter - + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Failed to bind properties under 'logging.level.file.name' to org.springframework.boot.logging.LogLevel: + + Property: logging.level.file.name + Value: "logs/application.log" + Origin: class path resource [application.yml] - 29:13 + Reason: failed to convert java.lang.String to org.springframework.boot.logging.LogLevel (caused by java.lang.IllegalArgumentException: No enum constant org.springframework.boot.logging.LogLevel.logs/application.log) + +Action: + +Update your application's configuration. The following values are valid: + + DEBUG + ERROR + FATAL + INFO + OFF + TRACE + WARN + +2026-05-06 15:20:08.902 [Test worker] WARN o.s.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener] to prepare test instance [cgv_23rd.ceos.ApplicationTests@372ca2d6] +java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@291373d3 testClass = cgv_23rd.ceos.ApplicationTests, locations = [], classes = [cgv_23rd.ceos.Application], contextInitializerClasses = [], activeProfiles = ["test"], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.OnFailureConditionReportContextCustomizerFactory$OnFailureConditionReportContextCustomizer@72758afa, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@f667fe, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@10c626be, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@201b6b6f, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2bb7bd00, org.springframework.boot.test.web.reactor.netty.DisableReactorResourceFactoryGlobalResourcesContextCustomizerFactory$DisableReactorResourceFactoryGlobalResourcesContextCustomizerCustomizer@7c2b6087, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@d50f8207], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:200) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:139) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:159) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:383) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:388) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:382) + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) + at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) + at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:382) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:293) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:292) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:281) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:280) + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:27) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:112) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:111) + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:128) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:128) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:201) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:170) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:94) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:59) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:142) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:58) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) + at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) + at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) + at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) + at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) + at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.processAllTestDefinitions(JUnitPlatformTestDefinitionProcessor.java:179) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.access$000(JUnitPlatformTestDefinitionProcessor.java:122) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor.stop(JUnitPlatformTestDefinitionProcessor.java:116) + at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.stop(SuiteTestDefinitionProcessor.java:63) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88) + at jdk.proxy1/jdk.proxy1.$Proxy4.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:195) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) +Caused by: org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'logging.level.file.name' to org.springframework.boot.logging.LogLevel + at org.springframework.boot.context.properties.bind.Binder.handleBindError(Binder.java:399) + at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:361) + at org.springframework.boot.context.properties.bind.Binder.lambda$bindAggregate$2(Binder.java:447) + at org.springframework.boot.context.properties.bind.Binder$Context.withSource(Binder.java:577) + at org.springframework.boot.context.properties.bind.Binder.lambda$bindAggregate$3(Binder.java:448) + at org.springframework.boot.context.properties.bind.AggregateElementBinder.bind(AggregateElementBinder.java:39) + at org.springframework.boot.context.properties.bind.MapBinder$EntryBinder.lambda$bindEntries$0(MapBinder.java:184) + at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1228) + at org.springframework.boot.context.properties.bind.MapBinder$EntryBinder.bindEntries(MapBinder.java:184) + at org.springframework.boot.context.properties.bind.MapBinder.bindAggregate(MapBinder.java:74) + at org.springframework.boot.context.properties.bind.AggregateBinder.bind(AggregateBinder.java:56) + at org.springframework.boot.context.properties.bind.Binder.lambda$bindAggregate$4(Binder.java:450) + at org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth(Binder.java:606) + at org.springframework.boot.context.properties.bind.Binder.bindAggregate(Binder.java:450) + at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:411) + at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:357) + at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:345) + at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:275) + at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:249) + at org.springframework.boot.context.logging.LoggingApplicationListener.setLogLevels(LoggingApplicationListener.java:393) + at org.springframework.boot.context.logging.LoggingApplicationListener.initializeFinalLoggingLevels(LoggingApplicationListener.java:360) + at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:299) + at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:246) + at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:223) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:81) + at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:64) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:112) + at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:63) + at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:353) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) + at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:144) + at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) + at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) + at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1462) + at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:563) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:144) + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:110) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) + ... 92 common frames omitted +Caused by: org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [org.springframework.boot.logging.LogLevel] for value [logs/application.log] + at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47) + at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:182) + at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:110) + at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:101) + at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:93) + at org.springframework.boot.context.properties.bind.Binder.bindProperty(Binder.java:471) + at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:415) + at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:357) + ... 136 common frames omitted +Caused by: java.lang.IllegalArgumentException: No enum constant org.springframework.boot.logging.LogLevel.logs/application.log + at org.springframework.boot.convert.LenientObjectToEnumConverterFactory$LenientToEnumConverter.findEnum(LenientObjectToEnumConverterFactory.java:93) + at org.springframework.boot.convert.LenientObjectToEnumConverterFactory$LenientToEnumConverter.convert(LenientObjectToEnumConverterFactory.java:80) + at org.springframework.boot.convert.LenientObjectToEnumConverterFactory$LenientToEnumConverter.convert(LenientObjectToEnumConverterFactory.java:61) + at org.springframework.core.convert.support.GenericConversionService$ConverterFactoryAdapter.convert(GenericConversionService.java:415) + at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:41) + ... 143 common frames omitted +2026-05-06 15:20:34.621 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final +2026-05-06 15:20:34.635 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - Starting ApplicationTests using Java 21.0.10 with PID 8281 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:34.635 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - The following 1 profile is active: "test" +2026-05-06 15:20:35.322 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:35.380 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 52 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:35.491 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c +2026-05-06 15:20:35.725 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:35.756 [Test worker] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.6.15.Final +2026-05-06 15:20:35.774 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:35.918 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:35.934 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2026-05-06 15:20:36.029 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:36.030 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2026-05-06 15:20:36.046 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:36.057 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:36.702 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:36.765 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:36.945 [Test worker] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2026-05-06 15:20:37.570 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:37.960 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:37.985 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:38.346 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - Started ApplicationTests in 3.973 seconds (process running for 4.795) +2026-05-06 15:20:38.410 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:38.413 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:38.713 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:38.721 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2026-05-06 15:20:38.723 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2026-05-06 15:20:45.160 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final +2026-05-06 15:20:45.173 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - Starting ApplicationTests using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:45.174 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - The following 1 profile is active: "test" +2026-05-06 15:20:45.778 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:45.825 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 40 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:45.933 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c +2026-05-06 15:20:46.214 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:46.244 [Test worker] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.6.15.Final +2026-05-06 15:20:46.262 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:46.422 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:46.437 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2026-05-06 15:20:46.541 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:46.543 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2026-05-06 15:20:46.559 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:46.571 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:47.254 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:47.313 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:47.537 [Test worker] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2026-05-06 15:20:48.231 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:48.650 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:48.675 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:49.007 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - Started ApplicationTests in 4.062 seconds (process running for 5.018) +2026-05-06 15:20:49.064 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:49.067 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:49.340 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.AdminFoodControllerTest]: AdminFoodControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:49.351 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.AdminFoodControllerTest +2026-05-06 15:20:49.377 [Test worker] INFO c.c.c.AdminFoodControllerTest - Starting AdminFoodControllerTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:49.377 [Test worker] INFO c.c.c.AdminFoodControllerTest - The following 1 profile is active: "test" +2026-05-06 15:20:49.554 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:49.569 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 14 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:49.592 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=de343b37-c878-3822-a09c-20a1fb8e4a2b +2026-05-06 15:20:50.256 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:50.259 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:50.268 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:50.269 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-2 - Starting... +2026-05-06 15:20:50.270 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-2 - Added connection conn10: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:50.270 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-2 - Start completed. +2026-05-06 15:20:50.270 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:50.271 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-2)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:50.396 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:50.443 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:50.637 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:50.785 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:50.800 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:51.037 [Test worker] INFO o.s.b.t.m.w.SpringBootMockServletContext - Initializing Spring TestDispatcherServlet '' +2026-05-06 15:20:51.037 [Test worker] INFO o.s.t.w.s.TestDispatcherServlet - Initializing Servlet '' +2026-05-06 15:20:51.039 [Test worker] INFO o.s.t.w.s.TestDispatcherServlet - Completed initialization in 2 ms +2026-05-06 15:20:51.078 [Test worker] INFO c.c.c.AdminFoodControllerTest - Started AdminFoodControllerTest in 1.725 seconds (process running for 7.09) +2026-05-06 15:20:51.086 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:51.088 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:51.247 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.AdminMovieControllerTest]: AdminMovieControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:51.250 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.AdminMovieControllerTest +2026-05-06 15:20:51.343 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.AuthControllerTest]: AuthControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:51.345 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.AuthControllerTest +2026-05-06 15:20:51.388 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.FoodOrderControllerTest]: FoodOrderControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:51.390 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.FoodOrderControllerTest +2026-05-06 15:20:51.424 [Test worker] WARN c.c.g.a.e.handler.ExceptionAdvice - Validation failed: [[items[0].quantity] must be greater than or equal to 1 (입력값: 0)] +2026-05-06 15:20:51.445 [Test worker] ERROR AuthenticationEntryPoint - 인증되지 않은 사용자 접근: Full authentication is required to access this resource +2026-05-06 15:20:51.475 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.MovieControllerTest]: MovieControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:51.477 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.MovieControllerTest +2026-05-06 15:20:51.515 [Test worker] ERROR AuthenticationEntryPoint - 인증되지 않은 사용자 접근: Full authentication is required to access this resource +2026-05-06 15:20:51.542 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.ReservationControllerTest]: ReservationControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:51.544 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.ReservationControllerTest +2026-05-06 15:20:51.586 [Test worker] ERROR AuthenticationEntryPoint - 인증되지 않은 사용자 접근: Full authentication is required to access this resource +2026-05-06 15:20:51.603 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.ReviewControllerTest]: ReviewControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:51.605 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.ReviewControllerTest +2026-05-06 15:20:51.630 [Test worker] ERROR AuthenticationEntryPoint - 인증되지 않은 사용자 접근: Full authentication is required to access this resource +2026-05-06 15:20:51.647 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.ScheduleControllerTest]: ScheduleControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:51.651 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.ScheduleControllerTest +2026-05-06 15:20:51.668 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.TheaterControllerTest]: TheaterControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:51.670 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.TheaterControllerTest +2026-05-06 15:20:51.706 [Test worker] ERROR AuthenticationEntryPoint - 인증되지 않은 사용자 접근: Full authentication is required to access this resource +2026-05-06 15:20:51.728 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest]: FoodPaymentFlowIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:51.739 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest +2026-05-06 15:20:51.772 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:51.772 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - The following 1 profile is active: "test" +2026-05-06 15:20:52.028 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:52.053 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 23 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:52.094 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c +2026-05-06 15:20:52.202 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:52.204 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:52.210 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:52.210 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-3 - Starting... +2026-05-06 15:20:52.211 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-3 - Added connection conn20: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:52.211 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-3 - Start completed. +2026-05-06 15:20:52.211 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:52.212 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-3)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:52.303 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:52.339 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:52.505 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:52.629 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:52.643 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:52.804 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Started FoodPaymentFlowIntegrationTest in 1.063 seconds (process running for 8.816) +2026-05-06 15:20:52.810 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:52.812 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:52.819 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:52.825 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-3 - Shutdown initiated... +2026-05-06 15:20:52.826 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-3 - Shutdown completed. +2026-05-06 15:20:52.850 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:52.850 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - The following 1 profile is active: "test" +2026-05-06 15:20:53.043 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:53.069 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 25 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:53.103 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c +2026-05-06 15:20:53.158 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:53.160 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:53.164 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:53.165 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-4 - Starting... +2026-05-06 15:20:53.166 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-4 - Added connection conn30: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:53.166 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-4 - Start completed. +2026-05-06 15:20:53.166 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:53.167 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-4)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:53.243 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:53.267 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:53.420 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:53.503 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:53.516 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:53.668 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Started FoodPaymentFlowIntegrationTest in 0.84 seconds (process running for 9.68) +2026-05-06 15:20:53.674 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:53.676 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:53.810 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:53.814 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-4 - Shutdown initiated... +2026-05-06 15:20:53.815 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-4 - Shutdown completed. +2026-05-06 15:20:53.837 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:53.838 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - The following 1 profile is active: "test" +2026-05-06 15:20:53.990 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:54.009 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 17 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:54.041 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c +2026-05-06 15:20:54.102 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:54.104 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:54.108 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:54.109 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-5 - Starting... +2026-05-06 15:20:54.109 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-5 - Added connection conn40: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:54.109 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-5 - Start completed. +2026-05-06 15:20:54.110 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:54.110 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-5)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:54.177 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:54.197 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:54.312 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:54.365 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:54.373 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:54.482 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Started FoodPaymentFlowIntegrationTest in 0.665 seconds (process running for 10.494) +2026-05-06 15:20:54.487 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:54.489 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:54.547 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:54.552 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-5 - Shutdown initiated... +2026-05-06 15:20:54.552 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-5 - Shutdown completed. +2026-05-06 15:20:54.574 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:54.574 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - The following 1 profile is active: "test" +2026-05-06 15:20:54.717 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:54.734 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 16 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:54.756 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c +2026-05-06 15:20:54.803 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:54.804 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:54.808 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:54.808 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-6 - Starting... +2026-05-06 15:20:54.809 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-6 - Added connection conn50: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:54.809 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-6 - Start completed. +2026-05-06 15:20:54.809 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:54.809 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-6)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:54.873 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:54.890 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:54.982 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:55.025 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:55.032 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:55.154 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Started FoodPaymentFlowIntegrationTest in 0.6 seconds (process running for 11.165) +2026-05-06 15:20:55.166 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:55.168 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:55.205 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest]: PendingReservationHoldIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:55.205 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest +2026-05-06 15:20:55.211 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:55.214 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2026-05-06 15:20:55.214 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2026-05-06 15:20:55.234 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - Starting PendingReservationHoldIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:55.234 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - The following 1 profile is active: "test" +2026-05-06 15:20:55.360 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:55.376 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 14 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:55.398 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c +2026-05-06 15:20:55.430 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:55.431 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:55.435 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:55.436 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-7 - Starting... +2026-05-06 15:20:55.436 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-7 - Added connection conn60: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:55.436 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-7 - Start completed. +2026-05-06 15:20:55.436 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:55.437 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-7)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:55.491 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:55.507 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:55.581 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:55.670 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:55.676 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:55.760 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - Started PendingReservationHoldIntegrationTest in 0.544 seconds (process running for 11.772) +2026-05-06 15:20:55.765 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:55.768 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:55.804 [Test worker] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=1, expiredReservations=1 +2026-05-06 15:20:55.829 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:55.832 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-7 - Shutdown initiated... +2026-05-06 15:20:55.849 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-7 - Shutdown completed. +2026-05-06 15:20:55.868 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - Starting PendingReservationHoldIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:55.868 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - The following 1 profile is active: "test" +2026-05-06 15:20:56.028 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:56.046 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 16 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:56.064 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c +2026-05-06 15:20:56.100 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:56.101 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:56.105 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:56.106 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-8 - Starting... +2026-05-06 15:20:56.106 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-8 - Added connection conn70: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:56.107 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-8 - Start completed. +2026-05-06 15:20:56.107 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:56.107 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-8)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:56.163 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:56.177 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:56.252 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:56.331 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:56.339 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:56.431 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - Started PendingReservationHoldIntegrationTest in 0.58 seconds (process running for 12.443) +2026-05-06 15:20:56.437 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:56.439 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:56.459 [Test worker] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:56.469 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.service.ReservationConcurrencyTest]: ReservationConcurrencyTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2026-05-06 15:20:56.470 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.service.ReservationConcurrencyTest +2026-05-06 15:20:56.475 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:56.478 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-8 - Shutdown initiated... +2026-05-06 15:20:56.495 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-8 - Shutdown completed. +2026-05-06 15:20:56.512 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Starting ReservationConcurrencyTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:56.512 [Test worker] INFO c.c.s.ReservationConcurrencyTest - The following 1 profile is active: "test" +2026-05-06 15:20:56.633 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:56.647 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:56.663 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c +2026-05-06 15:20:56.697 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:56.698 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:56.702 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:56.702 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-9 - Starting... +2026-05-06 15:20:56.703 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-9 - Added connection conn79: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:56.703 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-9 - Start completed. +2026-05-06 15:20:56.703 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:56.703 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-9)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:56.752 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:56.762 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:56.828 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:56.900 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:56.912 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:57.019 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Started ReservationConcurrencyTest in 0.522 seconds (process running for 13.031) +2026-05-06 15:20:57.023 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:57.025 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:57.055 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:57.058 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-9 - Shutdown initiated... +2026-05-06 15:20:57.082 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-9 - Shutdown completed. +2026-05-06 15:20:57.098 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Starting ReservationConcurrencyTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:57.098 [Test worker] INFO c.c.s.ReservationConcurrencyTest - The following 1 profile is active: "test" +2026-05-06 15:20:57.218 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:57.232 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:57.248 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c +2026-05-06 15:20:57.280 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:57.281 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:57.284 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:57.285 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-10 - Starting... +2026-05-06 15:20:57.285 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-10 - Added connection conn88: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:57.285 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-10 - Start completed. +2026-05-06 15:20:57.286 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:57.286 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-10)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:57.333 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:57.343 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:57.410 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:57.518 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:57.524 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:57.606 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Started ReservationConcurrencyTest in 0.522 seconds (process running for 13.617) +2026-05-06 15:20:57.610 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:57.611 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:57.643 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:57.646 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-10 - Shutdown initiated... +2026-05-06 15:20:57.668 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-10 - Shutdown completed. +2026-05-06 15:20:57.683 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Starting ReservationConcurrencyTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:57.683 [Test worker] INFO c.c.s.ReservationConcurrencyTest - The following 1 profile is active: "test" +2026-05-06 15:20:57.941 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-05-06 15:20:57.954 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 21 JPA repository interfaces. +2026-05-06 15:20:57.970 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c +2026-05-06 15:20:58.000 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2026-05-06 15:20:58.001 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2026-05-06 15:20:58.004 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2026-05-06 15:20:58.004 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-11 - Starting... +2026-05-06 15:20:58.005 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-11 - Added connection conn97: url=jdbc:h2:mem:testdb user=SA +2026-05-06 15:20:58.005 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-11 - Start completed. +2026-05-06 15:20:58.005 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-05-06 15:20:58.005 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-11)'] + Database driver: undefined/unknown + Database version: 2.3.232 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-05-06 15:20:58.064 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-05-06 15:20:58.075 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:58.136 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-05-06 15:20:58.208 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2026-05-06 15:20:58.213 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl +2026-05-06 15:20:58.297 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Started ReservationConcurrencyTest in 0.627 seconds (process running for 14.308) +2026-05-06 15:20:58.301 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 +2026-05-06 15:20:58.302 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 +2026-05-06 15:20:58.759 [Test worker] INFO c.c.s.p.PaymentFeignIntegrationTest - Starting PaymentFeignIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) +2026-05-06 15:20:58.759 [Test worker] INFO c.c.s.p.PaymentFeignIntegrationTest - No active profile set, falling back to 1 default profile: "default" +2026-05-06 15:20:58.848 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=cbe11674-0179-3e1c-bb44-e12a98288510 +2026-05-06 15:20:58.894 [Test worker] INFO c.c.s.p.PaymentFeignIntegrationTest - Started PaymentFeignIntegrationTest in 0.153 seconds (process running for 14.906) +2026-05-06 15:20:58.965 [Test worker] WARN c.ceos.service.pay.PaymentService - Payment instant request returned empty success body. paymentId=RES_1_12345678 +2026-05-06 15:20:58.982 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:58.983 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists actor cascade +2026-05-06 15:20:58.983 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists food cascade +2026-05-06 15:20:58.983 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists food_order cascade +2026-05-06 15:20:58.983 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists food_order_item cascade +2026-05-06 15:20:58.983 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie cascade +2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_actor cascade +2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_image cascade +2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_like cascade +2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_screen cascade +2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_statistics cascade +2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists refresh_token cascade +2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists reservation cascade +2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists reservation_seat cascade +2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists review cascade +2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists screen cascade +2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists screen_type cascade +2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists seat cascade +2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists seat_template cascade +2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists theater cascade +2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists theater_food cascade +2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists theater_like cascade +2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists users cascade +2026-05-06 15:20:58.986 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-2 - Shutdown initiated... +2026-05-06 15:20:58.986 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-2 - Shutdown completed. +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists actor cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists food cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists food_order cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists food_order_item cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_actor cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_image cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_like cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_screen cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_statistics cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists refresh_token cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists reservation cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists reservation_seat cascade +2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists review cascade +2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists screen cascade +2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists screen_type cascade +2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists seat cascade +2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists seat_template cascade +2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists theater cascade +2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists theater_food cascade +2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists theater_like cascade +2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists users cascade +2026-05-06 15:20:58.992 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-6 - Shutdown initiated... +2026-05-06 15:20:58.992 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-6 - Shutdown completed. +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists actor cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists food cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists food_order cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists food_order_item cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_actor cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_image cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_like cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_screen cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists movie_statistics cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists refresh_token cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists reservation cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists reservation_seat cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists review cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists screen cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists screen_type cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists seat cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists seat_template cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists theater cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists theater_food cascade +2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists theater_like cascade +2026-05-06 15:20:58.998 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - + drop table if exists users cascade +2026-05-06 15:20:58.998 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-11 - Shutdown initiated... +2026-05-06 15:20:59.000 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-11 - Shutdown completed. diff --git a/logs/application.log b/logs/application.log index 90687c76..d2359db0 100644 --- a/logs/application.log +++ b/logs/application.log @@ -1,737 +1,716 @@ -2026-05-06 15:20:08.900 [Test worker] ERROR o.s.b.d.LoggingFailureAnalysisReporter - - -*************************** -APPLICATION FAILED TO START -*************************** - -Description: - -Failed to bind properties under 'logging.level.file.name' to org.springframework.boot.logging.LogLevel: - - Property: logging.level.file.name - Value: "logs/application.log" - Origin: class path resource [application.yml] - 29:13 - Reason: failed to convert java.lang.String to org.springframework.boot.logging.LogLevel (caused by java.lang.IllegalArgumentException: No enum constant org.springframework.boot.logging.LogLevel.logs/application.log) - -Action: - -Update your application's configuration. The following values are valid: - - DEBUG - ERROR - FATAL - INFO - OFF - TRACE - WARN - -2026-05-06 15:20:08.902 [Test worker] WARN o.s.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener] to prepare test instance [cgv_23rd.ceos.ApplicationTests@372ca2d6] -java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@291373d3 testClass = cgv_23rd.ceos.ApplicationTests, locations = [], classes = [cgv_23rd.ceos.Application], contextInitializerClasses = [], activeProfiles = ["test"], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.OnFailureConditionReportContextCustomizerFactory$OnFailureConditionReportContextCustomizer@72758afa, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@f667fe, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@10c626be, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@201b6b6f, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2bb7bd00, org.springframework.boot.test.web.reactor.netty.DisableReactorResourceFactoryGlobalResourcesContextCustomizerFactory$DisableReactorResourceFactoryGlobalResourcesContextCustomizerCustomizer@7c2b6087, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@d50f8207], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180) - at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) - at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:200) - at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:139) - at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) - at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:159) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:383) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:388) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:382) - at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) - at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) - at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) - at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) - at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) - at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) - at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) - at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) - at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) - at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) - at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:382) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:293) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:292) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:281) - at java.base/java.util.Optional.orElseGet(Optional.java:364) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:280) - at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:27) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:112) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:111) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:128) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:128) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:201) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:170) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:94) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:59) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:142) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:58) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) - at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) - at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) - at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) - at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) - at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.processAllTestDefinitions(JUnitPlatformTestDefinitionProcessor.java:179) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.access$000(JUnitPlatformTestDefinitionProcessor.java:122) - at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor.stop(JUnitPlatformTestDefinitionProcessor.java:116) - at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.stop(SuiteTestDefinitionProcessor.java:63) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28) - at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19) - at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) - at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88) - at jdk.proxy1/jdk.proxy1.$Proxy4.stop(Unknown Source) - at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:195) - at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126) - at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103) - at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63) - at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) - at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122) - at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72) - at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) - at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) -Caused by: org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'logging.level.file.name' to org.springframework.boot.logging.LogLevel - at org.springframework.boot.context.properties.bind.Binder.handleBindError(Binder.java:399) - at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:361) - at org.springframework.boot.context.properties.bind.Binder.lambda$bindAggregate$2(Binder.java:447) - at org.springframework.boot.context.properties.bind.Binder$Context.withSource(Binder.java:577) - at org.springframework.boot.context.properties.bind.Binder.lambda$bindAggregate$3(Binder.java:448) - at org.springframework.boot.context.properties.bind.AggregateElementBinder.bind(AggregateElementBinder.java:39) - at org.springframework.boot.context.properties.bind.MapBinder$EntryBinder.lambda$bindEntries$0(MapBinder.java:184) - at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1228) - at org.springframework.boot.context.properties.bind.MapBinder$EntryBinder.bindEntries(MapBinder.java:184) - at org.springframework.boot.context.properties.bind.MapBinder.bindAggregate(MapBinder.java:74) - at org.springframework.boot.context.properties.bind.AggregateBinder.bind(AggregateBinder.java:56) - at org.springframework.boot.context.properties.bind.Binder.lambda$bindAggregate$4(Binder.java:450) - at org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth(Binder.java:606) - at org.springframework.boot.context.properties.bind.Binder.bindAggregate(Binder.java:450) - at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:411) - at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:357) - at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:345) - at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:275) - at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:249) - at org.springframework.boot.context.logging.LoggingApplicationListener.setLogLevels(LoggingApplicationListener.java:393) - at org.springframework.boot.context.logging.LoggingApplicationListener.initializeFinalLoggingLevels(LoggingApplicationListener.java:360) - at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:299) - at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:246) - at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:223) - at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185) - at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178) - at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156) - at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) - at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) - at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:81) - at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:64) - at java.base/java.lang.Iterable.forEach(Iterable.java:75) - at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) - at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:112) - at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:63) - at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:353) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) - at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:144) - at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) - at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) - at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1462) - at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:563) - at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:144) - at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:110) - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) - ... 92 common frames omitted -Caused by: org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [org.springframework.boot.logging.LogLevel] for value [logs/application.log] - at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47) - at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:182) - at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:110) - at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:101) - at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:93) - at org.springframework.boot.context.properties.bind.Binder.bindProperty(Binder.java:471) - at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:415) - at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:357) - ... 136 common frames omitted -Caused by: java.lang.IllegalArgumentException: No enum constant org.springframework.boot.logging.LogLevel.logs/application.log - at org.springframework.boot.convert.LenientObjectToEnumConverterFactory$LenientToEnumConverter.findEnum(LenientObjectToEnumConverterFactory.java:93) - at org.springframework.boot.convert.LenientObjectToEnumConverterFactory$LenientToEnumConverter.convert(LenientObjectToEnumConverterFactory.java:80) - at org.springframework.boot.convert.LenientObjectToEnumConverterFactory$LenientToEnumConverter.convert(LenientObjectToEnumConverterFactory.java:61) - at org.springframework.core.convert.support.GenericConversionService$ConverterFactoryAdapter.convert(GenericConversionService.java:415) - at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:41) - ... 143 common frames omitted -2026-05-06 15:20:34.621 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final -2026-05-06 15:20:34.635 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - Starting ApplicationTests using Java 21.0.10 with PID 8281 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:34.635 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - The following 1 profile is active: "test" -2026-05-06 15:20:35.322 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:35.380 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 52 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:35.491 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c -2026-05-06 15:20:35.725 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:35.756 [Test worker] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.6.15.Final -2026-05-06 15:20:35.774 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:35.918 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:35.934 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2026-05-06 15:20:36.029 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:36.030 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2026-05-06 15:20:36.046 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:36.057 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:36.702 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:36.765 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:36.945 [Test worker] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2026-05-06 15:20:37.570 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:37.960 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:37.985 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:38.346 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - Started ApplicationTests in 3.973 seconds (process running for 4.795) -2026-05-06 15:20:38.410 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:38.413 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:38.713 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:38.721 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2026-05-06 15:20:38.723 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2026-05-06 15:20:45.160 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.2.Final -2026-05-06 15:20:45.173 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - Starting ApplicationTests using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:45.174 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - The following 1 profile is active: "test" -2026-05-06 15:20:45.778 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:45.825 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 40 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:45.933 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c -2026-05-06 15:20:46.214 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:46.244 [Test worker] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.6.15.Final -2026-05-06 15:20:46.262 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:46.422 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:46.437 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2026-05-06 15:20:46.541 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:46.543 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2026-05-06 15:20:46.559 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:46.571 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:47.254 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:47.313 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:47.537 [Test worker] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2026-05-06 15:20:48.231 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:48.650 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:48.675 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:49.007 [Test worker] INFO cgv_23rd.ceos.ApplicationTests - Started ApplicationTests in 4.062 seconds (process running for 5.018) -2026-05-06 15:20:49.064 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:49.067 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:49.340 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.AdminFoodControllerTest]: AdminFoodControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:49.351 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.AdminFoodControllerTest -2026-05-06 15:20:49.377 [Test worker] INFO c.c.c.AdminFoodControllerTest - Starting AdminFoodControllerTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:49.377 [Test worker] INFO c.c.c.AdminFoodControllerTest - The following 1 profile is active: "test" -2026-05-06 15:20:49.554 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:49.569 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 14 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:49.592 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=de343b37-c878-3822-a09c-20a1fb8e4a2b -2026-05-06 15:20:50.256 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:50.259 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:50.268 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:50.269 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-2 - Starting... -2026-05-06 15:20:50.270 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-2 - Added connection conn10: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:50.270 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-2 - Start completed. -2026-05-06 15:20:50.270 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:50.271 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-2)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:50.396 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:50.443 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:50.637 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:50.785 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:50.800 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:51.037 [Test worker] INFO o.s.b.t.m.w.SpringBootMockServletContext - Initializing Spring TestDispatcherServlet '' -2026-05-06 15:20:51.037 [Test worker] INFO o.s.t.w.s.TestDispatcherServlet - Initializing Servlet '' -2026-05-06 15:20:51.039 [Test worker] INFO o.s.t.w.s.TestDispatcherServlet - Completed initialization in 2 ms -2026-05-06 15:20:51.078 [Test worker] INFO c.c.c.AdminFoodControllerTest - Started AdminFoodControllerTest in 1.725 seconds (process running for 7.09) -2026-05-06 15:20:51.086 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:51.088 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:51.247 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.AdminMovieControllerTest]: AdminMovieControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:51.250 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.AdminMovieControllerTest -2026-05-06 15:20:51.343 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.AuthControllerTest]: AuthControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:51.345 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.AuthControllerTest -2026-05-06 15:20:51.388 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.FoodOrderControllerTest]: FoodOrderControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:51.390 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.FoodOrderControllerTest -2026-05-06 15:20:51.424 [Test worker] WARN c.c.g.a.e.handler.ExceptionAdvice - Validation failed: [[items[0].quantity] must be greater than or equal to 1 (입력값: 0)] -2026-05-06 15:20:51.445 [Test worker] ERROR AuthenticationEntryPoint - 인증되지 않은 사용자 접근: Full authentication is required to access this resource -2026-05-06 15:20:51.475 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.MovieControllerTest]: MovieControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:51.477 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.MovieControllerTest -2026-05-06 15:20:51.515 [Test worker] ERROR AuthenticationEntryPoint - 인증되지 않은 사용자 접근: Full authentication is required to access this resource -2026-05-06 15:20:51.542 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.ReservationControllerTest]: ReservationControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:51.544 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.ReservationControllerTest -2026-05-06 15:20:51.586 [Test worker] ERROR AuthenticationEntryPoint - 인증되지 않은 사용자 접근: Full authentication is required to access this resource -2026-05-06 15:20:51.603 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.ReviewControllerTest]: ReviewControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:51.605 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.ReviewControllerTest -2026-05-06 15:20:51.630 [Test worker] ERROR AuthenticationEntryPoint - 인증되지 않은 사용자 접근: Full authentication is required to access this resource -2026-05-06 15:20:51.647 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.ScheduleControllerTest]: ScheduleControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:51.651 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.ScheduleControllerTest -2026-05-06 15:20:51.668 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.TheaterControllerTest]: TheaterControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:51.670 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.TheaterControllerTest -2026-05-06 15:20:51.706 [Test worker] ERROR AuthenticationEntryPoint - 인증되지 않은 사용자 접근: Full authentication is required to access this resource -2026-05-06 15:20:51.728 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest]: FoodPaymentFlowIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:51.739 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest -2026-05-06 15:20:51.772 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:51.772 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - The following 1 profile is active: "test" -2026-05-06 15:20:52.028 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:52.053 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 23 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:52.094 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c -2026-05-06 15:20:52.202 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:52.204 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:52.210 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:52.210 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-3 - Starting... -2026-05-06 15:20:52.211 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-3 - Added connection conn20: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:52.211 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-3 - Start completed. -2026-05-06 15:20:52.211 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:52.212 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-3)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:52.303 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:52.339 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:52.505 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:52.629 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:52.643 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:52.804 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Started FoodPaymentFlowIntegrationTest in 1.063 seconds (process running for 8.816) -2026-05-06 15:20:52.810 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:52.812 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:52.819 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:52.825 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-3 - Shutdown initiated... -2026-05-06 15:20:52.826 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-3 - Shutdown completed. -2026-05-06 15:20:52.850 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:52.850 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - The following 1 profile is active: "test" -2026-05-06 15:20:53.043 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:53.069 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 25 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:53.103 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c -2026-05-06 15:20:53.158 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:53.160 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:53.164 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:53.165 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-4 - Starting... -2026-05-06 15:20:53.166 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-4 - Added connection conn30: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:53.166 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-4 - Start completed. -2026-05-06 15:20:53.166 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:53.167 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-4)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:53.243 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:53.267 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:53.420 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:53.503 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:53.516 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:53.668 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Started FoodPaymentFlowIntegrationTest in 0.84 seconds (process running for 9.68) -2026-05-06 15:20:53.674 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:53.676 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:53.810 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:53.814 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-4 - Shutdown initiated... -2026-05-06 15:20:53.815 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-4 - Shutdown completed. -2026-05-06 15:20:53.837 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:53.838 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - The following 1 profile is active: "test" -2026-05-06 15:20:53.990 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:54.009 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 17 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:54.041 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c -2026-05-06 15:20:54.102 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:54.104 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:54.108 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:54.109 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-5 - Starting... -2026-05-06 15:20:54.109 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-5 - Added connection conn40: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:54.109 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-5 - Start completed. -2026-05-06 15:20:54.110 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:54.110 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-5)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:54.177 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:54.197 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:54.312 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:54.365 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:54.373 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:54.482 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Started FoodPaymentFlowIntegrationTest in 0.665 seconds (process running for 10.494) -2026-05-06 15:20:54.487 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:54.489 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:54.547 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:54.552 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-5 - Shutdown initiated... -2026-05-06 15:20:54.552 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-5 - Shutdown completed. -2026-05-06 15:20:54.574 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:54.574 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - The following 1 profile is active: "test" -2026-05-06 15:20:54.717 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:54.734 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 16 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:54.756 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c -2026-05-06 15:20:54.803 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:54.804 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:54.808 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:54.808 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-6 - Starting... -2026-05-06 15:20:54.809 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-6 - Added connection conn50: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:54.809 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-6 - Start completed. -2026-05-06 15:20:54.809 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:54.809 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-6)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:54.873 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:54.890 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:54.982 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:55.025 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:55.032 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:55.154 [Test worker] INFO c.c.s.FoodPaymentFlowIntegrationTest - Started FoodPaymentFlowIntegrationTest in 0.6 seconds (process running for 11.165) -2026-05-06 15:20:55.166 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:55.168 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:55.205 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest]: PendingReservationHoldIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:55.205 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest -2026-05-06 15:20:55.211 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:55.214 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2026-05-06 15:20:55.214 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2026-05-06 15:20:55.234 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - Starting PendingReservationHoldIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:55.234 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - The following 1 profile is active: "test" -2026-05-06 15:20:55.360 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:55.376 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 14 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:55.398 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c -2026-05-06 15:20:55.430 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:55.431 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:55.435 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:55.436 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-7 - Starting... -2026-05-06 15:20:55.436 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-7 - Added connection conn60: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:55.436 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-7 - Start completed. -2026-05-06 15:20:55.436 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:55.437 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-7)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:55.491 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:55.507 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:55.581 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:55.670 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:55.676 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:55.760 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - Started PendingReservationHoldIntegrationTest in 0.544 seconds (process running for 11.772) -2026-05-06 15:20:55.765 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:55.768 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:55.804 [Test worker] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=1, expiredReservations=1 -2026-05-06 15:20:55.829 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:55.832 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-7 - Shutdown initiated... -2026-05-06 15:20:55.849 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-7 - Shutdown completed. -2026-05-06 15:20:55.868 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - Starting PendingReservationHoldIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:55.868 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - The following 1 profile is active: "test" -2026-05-06 15:20:56.028 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:56.046 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 16 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:56.064 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c -2026-05-06 15:20:56.100 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:56.101 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:56.105 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:56.106 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-8 - Starting... -2026-05-06 15:20:56.106 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-8 - Added connection conn70: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:56.107 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-8 - Start completed. -2026-05-06 15:20:56.107 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:56.107 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-8)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:56.163 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:56.177 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:56.252 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:56.331 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:56.339 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:56.431 [Test worker] INFO c.c.s.PendingReservationHoldIntegrationTest - Started PendingReservationHoldIntegrationTest in 0.58 seconds (process running for 12.443) -2026-05-06 15:20:56.437 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:56.439 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:56.459 [Test worker] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:56.469 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [cgv_23rd.ceos.service.ReservationConcurrencyTest]: ReservationConcurrencyTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2026-05-06 15:20:56.470 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.service.ReservationConcurrencyTest -2026-05-06 15:20:56.475 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:56.478 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-8 - Shutdown initiated... -2026-05-06 15:20:56.495 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-8 - Shutdown completed. -2026-05-06 15:20:56.512 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Starting ReservationConcurrencyTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:56.512 [Test worker] INFO c.c.s.ReservationConcurrencyTest - The following 1 profile is active: "test" -2026-05-06 15:20:56.633 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:56.647 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:56.663 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c -2026-05-06 15:20:56.697 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:56.698 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:56.702 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:56.702 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-9 - Starting... -2026-05-06 15:20:56.703 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-9 - Added connection conn79: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:56.703 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-9 - Start completed. -2026-05-06 15:20:56.703 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:56.703 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-9)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:56.752 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:56.762 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:56.828 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:56.900 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:56.912 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:57.019 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Started ReservationConcurrencyTest in 0.522 seconds (process running for 13.031) -2026-05-06 15:20:57.023 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:57.025 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:57.055 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:57.058 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-9 - Shutdown initiated... -2026-05-06 15:20:57.082 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-9 - Shutdown completed. -2026-05-06 15:20:57.098 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Starting ReservationConcurrencyTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:57.098 [Test worker] INFO c.c.s.ReservationConcurrencyTest - The following 1 profile is active: "test" -2026-05-06 15:20:57.218 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:57.232 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:57.248 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c -2026-05-06 15:20:57.280 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:57.281 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:57.284 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:57.285 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-10 - Starting... -2026-05-06 15:20:57.285 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-10 - Added connection conn88: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:57.285 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-10 - Start completed. -2026-05-06 15:20:57.286 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:57.286 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-10)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:57.333 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:57.343 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:57.410 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:57.518 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:57.524 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:57.606 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Started ReservationConcurrencyTest in 0.522 seconds (process running for 13.617) -2026-05-06 15:20:57.610 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:57.611 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:57.643 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:57.646 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-10 - Shutdown initiated... -2026-05-06 15:20:57.668 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-10 - Shutdown completed. -2026-05-06 15:20:57.683 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Starting ReservationConcurrencyTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:57.683 [Test worker] INFO c.c.s.ReservationConcurrencyTest - The following 1 profile is active: "test" -2026-05-06 15:20:57.941 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-05-06 15:20:57.954 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 21 JPA repository interfaces. -2026-05-06 15:20:57.970 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=7aed13ff-a551-3fce-a7e0-8f429556ea6c -2026-05-06 15:20:58.000 [Test worker] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2026-05-06 15:20:58.001 [Test worker] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2026-05-06 15:20:58.004 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2026-05-06 15:20:58.004 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-11 - Starting... -2026-05-06 15:20:58.005 [Test worker] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-11 - Added connection conn97: url=jdbc:h2:mem:testdb user=SA -2026-05-06 15:20:58.005 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-11 - Start completed. -2026-05-06 15:20:58.005 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-05-06 15:20:58.005 [Test worker] INFO o.hibernate.orm.connections.pooling - HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-11)'] - Database driver: undefined/unknown - Database version: 2.3.232 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2026-05-06 15:20:58.064 [Test worker] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-05-06 15:20:58.075 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:58.136 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2026-05-06 15:20:58.208 [Test worker] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2026-05-06 15:20:58.213 [Test worker] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl -2026-05-06 15:20:58.297 [Test worker] INFO c.c.s.ReservationConcurrencyTest - Started ReservationConcurrencyTest in 0.627 seconds (process running for 14.308) -2026-05-06 15:20:58.301 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending reservations. deletedSeats=0, expiredReservations=0 -2026-05-06 15:20:58.302 [scheduling-1] INFO c.c.s.PendingOrderExpirationService - Expired pending food orders. expiredFoodOrders=0 -2026-05-06 15:20:58.759 [Test worker] INFO c.c.s.p.PaymentFeignIntegrationTest - Starting PaymentFeignIntegrationTest using Java 21.0.10 with PID 8342 (started by shinae in /Users/shinae/Desktop/study/shinae1023) -2026-05-06 15:20:58.759 [Test worker] INFO c.c.s.p.PaymentFeignIntegrationTest - No active profile set, falling back to 1 default profile: "default" -2026-05-06 15:20:58.848 [Test worker] INFO o.s.cloud.context.scope.GenericScope - BeanFactory id=cbe11674-0179-3e1c-bb44-e12a98288510 -2026-05-06 15:20:58.894 [Test worker] INFO c.c.s.p.PaymentFeignIntegrationTest - Started PaymentFeignIntegrationTest in 0.153 seconds (process running for 14.906) -2026-05-06 15:20:58.965 [Test worker] WARN c.ceos.service.pay.PaymentService - Payment instant request returned empty success body. paymentId=RES_1_12345678 -2026-05-06 15:20:58.982 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:58.983 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists actor cascade -2026-05-06 15:20:58.983 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists food cascade -2026-05-06 15:20:58.983 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists food_order cascade -2026-05-06 15:20:58.983 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists food_order_item cascade -2026-05-06 15:20:58.983 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie cascade -2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_actor cascade -2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_image cascade -2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_like cascade -2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_screen cascade -2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_statistics cascade -2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists refresh_token cascade -2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists reservation cascade -2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists reservation_seat cascade -2026-05-06 15:20:58.984 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists review cascade -2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists screen cascade -2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists screen_type cascade -2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists seat cascade -2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists seat_template cascade -2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists theater cascade -2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists theater_food cascade -2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists theater_like cascade -2026-05-06 15:20:58.985 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists users cascade -2026-05-06 15:20:58.986 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-2 - Shutdown initiated... -2026-05-06 15:20:58.986 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-2 - Shutdown completed. -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists actor cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists food cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists food_order cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists food_order_item cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_actor cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_image cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_like cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_screen cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_statistics cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists refresh_token cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists reservation cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists reservation_seat cascade -2026-05-06 15:20:58.990 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists review cascade -2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists screen cascade -2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists screen_type cascade -2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists seat cascade -2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists seat_template cascade -2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists theater cascade -2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists theater_food cascade -2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists theater_like cascade -2026-05-06 15:20:58.991 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists users cascade -2026-05-06 15:20:58.992 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-6 - Shutdown initiated... -2026-05-06 15:20:58.992 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-6 - Shutdown completed. -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists actor cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists food cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists food_order cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists food_order_item cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_actor cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_image cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_like cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_screen cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists movie_statistics cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists refresh_token cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists reservation cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists reservation_seat cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists review cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists screen cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists screen_type cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists seat cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists seat_template cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists theater cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists theater_food cascade -2026-05-06 15:20:58.997 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists theater_like cascade -2026-05-06 15:20:58.998 [SpringApplicationShutdownHook] DEBUG org.hibernate.SQL - - drop table if exists users cascade -2026-05-06 15:20:58.998 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-11 - Shutdown initiated... -2026-05-06 15:20:59.000 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-11 - Shutdown completed. +{"@timestamp":"2026-05-23T02:11:35.172653+09:00","@version":"1","message":"HV000001: Hibernate Validator 8.0.2.Final","logger_name":"org.hibernate.validator.internal.util.Version","thread_name":"background-preinit","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:35.224212+09:00","@version":"1","message":"Starting ApplicationTests using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.ApplicationTests","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:35.225682+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.ApplicationTests","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:35.227674+09:00","@version":"1","message":"The following 1 profile is active: \"test\"","logger_name":"cgv_23rd.ceos.ApplicationTests","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.728103+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.729922+09:00","@version":"1","message":"Bootstrapping Spring Data JPA repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.880771+09:00","@version":"1","message":"Finished Spring Data repository scanning in 143 ms. Found 21 JPA repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.894938+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.895974+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.912322+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.MovieLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.9128+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.ReviewRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.913132+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.TheaterLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.91418+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.914533+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.auth.RefreshTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.914812+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderItemRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.915633+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.915978+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.916313+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.TheaterFoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.916584+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.ActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.916854+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.917303+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieImageRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.917591+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.917876+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.918161+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieStatisticsRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.918447+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.918721+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.919011+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.SeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.919269+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.91955+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenTypeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.919849+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.TheaterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:36.920285+09:00","@version":"1","message":"Finished Spring Data repository scanning in 17 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:37.122325+09:00","@version":"1","message":"BeanFactory id=cfc64e1f-018a-354b-9e01-a7479796a49c","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:37.837567+09:00","@version":"1","message":"HHH000204: Processing PersistenceUnitInfo [name: default]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:37.903081+09:00","@version":"1","message":"HHH000412: Hibernate ORM core version 6.6.15.Final","logger_name":"org.hibernate.Version","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:37.940719+09:00","@version":"1","message":"HHH000026: Second-level cache disabled","logger_name":"org.hibernate.cache.internal.RegionFactoryInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:38.193631+09:00","@version":"1","message":"No LoadTimeWeaver setup: ignoring JPA class transformer","logger_name":"org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:38.218715+09:00","@version":"1","message":"HikariPool-1 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:38.372857+09:00","@version":"1","message":"HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:testdb user=SA","logger_name":"com.zaxxer.hikari.pool.HikariPool","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:38.3743+09:00","@version":"1","message":"HikariPool-1 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:38.396822+09:00","@version":"1","message":"HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)","logger_name":"org.hibernate.orm.deprecation","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:38.413651+09:00","@version":"1","message":"HHH10001005: Database info:\n\tDatabase JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)']\n\tDatabase driver: undefined/unknown\n\tDatabase version: 2.3.232\n\tAutocommit mode: undefined/unknown\n\tIsolation level: undefined/unknown\n\tMinimum pool size: undefined/unknown\n\tMaximum pool size: undefined/unknown","logger_name":"org.hibernate.orm.connections.pooling","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:39.820403+09:00","@version":"1","message":"HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)","logger_name":"org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:39.986964+09:00","@version":"1","message":"Initialized JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:40.474567+09:00","@version":"1","message":"Hibernate is in classpath; If applicable, HQL parser will be used.","logger_name":"org.springframework.data.jpa.repository.query.QueryEnhancerFactory","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:42.010072+09:00","@version":"1","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","logger_name":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:42.701528+09:00","@version":"1","message":"Exposing 3 endpoints beneath base path '/actuator'","logger_name":"org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:42.738259+09:00","@version":"1","message":"Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl","logger_name":"org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:43.778168+09:00","@version":"1","message":"Started ApplicationTests in 9.228 seconds (process running for 10.533)","logger_name":"cgv_23rd.ceos.ApplicationTests","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:43.91958+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:43.92983+09:00","@version":"1","message":"Expired pending food orders. expiredFoodOrders=0","logger_name":"cgv_23rd.ceos.service.PendingFoodOrderExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.385877+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.AdminFoodControllerTest]: AdminFoodControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.403863+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.AdminFoodControllerTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.450535+09:00","@version":"1","message":"Starting AdminFoodControllerTest using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.controller.AdminFoodControllerTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.451269+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.controller.AdminFoodControllerTest","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.451437+09:00","@version":"1","message":"The following 1 profile is active: \"test\"","logger_name":"cgv_23rd.ceos.controller.AdminFoodControllerTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.827113+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.827589+09:00","@version":"1","message":"Bootstrapping Spring Data JPA repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.859114+09:00","@version":"1","message":"Finished Spring Data repository scanning in 30 ms. Found 21 JPA repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.862522+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.862802+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.872033+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.MovieLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.872361+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.ReviewRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.872569+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.TheaterLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.872805+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.873045+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.auth.RefreshTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.87324+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderItemRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.873454+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.873657+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.873874+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.TheaterFoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.874069+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.ActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.874245+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.874456+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieImageRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.874641+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.875057+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.875728+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieStatisticsRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.876021+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.87623+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.876571+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.SeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.876812+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.877393+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenTypeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.877587+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.TheaterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.877798+09:00","@version":"1","message":"Finished Spring Data repository scanning in 13 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:44.93167+09:00","@version":"1","message":"BeanFactory id=f96be086-2792-3757-b4e0-f60e77782e10","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:46.494223+09:00","@version":"1","message":"HHH000204: Processing PersistenceUnitInfo [name: default]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:46.501231+09:00","@version":"1","message":"HHH000026: Second-level cache disabled","logger_name":"org.hibernate.cache.internal.RegionFactoryInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:46.521075+09:00","@version":"1","message":"No LoadTimeWeaver setup: ignoring JPA class transformer","logger_name":"org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:46.523289+09:00","@version":"1","message":"HikariPool-2 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:46.525209+09:00","@version":"1","message":"HikariPool-2 - Added connection conn10: url=jdbc:h2:mem:testdb user=SA","logger_name":"com.zaxxer.hikari.pool.HikariPool","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:46.526134+09:00","@version":"1","message":"HikariPool-2 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:46.527152+09:00","@version":"1","message":"HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)","logger_name":"org.hibernate.orm.deprecation","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:46.527994+09:00","@version":"1","message":"HHH10001005: Database info:\n\tDatabase JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-2)']\n\tDatabase driver: undefined/unknown\n\tDatabase version: 2.3.232\n\tAutocommit mode: undefined/unknown\n\tIsolation level: undefined/unknown\n\tMinimum pool size: undefined/unknown\n\tMaximum pool size: undefined/unknown","logger_name":"org.hibernate.orm.connections.pooling","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:46.884488+09:00","@version":"1","message":"HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)","logger_name":"org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:47.028169+09:00","@version":"1","message":"Initialized JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:47.824893+09:00","@version":"1","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","logger_name":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:48.316342+09:00","@version":"1","message":"Exposing 3 endpoints beneath base path '/actuator'","logger_name":"org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:48.369931+09:00","@version":"1","message":"Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl","logger_name":"org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.24898+09:00","@version":"1","message":"Filter 'requestContextLoggingFilter' configured for use","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.249326+09:00","@version":"1","message":"Filter 'jwtAuthenticationFilter' configured for use","logger_name":"cgv_23rd.ceos.global.jwt.JwtAuthenticationFilter","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.250147+09:00","@version":"1","message":"Initializing Spring TestDispatcherServlet ''","logger_name":"org.springframework.boot.test.mock.web.SpringBootMockServletContext","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.25041+09:00","@version":"1","message":"Initializing Servlet ''","logger_name":"org.springframework.test.web.servlet.TestDispatcherServlet","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.255982+09:00","@version":"1","message":"Completed initialization in 5 ms","logger_name":"org.springframework.test.web.servlet.TestDispatcherServlet","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.348406+09:00","@version":"1","message":"Started AdminFoodControllerTest in 4.942 seconds (process running for 16.104)","logger_name":"cgv_23rd.ceos.controller.AdminFoodControllerTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.360085+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.36401+09:00","@version":"1","message":"Expired pending food orders. expiredFoodOrders=0","logger_name":"cgv_23rd.ceos.service.PendingFoodOrderExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.553377+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"PATCH","uri":"/api/admin/foods/1","userId":"99","requestId":"e1a55945-1399-47dc-8180-ed73114a58cf","clientIp":"127.0.0.1","event":"request_completed","method":"PATCH","uri":"/api/admin/foods/1","status":200,"durationMs":87,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.62675+09:00","@version":"1","message":"access denied","logger_name":"cgv_23rd.ceos.global.apiPayload.exception.handler.CustomAccessDeniedHandler","thread_name":"Test worker","level":"WARN","level_value":30000,"method":"POST","uri":"/api/admin/foods/","requestId":"dcab9af7-999e-46c4-ba1b-a14830a9461f","clientIp":"127.0.0.1","event":"access_denied","errorCode":"AUTH_4031","uri":"/api/admin/foods/","method":"POST","message":"Access Denied","app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.628956+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/admin/foods/","userId":"1","requestId":"dcab9af7-999e-46c4-ba1b-a14830a9461f","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/admin/foods/","status":403,"durationMs":9,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.670142+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/admin/foods/","userId":"99","requestId":"7ad41885-4d4f-46f9-abf2-707c46373240","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/admin/foods/","status":200,"durationMs":26,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.684075+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.AdminMovieControllerTest]: AdminMovieControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.688517+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.AdminMovieControllerTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.758196+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/admin/movies/","userId":"99","requestId":"65942f08-406b-4452-9e64-fe5262a1c824","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/admin/movies/","status":200,"durationMs":47,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.788281+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/admin/movies/theaters","userId":"99","requestId":"a25bb78f-e0ae-4672-b48d-d7b77d8e900f","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/admin/movies/theaters","status":200,"durationMs":8,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.820247+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/admin/movies/1","userId":"99","requestId":"723ef319-cc22-4dfd-8394-7a363ab4881d","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/admin/movies/1","status":200,"durationMs":10,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.839032+09:00","@version":"1","message":"access denied","logger_name":"cgv_23rd.ceos.global.apiPayload.exception.handler.CustomAccessDeniedHandler","thread_name":"Test worker","level":"WARN","level_value":30000,"method":"POST","uri":"/api/admin/movies/","requestId":"1337941c-e5db-451e-9c34-d594283460f4","clientIp":"127.0.0.1","event":"access_denied","errorCode":"AUTH_4031","uri":"/api/admin/movies/","method":"POST","message":"Access Denied","app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.83973+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/admin/movies/","userId":"1","requestId":"1337941c-e5db-451e-9c34-d594283460f4","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/admin/movies/","status":403,"durationMs":1,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.850399+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.AuthControllerTest]: AuthControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.853357+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.AuthControllerTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.871067+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/auth/reissue","requestId":"aec39c74-04b2-4760-95cc-887452070aaf","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/auth/reissue","status":200,"durationMs":6,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.894963+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/auth/signup","requestId":"1602680f-abc0-4ae0-90af-378ea6a35a7c","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/auth/signup","status":200,"durationMs":8,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.917003+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/auth/login","requestId":"8e43b6fc-5a2e-49b7-924a-fa44a5b00ed7","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/auth/login","status":200,"durationMs":5,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.928625+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.FoodOrderControllerTest]: FoodOrderControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.931926+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.FoodOrderControllerTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.984118+09:00","@version":"1","message":"validation failed","logger_name":"cgv_23rd.ceos.global.apiPayload.exception.handler.ExceptionAdvice","thread_name":"Test worker","level":"WARN","level_value":30000,"method":"POST","uri":"/api/foods/orders/","requestId":"d8156202-aabf-479e-bd91-83885337d8db","clientIp":"127.0.0.1","event":"validation_failed","errorCode":"REQ_4002","uri":"/api/foods/orders/","method":"POST","errors":["[items[0].quantity] must be greater than or equal to 1 (입력값: 0)"],"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:49.992433+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/foods/orders/","userId":"1","requestId":"d8156202-aabf-479e-bd91-83885337d8db","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/foods/orders/","status":400,"durationMs":43,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.012549+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/foods/orders/1/cancel","userId":"1","requestId":"d0962a07-64b9-4fe8-b40f-afc3c184ed66","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/foods/orders/1/cancel","status":200,"durationMs":3,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.0283+09:00","@version":"1","message":"authentication required","logger_name":"AuthenticationEntryPoint","thread_name":"Test worker","level":"WARN","level_value":30000,"method":"POST","uri":"/api/foods/orders/","requestId":"b030e305-a461-453d-bcdf-5c73911fa1bc","clientIp":"127.0.0.1","event":"authentication_required","uri":"/api/foods/orders/","method":"POST","message":"Full authentication is required to access this resource","app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.028938+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/foods/orders/","requestId":"b030e305-a461-453d-bcdf-5c73911fa1bc","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/foods/orders/","status":401,"durationMs":1,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.052727+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"GET","uri":"/api/foods/orders/","userId":"1","requestId":"454723ff-eac8-4d68-b88c-dbe174f03bfb","clientIp":"127.0.0.1","event":"request_completed","method":"GET","uri":"/api/foods/orders/","status":200,"durationMs":8,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.071252+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/foods/orders/","userId":"1","requestId":"eb152069-ccc9-4e06-9fec-223b3fae7f53","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/foods/orders/","status":200,"durationMs":3,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.082451+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.MovieControllerTest]: MovieControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.08544+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.MovieControllerTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.099824+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"GET","uri":"/api/movies/","requestId":"b62460f1-550a-4fde-991b-f4acab9a0d4d","clientIp":"127.0.0.1","event":"request_completed","method":"GET","uri":"/api/movies/","status":200,"durationMs":3,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.119117+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"GET","uri":"/api/movies/1","requestId":"897a59b3-ccd0-4f19-a3e4-7a758beff31f","clientIp":"127.0.0.1","event":"request_completed","method":"GET","uri":"/api/movies/1","status":200,"durationMs":6,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.142326+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/movies/1/likes","userId":"1","requestId":"79f0a33d-08e8-4941-aedc-3fde7e121585","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/movies/1/likes","status":200,"durationMs":4,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.15826+09:00","@version":"1","message":"authentication required","logger_name":"AuthenticationEntryPoint","thread_name":"Test worker","level":"WARN","level_value":30000,"method":"POST","uri":"/api/movies/1/likes","requestId":"f3c6cc16-b377-4f2c-b7e7-4a5a60c6f917","clientIp":"127.0.0.1","event":"authentication_required","uri":"/api/movies/1/likes","method":"POST","message":"Full authentication is required to access this resource","app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.159427+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/movies/1/likes","requestId":"f3c6cc16-b377-4f2c-b7e7-4a5a60c6f917","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/movies/1/likes","status":401,"durationMs":2,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.179879+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"DELETE","uri":"/api/movies/1/likes","userId":"1","requestId":"5b5bb213-3ada-4a54-bf6c-c9248b9b1b88","clientIp":"127.0.0.1","event":"request_completed","method":"DELETE","uri":"/api/movies/1/likes","status":200,"durationMs":3,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.21331+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"GET","uri":"/api/movies/1/actors","requestId":"1bcf6c7f-3144-4304-bef5-c4fc469600aa","clientIp":"127.0.0.1","event":"request_completed","method":"GET","uri":"/api/movies/1/actors","status":200,"durationMs":5,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.226724+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.ReservationControllerTest]: ReservationControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.231168+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.ReservationControllerTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.253083+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"GET","uri":"/api/reservations","userId":"1","requestId":"115a4db0-8f17-4d72-a038-33a1951828f8","clientIp":"127.0.0.1","event":"request_completed","method":"GET","uri":"/api/reservations","status":200,"durationMs":6,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.277641+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/reservations/1/cancel","userId":"1","requestId":"1214e455-beaf-4cc5-91f9-d04fb5b4c45a","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/reservations/1/cancel","status":200,"durationMs":4,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.309204+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/reservations","userId":"1","requestId":"0eac067e-1f98-41f3-8169-5cc0dceb96ff","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/reservations","status":200,"durationMs":10,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.330604+09:00","@version":"1","message":"authentication required","logger_name":"AuthenticationEntryPoint","thread_name":"Test worker","level":"WARN","level_value":30000,"method":"POST","uri":"/api/reservations","requestId":"a7e0cfe5-0081-4280-93e0-a9f27f74012b","clientIp":"127.0.0.1","event":"authentication_required","uri":"/api/reservations","method":"POST","message":"Full authentication is required to access this resource","app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.33141+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/reservations","requestId":"a7e0cfe5-0081-4280-93e0-a9f27f74012b","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/reservations","status":401,"durationMs":2,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.355774+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/reservations/1/payments","userId":"1","requestId":"fc5f65a7-7f23-438f-b7ed-1dfd57b499f5","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/reservations/1/payments","status":200,"durationMs":3,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.369694+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.ReviewControllerTest]: ReviewControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.373903+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.ReviewControllerTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.405207+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/reviews","userId":"1","requestId":"f745192f-147d-4d94-b517-81a44813651f","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/reviews","status":200,"durationMs":14,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.422813+09:00","@version":"1","message":"authentication required","logger_name":"AuthenticationEntryPoint","thread_name":"Test worker","level":"WARN","level_value":30000,"method":"POST","uri":"/api/reviews","requestId":"7cded341-a277-4c1f-bc0a-f1831da9181f","clientIp":"127.0.0.1","event":"authentication_required","uri":"/api/reviews","method":"POST","message":"Full authentication is required to access this resource","app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.423432+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/reviews","requestId":"7cded341-a277-4c1f-bc0a-f1831da9181f","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/reviews","status":401,"durationMs":1,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.446205+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"GET","uri":"/api/reviews/movie/1","requestId":"fac6194a-abdf-4cfa-84dc-5e650cc75d4d","clientIp":"127.0.0.1","event":"request_completed","method":"GET","uri":"/api/reviews/movie/1","status":200,"durationMs":5,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.457032+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.ScheduleControllerTest]: ScheduleControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.461078+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.ScheduleControllerTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.479286+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"GET","uri":"/api/schedules/1","requestId":"06f50e8e-b398-4c8f-907f-ace0ac06fdc7","clientIp":"127.0.0.1","event":"request_completed","method":"GET","uri":"/api/schedules/1","status":200,"durationMs":6,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.490623+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.controller.TheaterControllerTest]: TheaterControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.494414+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.controller.TheaterControllerTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.510966+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"GET","uri":"/api/theaters/1","requestId":"b38659f1-e67b-4c07-a0e7-01005b512a11","clientIp":"127.0.0.1","event":"request_completed","method":"GET","uri":"/api/theaters/1","status":200,"durationMs":4,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.530284+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/theaters/1/likes","userId":"1","requestId":"55ed5d14-5740-4761-a330-f70f88d1650d","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/theaters/1/likes","status":200,"durationMs":3,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.548157+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"DELETE","uri":"/api/theaters/1/likes","userId":"1","requestId":"445c45a4-4fd2-4bba-bf84-2d3164781182","clientIp":"127.0.0.1","event":"request_completed","method":"DELETE","uri":"/api/theaters/1/likes","status":200,"durationMs":3,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.564129+09:00","@version":"1","message":"authentication required","logger_name":"AuthenticationEntryPoint","thread_name":"Test worker","level":"WARN","level_value":30000,"method":"POST","uri":"/api/theaters/1/likes","requestId":"411661f2-7a73-41ee-9cce-ed3e2f4ba85a","clientIp":"127.0.0.1","event":"authentication_required","uri":"/api/theaters/1/likes","method":"POST","message":"Full authentication is required to access this resource","app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.56478+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"POST","uri":"/api/theaters/1/likes","requestId":"411661f2-7a73-41ee-9cce-ed3e2f4ba85a","clientIp":"127.0.0.1","event":"request_completed","method":"POST","uri":"/api/theaters/1/likes","status":401,"durationMs":1,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.583247+09:00","@version":"1","message":"request completed","logger_name":"cgv_23rd.ceos.global.logging.RequestContextLoggingFilter","thread_name":"Test worker","level":"INFO","level_value":20000,"method":"GET","uri":"/api/theaters","requestId":"79137a79-367c-45a5-823b-83309c318a17","clientIp":"127.0.0.1","event":"request_completed","method":"GET","uri":"/api/theaters","status":200,"durationMs":4,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.599604+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest]: FoodPaymentFlowIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.616527+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.685339+09:00","@version":"1","message":"Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.686228+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:50.686446+09:00","@version":"1","message":"The following 1 profile is active: \"test\"","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.11785+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.118124+09:00","@version":"1","message":"Bootstrapping Spring Data JPA repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.160991+09:00","@version":"1","message":"Finished Spring Data repository scanning in 41 ms. Found 21 JPA repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.165034+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.165312+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.179926+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.MovieLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.180293+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.ReviewRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.180496+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.TheaterLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.180743+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.180924+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.auth.RefreshTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.181134+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderItemRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.181301+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.181493+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.181653+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.TheaterFoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.181824+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.ActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.182041+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.182563+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieImageRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.182783+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.182973+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.183145+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieStatisticsRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.183326+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.18349+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.183648+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.SeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.183839+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.184083+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenTypeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.184262+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.TheaterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.184413+09:00","@version":"1","message":"Finished Spring Data repository scanning in 17 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.253258+09:00","@version":"1","message":"BeanFactory id=cfc64e1f-018a-354b-9e01-a7479796a49c","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.541533+09:00","@version":"1","message":"HHH000204: Processing PersistenceUnitInfo [name: default]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.545819+09:00","@version":"1","message":"HHH000026: Second-level cache disabled","logger_name":"org.hibernate.cache.internal.RegionFactoryInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.557071+09:00","@version":"1","message":"No LoadTimeWeaver setup: ignoring JPA class transformer","logger_name":"org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.558095+09:00","@version":"1","message":"HikariPool-3 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.560219+09:00","@version":"1","message":"HikariPool-3 - Added connection conn20: url=jdbc:h2:mem:testdb user=SA","logger_name":"com.zaxxer.hikari.pool.HikariPool","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.560824+09:00","@version":"1","message":"HikariPool-3 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.561455+09:00","@version":"1","message":"HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)","logger_name":"org.hibernate.orm.deprecation","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.562026+09:00","@version":"1","message":"HHH10001005: Database info:\n\tDatabase JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-3)']\n\tDatabase driver: undefined/unknown\n\tDatabase version: 2.3.232\n\tAutocommit mode: undefined/unknown\n\tIsolation level: undefined/unknown\n\tMinimum pool size: undefined/unknown\n\tMaximum pool size: undefined/unknown","logger_name":"org.hibernate.orm.connections.pooling","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:51.826169+09:00","@version":"1","message":"HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)","logger_name":"org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.071526+09:00","@version":"1","message":"Initialized JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.380023+09:00","@version":"1","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","logger_name":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.486604+09:00","@version":"1","message":"Exposing 3 endpoints beneath base path '/actuator'","logger_name":"org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.502466+09:00","@version":"1","message":"Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl","logger_name":"org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.75114+09:00","@version":"1","message":"Started FoodPaymentFlowIntegrationTest in 2.131 seconds (process running for 19.507)","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.763337+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.766823+09:00","@version":"1","message":"Expired pending food orders. expiredFoodOrders=0","logger_name":"cgv_23rd.ceos.service.PendingFoodOrderExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.787128+09:00","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.803358+09:00","@version":"1","message":"HikariPool-3 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.80519+09:00","@version":"1","message":"HikariPool-3 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.883023+09:00","@version":"1","message":"Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.884092+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:52.884315+09:00","@version":"1","message":"The following 1 profile is active: \"test\"","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.238325+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.238608+09:00","@version":"1","message":"Bootstrapping Spring Data JPA repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.26995+09:00","@version":"1","message":"Finished Spring Data repository scanning in 30 ms. Found 21 JPA repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.272469+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.272635+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.283885+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.MovieLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.284164+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.ReviewRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.284303+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.TheaterLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.284465+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.284587+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.auth.RefreshTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.284716+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderItemRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.284844+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.284964+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.285065+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.TheaterFoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.285171+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.ActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.285271+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.285408+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieImageRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.285517+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.285626+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.285726+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieStatisticsRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.285841+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.285951+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.286056+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.SeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.28616+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.286276+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenTypeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.286393+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.TheaterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.28651+09:00","@version":"1","message":"Finished Spring Data repository scanning in 12 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.333468+09:00","@version":"1","message":"BeanFactory id=cfc64e1f-018a-354b-9e01-a7479796a49c","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.459343+09:00","@version":"1","message":"HHH000204: Processing PersistenceUnitInfo [name: default]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.462215+09:00","@version":"1","message":"HHH000026: Second-level cache disabled","logger_name":"org.hibernate.cache.internal.RegionFactoryInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.471756+09:00","@version":"1","message":"No LoadTimeWeaver setup: ignoring JPA class transformer","logger_name":"org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.472699+09:00","@version":"1","message":"HikariPool-4 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.473735+09:00","@version":"1","message":"HikariPool-4 - Added connection conn30: url=jdbc:h2:mem:testdb user=SA","logger_name":"com.zaxxer.hikari.pool.HikariPool","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.473986+09:00","@version":"1","message":"HikariPool-4 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.474458+09:00","@version":"1","message":"HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)","logger_name":"org.hibernate.orm.deprecation","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.474864+09:00","@version":"1","message":"HHH10001005: Database info:\n\tDatabase JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-4)']\n\tDatabase driver: undefined/unknown\n\tDatabase version: 2.3.232\n\tAutocommit mode: undefined/unknown\n\tIsolation level: undefined/unknown\n\tMinimum pool size: undefined/unknown\n\tMaximum pool size: undefined/unknown","logger_name":"org.hibernate.orm.connections.pooling","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.61284+09:00","@version":"1","message":"HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)","logger_name":"org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.655189+09:00","@version":"1","message":"Initialized JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:53.984577+09:00","@version":"1","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","logger_name":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.109901+09:00","@version":"1","message":"Exposing 3 endpoints beneath base path '/actuator'","logger_name":"org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.127375+09:00","@version":"1","message":"Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl","logger_name":"org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.36037+09:00","@version":"1","message":"Started FoodPaymentFlowIntegrationTest in 1.543 seconds (process running for 21.116)","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.367425+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.370447+09:00","@version":"1","message":"Expired pending food orders. expiredFoodOrders=0","logger_name":"cgv_23rd.ceos.service.PendingFoodOrderExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.547085+09:00","@version":"1","message":"food payment processing started","logger_name":"cgv_23rd.ceos.service.pay.FoodPaymentFacade","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"food_payment_started","userId":1,"orderId":1,"totalPrice":14000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.570092+09:00","@version":"1","message":"food payment processing failed","logger_name":"cgv_23rd.ceos.service.pay.FoodPaymentFacade","thread_name":"Test worker","level":"WARN","level_value":30000,"event":"food_payment_failed","userId":1,"orderId":1,"paymentId":"FOOD_1_c4e7ad9a","errorCode":"PAYMENT_4001","durationMs":33,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.586654+09:00","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.594394+09:00","@version":"1","message":"HikariPool-4 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.595174+09:00","@version":"1","message":"HikariPool-4 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.632254+09:00","@version":"1","message":"Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.632783+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:54.632889+09:00","@version":"1","message":"The following 1 profile is active: \"test\"","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.046222+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.04668+09:00","@version":"1","message":"Bootstrapping Spring Data JPA repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.08149+09:00","@version":"1","message":"Finished Spring Data repository scanning in 33 ms. Found 21 JPA repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.084514+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.08474+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.097367+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.MovieLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.097728+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.ReviewRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.09787+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.TheaterLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.098034+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.098152+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.auth.RefreshTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.098276+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderItemRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.098391+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.098502+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.098613+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.TheaterFoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.098719+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.ActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.098828+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.098987+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieImageRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.099101+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.099211+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.099329+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieStatisticsRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.099463+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.099582+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.099689+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.SeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.099798+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.099915+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenTypeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.100025+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.TheaterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.100131+09:00","@version":"1","message":"Finished Spring Data repository scanning in 14 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.151289+09:00","@version":"1","message":"BeanFactory id=cfc64e1f-018a-354b-9e01-a7479796a49c","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.298775+09:00","@version":"1","message":"HHH000204: Processing PersistenceUnitInfo [name: default]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.301565+09:00","@version":"1","message":"HHH000026: Second-level cache disabled","logger_name":"org.hibernate.cache.internal.RegionFactoryInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.312699+09:00","@version":"1","message":"No LoadTimeWeaver setup: ignoring JPA class transformer","logger_name":"org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.313796+09:00","@version":"1","message":"HikariPool-5 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.315414+09:00","@version":"1","message":"HikariPool-5 - Added connection conn40: url=jdbc:h2:mem:testdb user=SA","logger_name":"com.zaxxer.hikari.pool.HikariPool","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.315753+09:00","@version":"1","message":"HikariPool-5 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.316335+09:00","@version":"1","message":"HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)","logger_name":"org.hibernate.orm.deprecation","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.31684+09:00","@version":"1","message":"HHH10001005: Database info:\n\tDatabase JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-5)']\n\tDatabase driver: undefined/unknown\n\tDatabase version: 2.3.232\n\tAutocommit mode: undefined/unknown\n\tIsolation level: undefined/unknown\n\tMinimum pool size: undefined/unknown\n\tMaximum pool size: undefined/unknown","logger_name":"org.hibernate.orm.connections.pooling","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.623687+09:00","@version":"1","message":"HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)","logger_name":"org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:55.71512+09:00","@version":"1","message":"Initialized JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.199816+09:00","@version":"1","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","logger_name":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.336073+09:00","@version":"1","message":"Exposing 3 endpoints beneath base path '/actuator'","logger_name":"org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.356968+09:00","@version":"1","message":"Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl","logger_name":"org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.672944+09:00","@version":"1","message":"Started FoodPaymentFlowIntegrationTest in 2.074 seconds (process running for 23.429)","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.681554+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.684619+09:00","@version":"1","message":"Expired pending food orders. expiredFoodOrders=0","logger_name":"cgv_23rd.ceos.service.PendingFoodOrderExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.732396+09:00","@version":"1","message":"food payment processing started","logger_name":"cgv_23rd.ceos.service.pay.FoodPaymentFacade","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"food_payment_started","userId":1,"orderId":1,"totalPrice":14000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.749445+09:00","@version":"1","message":"food payment processing completed","logger_name":"cgv_23rd.ceos.service.pay.FoodPaymentFacade","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"food_payment_completed","userId":1,"orderId":1,"paymentId":"FOOD_1_14051c9b","durationMs":22,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.775606+09:00","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.781783+09:00","@version":"1","message":"HikariPool-5 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.782495+09:00","@version":"1","message":"HikariPool-5 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.835199+09:00","@version":"1","message":"Starting FoodPaymentFlowIntegrationTest using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.835986+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:56.836143+09:00","@version":"1","message":"The following 1 profile is active: \"test\"","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.228851+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.229169+09:00","@version":"1","message":"Bootstrapping Spring Data JPA repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.263682+09:00","@version":"1","message":"Finished Spring Data repository scanning in 33 ms. Found 21 JPA repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.266408+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.2666+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.275801+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.MovieLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.276403+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.ReviewRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.276549+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.TheaterLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.276705+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.276833+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.auth.RefreshTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.276935+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderItemRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.277042+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.27716+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.277258+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.TheaterFoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.277358+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.ActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.277454+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.277579+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieImageRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.277693+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.277893+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.278004+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieStatisticsRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.278102+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.278199+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.278293+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.SeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.278384+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.278477+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenTypeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.278575+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.TheaterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.278749+09:00","@version":"1","message":"Finished Spring Data repository scanning in 10 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.32021+09:00","@version":"1","message":"BeanFactory id=cfc64e1f-018a-354b-9e01-a7479796a49c","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.424583+09:00","@version":"1","message":"HHH000204: Processing PersistenceUnitInfo [name: default]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.426795+09:00","@version":"1","message":"HHH000026: Second-level cache disabled","logger_name":"org.hibernate.cache.internal.RegionFactoryInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.434431+09:00","@version":"1","message":"No LoadTimeWeaver setup: ignoring JPA class transformer","logger_name":"org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.435115+09:00","@version":"1","message":"HikariPool-6 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.436165+09:00","@version":"1","message":"HikariPool-6 - Added connection conn50: url=jdbc:h2:mem:testdb user=SA","logger_name":"com.zaxxer.hikari.pool.HikariPool","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.436395+09:00","@version":"1","message":"HikariPool-6 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.43679+09:00","@version":"1","message":"HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)","logger_name":"org.hibernate.orm.deprecation","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.437096+09:00","@version":"1","message":"HHH10001005: Database info:\n\tDatabase JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-6)']\n\tDatabase driver: undefined/unknown\n\tDatabase version: 2.3.232\n\tAutocommit mode: undefined/unknown\n\tIsolation level: undefined/unknown\n\tMinimum pool size: undefined/unknown\n\tMaximum pool size: undefined/unknown","logger_name":"org.hibernate.orm.connections.pooling","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.551708+09:00","@version":"1","message":"HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)","logger_name":"org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.586847+09:00","@version":"1","message":"Initialized JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.829374+09:00","@version":"1","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","logger_name":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.919876+09:00","@version":"1","message":"Exposing 3 endpoints beneath base path '/actuator'","logger_name":"org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:57.941065+09:00","@version":"1","message":"Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl","logger_name":"org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.298086+09:00","@version":"1","message":"Started FoodPaymentFlowIntegrationTest in 1.504 seconds (process running for 25.054)","logger_name":"cgv_23rd.ceos.service.FoodPaymentFlowIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.306592+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.311338+09:00","@version":"1","message":"Expired pending food orders. expiredFoodOrders=0","logger_name":"cgv_23rd.ceos.service.PendingFoodOrderExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.363825+09:00","@version":"1","message":"food payment processing started","logger_name":"cgv_23rd.ceos.service.pay.FoodPaymentFacade","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"food_payment_started","userId":1,"orderId":1,"totalPrice":14000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.382533+09:00","@version":"1","message":"food payment processing completed","logger_name":"cgv_23rd.ceos.service.pay.FoodPaymentFacade","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"food_payment_completed","userId":1,"orderId":1,"paymentId":"FOOD_1_49a163e4","durationMs":24,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.394207+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest]: PendingReservationHoldIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.39544+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.408963+09:00","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.415196+09:00","@version":"1","message":"HikariPool-1 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.415862+09:00","@version":"1","message":"HikariPool-1 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.455346+09:00","@version":"1","message":"Starting PendingReservationHoldIntegrationTest using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.455956+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.456081+09:00","@version":"1","message":"The following 1 profile is active: \"test\"","logger_name":"cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.727114+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.727334+09:00","@version":"1","message":"Bootstrapping Spring Data JPA repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.750411+09:00","@version":"1","message":"Finished Spring Data repository scanning in 22 ms. Found 21 JPA repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.752565+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.752683+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.760149+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.MovieLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.760445+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.ReviewRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.76059+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.TheaterLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.760722+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.760806+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.auth.RefreshTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.760885+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderItemRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.760988+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.76107+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.761168+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.TheaterFoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.761246+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.ActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.761585+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.761697+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieImageRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.761797+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.761926+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.762011+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieStatisticsRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.762098+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.762208+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.762298+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.SeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.762374+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.762458+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenTypeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.76253+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.TheaterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.762605+09:00","@version":"1","message":"Finished Spring Data repository scanning in 8 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.801795+09:00","@version":"1","message":"BeanFactory id=cfc64e1f-018a-354b-9e01-a7479796a49c","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.883161+09:00","@version":"1","message":"HHH000204: Processing PersistenceUnitInfo [name: default]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.884883+09:00","@version":"1","message":"HHH000026: Second-level cache disabled","logger_name":"org.hibernate.cache.internal.RegionFactoryInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.892133+09:00","@version":"1","message":"No LoadTimeWeaver setup: ignoring JPA class transformer","logger_name":"org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.892806+09:00","@version":"1","message":"HikariPool-7 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.893931+09:00","@version":"1","message":"HikariPool-7 - Added connection conn60: url=jdbc:h2:mem:testdb user=SA","logger_name":"com.zaxxer.hikari.pool.HikariPool","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.894133+09:00","@version":"1","message":"HikariPool-7 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.894434+09:00","@version":"1","message":"HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)","logger_name":"org.hibernate.orm.deprecation","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.894658+09:00","@version":"1","message":"HHH10001005: Database info:\n\tDatabase JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-7)']\n\tDatabase driver: undefined/unknown\n\tDatabase version: 2.3.232\n\tAutocommit mode: undefined/unknown\n\tIsolation level: undefined/unknown\n\tMinimum pool size: undefined/unknown\n\tMaximum pool size: undefined/unknown","logger_name":"org.hibernate.orm.connections.pooling","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:58.994229+09:00","@version":"1","message":"HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)","logger_name":"org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:59.02422+09:00","@version":"1","message":"Initialized JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:59.383923+09:00","@version":"1","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","logger_name":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:59.771844+09:00","@version":"1","message":"Exposing 3 endpoints beneath base path '/actuator'","logger_name":"org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:11:59.794687+09:00","@version":"1","message":"Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl","logger_name":"org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.104319+09:00","@version":"1","message":"Started PendingReservationHoldIntegrationTest in 1.685 seconds (process running for 26.86)","logger_name":"cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.113401+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.116703+09:00","@version":"1","message":"Expired pending food orders. expiredFoodOrders=0","logger_name":"cgv_23rd.ceos.service.PendingFoodOrderExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.195464+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=1, expiredReservations=1","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.239016+09:00","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.245531+09:00","@version":"1","message":"HikariPool-7 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.246384+09:00","@version":"1","message":"HikariPool-7 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.286694+09:00","@version":"1","message":"Starting PendingReservationHoldIntegrationTest using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.287279+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.28741+09:00","@version":"1","message":"The following 1 profile is active: \"test\"","logger_name":"cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.581512+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.581724+09:00","@version":"1","message":"Bootstrapping Spring Data JPA repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.605093+09:00","@version":"1","message":"Finished Spring Data repository scanning in 22 ms. Found 21 JPA repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.607582+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.607716+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.614932+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.MovieLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.615166+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.ReviewRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.615282+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.TheaterLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.615401+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.615494+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.auth.RefreshTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.615582+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderItemRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.615673+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.615761+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.61585+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.TheaterFoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.615935+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.ActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.616023+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.616117+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieImageRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.616202+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.616286+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.616372+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieStatisticsRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.616503+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.616589+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.616674+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.SeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.616764+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.616872+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenTypeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.616986+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.TheaterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.617073+09:00","@version":"1","message":"Finished Spring Data repository scanning in 8 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.651266+09:00","@version":"1","message":"BeanFactory id=cfc64e1f-018a-354b-9e01-a7479796a49c","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.732893+09:00","@version":"1","message":"HHH000204: Processing PersistenceUnitInfo [name: default]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.73456+09:00","@version":"1","message":"HHH000026: Second-level cache disabled","logger_name":"org.hibernate.cache.internal.RegionFactoryInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.740076+09:00","@version":"1","message":"No LoadTimeWeaver setup: ignoring JPA class transformer","logger_name":"org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.740631+09:00","@version":"1","message":"HikariPool-8 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.741473+09:00","@version":"1","message":"HikariPool-8 - Added connection conn70: url=jdbc:h2:mem:testdb user=SA","logger_name":"com.zaxxer.hikari.pool.HikariPool","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.741733+09:00","@version":"1","message":"HikariPool-8 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.742258+09:00","@version":"1","message":"HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)","logger_name":"org.hibernate.orm.deprecation","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.742591+09:00","@version":"1","message":"HHH10001005: Database info:\n\tDatabase JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-8)']\n\tDatabase driver: undefined/unknown\n\tDatabase version: 2.3.232\n\tAutocommit mode: undefined/unknown\n\tIsolation level: undefined/unknown\n\tMinimum pool size: undefined/unknown\n\tMaximum pool size: undefined/unknown","logger_name":"org.hibernate.orm.connections.pooling","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.85584+09:00","@version":"1","message":"HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)","logger_name":"org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:00.893268+09:00","@version":"1","message":"Initialized JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.197231+09:00","@version":"1","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","logger_name":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.378406+09:00","@version":"1","message":"Exposing 3 endpoints beneath base path '/actuator'","logger_name":"org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.391141+09:00","@version":"1","message":"Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl","logger_name":"org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.589508+09:00","@version":"1","message":"Started PendingReservationHoldIntegrationTest in 1.339 seconds (process running for 28.346)","logger_name":"cgv_23rd.ceos.service.PendingReservationHoldIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.596539+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.59906+09:00","@version":"1","message":"Expired pending food orders. expiredFoodOrders=0","logger_name":"cgv_23rd.ceos.service.PendingFoodOrderExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.63625+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.651233+09:00","@version":"1","message":"Could not detect default configuration classes for test class [cgv_23rd.ceos.service.ReservationConcurrencyTest]: ReservationConcurrencyTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.","logger_name":"org.springframework.test.context.support.AnnotationConfigContextLoaderUtils","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.652399+09:00","@version":"1","message":"Found @SpringBootConfiguration cgv_23rd.ceos.Application for test class cgv_23rd.ceos.service.ReservationConcurrencyTest","logger_name":"org.springframework.boot.test.context.SpringBootTestContextBootstrapper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.663143+09:00","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.668467+09:00","@version":"1","message":"HikariPool-8 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.669227+09:00","@version":"1","message":"HikariPool-8 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.706639+09:00","@version":"1","message":"Starting ReservationConcurrencyTest using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.707311+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.70743+09:00","@version":"1","message":"The following 1 profile is active: \"test\"","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.956258+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.956451+09:00","@version":"1","message":"Bootstrapping Spring Data JPA repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.976944+09:00","@version":"1","message":"Finished Spring Data repository scanning in 19 ms. Found 21 JPA repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.978872+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.978961+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.984853+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.MovieLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.984977+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.ReviewRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985052+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.TheaterLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985148+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985226+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.auth.RefreshTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985297+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderItemRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985367+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985433+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985497+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.TheaterFoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985576+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.ActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985652+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985729+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieImageRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985799+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.985873+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.98594+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieStatisticsRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.986006+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.986081+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.986151+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.SeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.986238+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.986309+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenTypeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.986384+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.TheaterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:01.986454+09:00","@version":"1","message":"Finished Spring Data repository scanning in 6 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.030895+09:00","@version":"1","message":"BeanFactory id=cfc64e1f-018a-354b-9e01-a7479796a49c","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.162465+09:00","@version":"1","message":"HHH000204: Processing PersistenceUnitInfo [name: default]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.165305+09:00","@version":"1","message":"HHH000026: Second-level cache disabled","logger_name":"org.hibernate.cache.internal.RegionFactoryInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.174904+09:00","@version":"1","message":"No LoadTimeWeaver setup: ignoring JPA class transformer","logger_name":"org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.176724+09:00","@version":"1","message":"HikariPool-9 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.178285+09:00","@version":"1","message":"HikariPool-9 - Added connection conn80: url=jdbc:h2:mem:testdb user=SA","logger_name":"com.zaxxer.hikari.pool.HikariPool","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.179066+09:00","@version":"1","message":"HikariPool-9 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.179602+09:00","@version":"1","message":"HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)","logger_name":"org.hibernate.orm.deprecation","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.179976+09:00","@version":"1","message":"HHH10001005: Database info:\n\tDatabase JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-9)']\n\tDatabase driver: undefined/unknown\n\tDatabase version: 2.3.232\n\tAutocommit mode: undefined/unknown\n\tIsolation level: undefined/unknown\n\tMinimum pool size: undefined/unknown\n\tMaximum pool size: undefined/unknown","logger_name":"org.hibernate.orm.connections.pooling","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.350994+09:00","@version":"1","message":"HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)","logger_name":"org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.380321+09:00","@version":"1","message":"Initialized JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.551148+09:00","@version":"1","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","logger_name":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.691419+09:00","@version":"1","message":"Exposing 3 endpoints beneath base path '/actuator'","logger_name":"org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.702554+09:00","@version":"1","message":"Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl","logger_name":"org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.870116+09:00","@version":"1","message":"Started ReservationConcurrencyTest in 1.198 seconds (process running for 29.626)","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.87674+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.879215+09:00","@version":"1","message":"Expired pending food orders. expiredFoodOrders=0","logger_name":"cgv_23rd.ceos.service.PendingFoodOrderExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.927537+09:00","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.932353+09:00","@version":"1","message":"HikariPool-9 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.933063+09:00","@version":"1","message":"HikariPool-9 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.966082+09:00","@version":"1","message":"Starting ReservationConcurrencyTest using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.966538+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:02.966616+09:00","@version":"1","message":"The following 1 profile is active: \"test\"","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.383745+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.384322+09:00","@version":"1","message":"Bootstrapping Spring Data JPA repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.434055+09:00","@version":"1","message":"Finished Spring Data repository scanning in 48 ms. Found 21 JPA repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.43971+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.439974+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.455663+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.MovieLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.455937+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.ReviewRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.4561+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.TheaterLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.456306+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.456476+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.auth.RefreshTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.456593+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderItemRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.456695+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.456807+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.456977+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.TheaterFoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.457115+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.ActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.457236+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.457364+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieImageRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.457457+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.457556+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.457654+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieStatisticsRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.457754+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.457899+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.457999+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.SeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.458086+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.45818+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenTypeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.458288+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.TheaterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.458392+09:00","@version":"1","message":"Finished Spring Data repository scanning in 15 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.54367+09:00","@version":"1","message":"BeanFactory id=cfc64e1f-018a-354b-9e01-a7479796a49c","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.693648+09:00","@version":"1","message":"HHH000204: Processing PersistenceUnitInfo [name: default]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.696343+09:00","@version":"1","message":"HHH000026: Second-level cache disabled","logger_name":"org.hibernate.cache.internal.RegionFactoryInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.704968+09:00","@version":"1","message":"No LoadTimeWeaver setup: ignoring JPA class transformer","logger_name":"org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.705727+09:00","@version":"1","message":"HikariPool-10 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.706829+09:00","@version":"1","message":"HikariPool-10 - Added connection conn90: url=jdbc:h2:mem:testdb user=SA","logger_name":"com.zaxxer.hikari.pool.HikariPool","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.707015+09:00","@version":"1","message":"HikariPool-10 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.7074+09:00","@version":"1","message":"HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)","logger_name":"org.hibernate.orm.deprecation","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.707874+09:00","@version":"1","message":"HHH10001005: Database info:\n\tDatabase JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-10)']\n\tDatabase driver: undefined/unknown\n\tDatabase version: 2.3.232\n\tAutocommit mode: undefined/unknown\n\tIsolation level: undefined/unknown\n\tMinimum pool size: undefined/unknown\n\tMaximum pool size: undefined/unknown","logger_name":"org.hibernate.orm.connections.pooling","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.839504+09:00","@version":"1","message":"HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)","logger_name":"org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:03.872177+09:00","@version":"1","message":"Initialized JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.08876+09:00","@version":"1","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","logger_name":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.248355+09:00","@version":"1","message":"Exposing 3 endpoints beneath base path '/actuator'","logger_name":"org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.268932+09:00","@version":"1","message":"Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl","logger_name":"org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.454144+09:00","@version":"1","message":"Started ReservationConcurrencyTest in 1.518 seconds (process running for 31.21)","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.461511+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.464262+09:00","@version":"1","message":"Expired pending food orders. expiredFoodOrders=0","logger_name":"cgv_23rd.ceos.service.PendingFoodOrderExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.518527+09:00","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.52388+09:00","@version":"1","message":"HikariPool-10 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.524764+09:00","@version":"1","message":"HikariPool-10 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.555973+09:00","@version":"1","message":"Starting ReservationConcurrencyTest using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.556527+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.556618+09:00","@version":"1","message":"The following 1 profile is active: \"test\"","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.984984+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:04.985401+09:00","@version":"1","message":"Bootstrapping Spring Data JPA repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.017239+09:00","@version":"1","message":"Finished Spring Data repository scanning in 30 ms. Found 21 JPA repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.019883+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.020036+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.029538+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.MovieLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.029784+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.ReviewRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.029902+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.TheaterLikeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.030046+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.030153+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.auth.RefreshTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.030256+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderItemRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.030362+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodOrderRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.03048+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.FoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.030587+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.food.TheaterFoodRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.030685+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.ActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.030785+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieActorRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.030894+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieImageRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.030994+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.03109+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.031192+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.movie.MovieStatisticsRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.031291+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.031392+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.031494+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.reservation.SeatRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.03159+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.031688+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.ScreenTypeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.031783+09:00","@version":"1","message":"Spring Data Redis - Could not safely identify store assignment for repository candidate interface cgv_23rd.ceos.repository.theater.TheaterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.031882+09:00","@version":"1","message":"Finished Spring Data repository scanning in 10 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.070192+09:00","@version":"1","message":"BeanFactory id=cfc64e1f-018a-354b-9e01-a7479796a49c","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.150978+09:00","@version":"1","message":"HHH000204: Processing PersistenceUnitInfo [name: default]","logger_name":"org.hibernate.jpa.internal.util.LogHelper","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.152693+09:00","@version":"1","message":"HHH000026: Second-level cache disabled","logger_name":"org.hibernate.cache.internal.RegionFactoryInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.16002+09:00","@version":"1","message":"No LoadTimeWeaver setup: ignoring JPA class transformer","logger_name":"org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.160664+09:00","@version":"1","message":"HikariPool-11 - Starting...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.161476+09:00","@version":"1","message":"HikariPool-11 - Added connection conn100: url=jdbc:h2:mem:testdb user=SA","logger_name":"com.zaxxer.hikari.pool.HikariPool","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.161629+09:00","@version":"1","message":"HikariPool-11 - Start completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.161919+09:00","@version":"1","message":"HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)","logger_name":"org.hibernate.orm.deprecation","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.162135+09:00","@version":"1","message":"HHH10001005: Database info:\n\tDatabase JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-11)']\n\tDatabase driver: undefined/unknown\n\tDatabase version: 2.3.232\n\tAutocommit mode: undefined/unknown\n\tIsolation level: undefined/unknown\n\tMinimum pool size: undefined/unknown\n\tMaximum pool size: undefined/unknown","logger_name":"org.hibernate.orm.connections.pooling","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.250037+09:00","@version":"1","message":"HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)","logger_name":"org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.269473+09:00","@version":"1","message":"Initialized JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.395294+09:00","@version":"1","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","logger_name":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","thread_name":"Test worker","level":"WARN","level_value":30000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.544397+09:00","@version":"1","message":"Exposing 3 endpoints beneath base path '/actuator'","logger_name":"org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.555515+09:00","@version":"1","message":"Global AuthenticationManager configured with UserDetailsService bean with name userDetailsServiceImpl","logger_name":"org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.731343+09:00","@version":"1","message":"Started ReservationConcurrencyTest in 1.203 seconds (process running for 32.488)","logger_name":"cgv_23rd.ceos.service.ReservationConcurrencyTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.737658+09:00","@version":"1","message":"Expired pending reservations. deletedSeats=0, expiredReservations=0","logger_name":"cgv_23rd.ceos.service.PendingReservationExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.740183+09:00","@version":"1","message":"Expired pending food orders. expiredFoodOrders=0","logger_name":"cgv_23rd.ceos.service.PendingFoodOrderExpirationService","thread_name":"scheduling-1","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.85875+09:00","@version":"1","message":"reservation payment processing started","logger_name":"cgv_23rd.ceos.service.pay.ReservationPaymentFacade","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"reservation_payment_started","userId":1,"reservationId":1,"totalPrice":15000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.859793+09:00","@version":"1","message":"reservation payment processing failed","logger_name":"cgv_23rd.ceos.service.pay.ReservationPaymentFacade","thread_name":"Test worker","level":"WARN","level_value":30000,"event":"reservation_payment_failed","userId":1,"reservationId":1,"paymentId":"RES_1_ac74ae7c","errorCode":"PAYMENT_4001","durationMs":1,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.864533+09:00","@version":"1","message":"reservation payment processing started","logger_name":"cgv_23rd.ceos.service.pay.ReservationPaymentFacade","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"reservation_payment_started","userId":1,"reservationId":1,"totalPrice":15000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:05.864867+09:00","@version":"1","message":"reservation payment processing completed","logger_name":"cgv_23rd.ceos.service.pay.ReservationPaymentFacade","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"reservation_payment_completed","userId":1,"reservationId":1,"paymentId":"RES_1_3a303b25","durationMs":0,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.439005+09:00","@version":"1","message":"Starting PaymentFeignIntegrationTest using Java 21.0.10 with PID 34796 (started by shinae in /Users/shinae/Desktop/study/shinae1023)","logger_name":"cgv_23rd.ceos.service.pay.PaymentFeignIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.439535+09:00","@version":"1","message":"Running with Spring Boot v3.5.0, Spring v6.2.7","logger_name":"cgv_23rd.ceos.service.pay.PaymentFeignIntegrationTest","thread_name":"Test worker","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.439775+09:00","@version":"1","message":"No active profile set, falling back to 1 default profile: \"default\"","logger_name":"cgv_23rd.ceos.service.pay.PaymentFeignIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.620536+09:00","@version":"1","message":"Multiple Spring Data modules found, entering strict repository configuration mode","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.621044+09:00","@version":"1","message":"Bootstrapping Spring Data Redis repositories in DEFAULT mode.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.627601+09:00","@version":"1","message":"Finished Spring Data repository scanning in 4 ms. Found 0 Redis repository interfaces.","logger_name":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.647671+09:00","@version":"1","message":"BeanFactory id=ae9f5b73-d1d8-3135-ad75-b22f3baf14aa","logger_name":"org.springframework.cloud.context.scope.GenericScope","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.802871+09:00","@version":"1","message":"Started PaymentFeignIntegrationTest in 0.393 seconds (process running for 33.559)","logger_name":"cgv_23rd.ceos.service.pay.PaymentFeignIntegrationTest","thread_name":"Test worker","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.908765+09:00","@version":"1","message":"payment instant request started","logger_name":"cgv_23rd.ceos.service.pay.PaymentService","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"payment_instant_requested","paymentId":"RES_1_12345678","amount":15000,"orderName":"인셉션 예매","app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.91806+09:00","@version":"1","message":"payment instant request completed","logger_name":"cgv_23rd.ceos.service.pay.PaymentService","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"payment_instant_completed","paymentId":"RES_1_12345678","paymentStatus":"PAID","pgProvider":"mock-pg","durationMs":10,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.923358+09:00","@version":"1","message":"payment instant request started","logger_name":"cgv_23rd.ceos.service.pay.PaymentService","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"payment_instant_requested","paymentId":"RES_1_12345678","amount":15000,"orderName":"인셉션 예매","app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.927538+09:00","@version":"1","message":"payment instant request returned empty success body","logger_name":"cgv_23rd.ceos.service.pay.PaymentService","thread_name":"Test worker","level":"WARN","level_value":30000,"event":"payment_instant_empty_response","paymentId":"RES_1_12345678","durationMs":4,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.92931+09:00","@version":"1","message":"payment get request completed","logger_name":"cgv_23rd.ceos.service.pay.PaymentService","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"payment_get_completed","paymentId":"RES_1_12345678","paymentStatus":"PAID","durationMs":2,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.956577+09:00","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"SpringApplicationShutdownHook","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.956919+09:00","@version":"1","message":"\n drop table if exists actor cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.958082+09:00","@version":"1","message":"\n drop table if exists food cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.958739+09:00","@version":"1","message":"\n drop table if exists food_order cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.959112+09:00","@version":"1","message":"\n drop table if exists food_order_item cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.959401+09:00","@version":"1","message":"\n drop table if exists movie cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.9598+09:00","@version":"1","message":"\n drop table if exists movie_actor cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.959971+09:00","@version":"1","message":"\n drop table if exists movie_image cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.960125+09:00","@version":"1","message":"\n drop table if exists movie_like cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.960317+09:00","@version":"1","message":"\n drop table if exists movie_screen cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.960528+09:00","@version":"1","message":"\n drop table if exists movie_statistics cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.960645+09:00","@version":"1","message":"\n drop table if exists refresh_token cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.960862+09:00","@version":"1","message":"\n drop table if exists reservation cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.961074+09:00","@version":"1","message":"\n drop table if exists reservation_seat cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.961251+09:00","@version":"1","message":"\n drop table if exists review cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.961424+09:00","@version":"1","message":"\n drop table if exists screen cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.961623+09:00","@version":"1","message":"\n drop table if exists screen_type cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.961771+09:00","@version":"1","message":"\n drop table if exists seat cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.961929+09:00","@version":"1","message":"\n drop table if exists seat_template cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.962061+09:00","@version":"1","message":"\n drop table if exists theater cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.962244+09:00","@version":"1","message":"\n drop table if exists theater_food cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.962377+09:00","@version":"1","message":"\n drop table if exists theater_like cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.962538+09:00","@version":"1","message":"\n drop table if exists users cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.963335+09:00","@version":"1","message":"HikariPool-2 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"SpringApplicationShutdownHook","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.96408+09:00","@version":"1","message":"HikariPool-2 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"SpringApplicationShutdownHook","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.971617+09:00","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"SpringApplicationShutdownHook","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.971788+09:00","@version":"1","message":"\n drop table if exists actor cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.971968+09:00","@version":"1","message":"\n drop table if exists food cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972034+09:00","@version":"1","message":"\n drop table if exists food_order cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972093+09:00","@version":"1","message":"\n drop table if exists food_order_item cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.97215+09:00","@version":"1","message":"\n drop table if exists movie cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972206+09:00","@version":"1","message":"\n drop table if exists movie_actor cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972262+09:00","@version":"1","message":"\n drop table if exists movie_image cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972318+09:00","@version":"1","message":"\n drop table if exists movie_like cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972375+09:00","@version":"1","message":"\n drop table if exists movie_screen cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972432+09:00","@version":"1","message":"\n drop table if exists movie_statistics cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972487+09:00","@version":"1","message":"\n drop table if exists refresh_token cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972544+09:00","@version":"1","message":"\n drop table if exists reservation cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972598+09:00","@version":"1","message":"\n drop table if exists reservation_seat cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972685+09:00","@version":"1","message":"\n drop table if exists review cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972738+09:00","@version":"1","message":"\n drop table if exists screen cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972792+09:00","@version":"1","message":"\n drop table if exists screen_type cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972844+09:00","@version":"1","message":"\n drop table if exists seat cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972895+09:00","@version":"1","message":"\n drop table if exists seat_template cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.972948+09:00","@version":"1","message":"\n drop table if exists theater cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.973001+09:00","@version":"1","message":"\n drop table if exists theater_food cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.97306+09:00","@version":"1","message":"\n drop table if exists theater_like cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.973111+09:00","@version":"1","message":"\n drop table if exists users cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.973729+09:00","@version":"1","message":"HikariPool-6 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"SpringApplicationShutdownHook","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.974353+09:00","@version":"1","message":"HikariPool-6 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"SpringApplicationShutdownHook","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.982705+09:00","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"SpringApplicationShutdownHook","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.982882+09:00","@version":"1","message":"\n drop table if exists actor cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.983069+09:00","@version":"1","message":"\n drop table if exists food cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.983132+09:00","@version":"1","message":"\n drop table if exists food_order cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.983189+09:00","@version":"1","message":"\n drop table if exists food_order_item cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.98325+09:00","@version":"1","message":"\n drop table if exists movie cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.983305+09:00","@version":"1","message":"\n drop table if exists movie_actor cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.98336+09:00","@version":"1","message":"\n drop table if exists movie_image cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.983417+09:00","@version":"1","message":"\n drop table if exists movie_like cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.98347+09:00","@version":"1","message":"\n drop table if exists movie_screen cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.983523+09:00","@version":"1","message":"\n drop table if exists movie_statistics cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.983579+09:00","@version":"1","message":"\n drop table if exists refresh_token cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.983633+09:00","@version":"1","message":"\n drop table if exists reservation cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.983684+09:00","@version":"1","message":"\n drop table if exists reservation_seat cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.983739+09:00","@version":"1","message":"\n drop table if exists review cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.983803+09:00","@version":"1","message":"\n drop table if exists screen cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.984097+09:00","@version":"1","message":"\n drop table if exists screen_type cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.984203+09:00","@version":"1","message":"\n drop table if exists seat cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.984288+09:00","@version":"1","message":"\n drop table if exists seat_template cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.984662+09:00","@version":"1","message":"\n drop table if exists theater cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.984732+09:00","@version":"1","message":"\n drop table if exists theater_food cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.98479+09:00","@version":"1","message":"\n drop table if exists theater_like cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.984846+09:00","@version":"1","message":"\n drop table if exists users cascade ","logger_name":"org.hibernate.SQL","thread_name":"SpringApplicationShutdownHook","level":"DEBUG","level_value":10000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.985485+09:00","@version":"1","message":"HikariPool-11 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"SpringApplicationShutdownHook","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} +{"@timestamp":"2026-05-23T02:12:06.986133+09:00","@version":"1","message":"HikariPool-11 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"SpringApplicationShutdownHook","level":"INFO","level_value":20000,"app":"ceos-app","logType":"application"} diff --git a/logs/audit/audit.log b/logs/audit/audit.log new file mode 100644 index 00000000..b31ae081 --- /dev/null +++ b/logs/audit/audit.log @@ -0,0 +1,5 @@ +{"@timestamp":"2026-05-23T02:11:56.749617+09:00","@version":"1","message":"food payment completed","logger_name":"AUDIT_LOGGER","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"food_payment_completed","userId":1,"orderId":1,"paymentId":"FOOD_1_14051c9b","amount":14000,"app":"ceos-app","logType":"audit"} +{"@timestamp":"2026-05-23T02:11:56.760729+09:00","@version":"1","message":"food payment cancelled","logger_name":"AUDIT_LOGGER","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"food_payment_cancelled","userId":1,"orderId":1,"paymentId":"FOOD_1_14051c9b","app":"ceos-app","logType":"audit"} +{"@timestamp":"2026-05-23T02:11:58.382745+09:00","@version":"1","message":"food payment completed","logger_name":"AUDIT_LOGGER","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"food_payment_completed","userId":1,"orderId":1,"paymentId":"FOOD_1_49a163e4","amount":14000,"app":"ceos-app","logType":"audit"} +{"@timestamp":"2026-05-23T02:12:05.853412+09:00","@version":"1","message":"reservation payment cancelled","logger_name":"AUDIT_LOGGER","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"reservation_payment_cancelled","userId":1,"reservationId":1,"paymentId":"RES_1_12345678","app":"ceos-app","logType":"audit"} +{"@timestamp":"2026-05-23T02:12:05.864929+09:00","@version":"1","message":"reservation payment completed","logger_name":"AUDIT_LOGGER","thread_name":"Test worker","level":"INFO","level_value":20000,"event":"reservation_payment_completed","userId":1,"reservationId":1,"paymentId":"RES_1_3a303b25","amount":15000,"app":"ceos-app","logType":"audit"} diff --git a/src/main/java/cgv_23rd/ceos/entity/food/FoodOrder.java b/src/main/java/cgv_23rd/ceos/entity/food/FoodOrder.java index a21b4ec2..7a6a43dc 100644 --- a/src/main/java/cgv_23rd/ceos/entity/food/FoodOrder.java +++ b/src/main/java/cgv_23rd/ceos/entity/food/FoodOrder.java @@ -11,6 +11,7 @@ import lombok.*; import java.util.ArrayList; +import java.util.EnumSet; import java.util.List; @Entity @@ -116,22 +117,33 @@ public void cancelAfterPaymentCancellation() { } public void markPaymentPaid() { - validatePaymentIdExists(); + validateTransitionTo(PaymentStatus.PAID, EnumSet.of(PaymentStatus.PROCESSING), EnumSet.of(FoodOrderStatus.대기)); this.paymentStatus = PaymentStatus.PAID; } public void markPaymentFailed() { - validatePaymentIdExists(); + if (this.paymentStatus == PaymentStatus.FAILED) { + return; + } + validateTransitionTo(PaymentStatus.FAILED, EnumSet.of(PaymentStatus.PROCESSING), EnumSet.of(FoodOrderStatus.대기)); this.paymentStatus = PaymentStatus.FAILED; } public void markPaymentUnknown() { - validatePaymentIdExists(); + if (this.paymentStatus == PaymentStatus.UNKNOWN) { + return; + } + validateTransitionTo(PaymentStatus.UNKNOWN, EnumSet.of(PaymentStatus.PROCESSING), EnumSet.of(FoodOrderStatus.대기)); this.paymentStatus = PaymentStatus.UNKNOWN; } public void markPaymentCancelled() { - validatePaymentIdExists(); + if (this.paymentStatus == PaymentStatus.CANCELLED) { + return; + } + validateTransitionTo(PaymentStatus.CANCELLED, + EnumSet.of(PaymentStatus.PAID, PaymentStatus.UNKNOWN), + EnumSet.of(FoodOrderStatus.대기, FoodOrderStatus.완료)); this.paymentStatus = PaymentStatus.CANCELLED; } @@ -162,4 +174,20 @@ private void validatePaymentIdExists() { throw new GeneralException(GeneralErrorCode.PAYMENT_NOT_READY, "결제 식별자가 없는 주문입니다."); } } + + private void validateTransitionTo(PaymentStatus targetStatus, + EnumSet allowedPaymentStatuses, + EnumSet allowedOrderStatuses) { + validatePaymentIdExists(); + + if (!allowedOrderStatuses.contains(this.status)) { + throw new GeneralException(GeneralErrorCode.PAYMENT_NOT_READY, + "현재 주문 상태에서는 결제 상태를 " + targetStatus + "로 변경할 수 없습니다."); + } + + if (!allowedPaymentStatuses.contains(this.paymentStatus)) { + throw new GeneralException(GeneralErrorCode.PAYMENT_NOT_READY, + "현재 결제 상태에서는 " + targetStatus + "로 변경할 수 없습니다. current=" + this.paymentStatus); + } + } } diff --git a/src/main/java/cgv_23rd/ceos/entity/reservation/Reservation.java b/src/main/java/cgv_23rd/ceos/entity/reservation/Reservation.java index f2d45e5a..5aa7ded5 100644 --- a/src/main/java/cgv_23rd/ceos/entity/reservation/Reservation.java +++ b/src/main/java/cgv_23rd/ceos/entity/reservation/Reservation.java @@ -13,6 +13,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.EnumSet; import java.util.List; @Entity @@ -101,22 +102,33 @@ public void confirm() { } public void markPaymentPaid() { - validatePaymentIdExists(); + validateTransitionTo(PaymentStatus.PAID, EnumSet.of(PaymentStatus.PROCESSING), EnumSet.of(ReservationStatus.대기)); this.paymentStatus = PaymentStatus.PAID; } public void markPaymentFailed() { - validatePaymentIdExists(); + if (this.paymentStatus == PaymentStatus.FAILED) { + return; + } + validateTransitionTo(PaymentStatus.FAILED, EnumSet.of(PaymentStatus.PROCESSING), EnumSet.of(ReservationStatus.대기)); this.paymentStatus = PaymentStatus.FAILED; } public void markPaymentUnknown() { - validatePaymentIdExists(); + if (this.paymentStatus == PaymentStatus.UNKNOWN) { + return; + } + validateTransitionTo(PaymentStatus.UNKNOWN, EnumSet.of(PaymentStatus.PROCESSING), EnumSet.of(ReservationStatus.대기)); this.paymentStatus = PaymentStatus.UNKNOWN; } public void markPaymentCancelled() { - validatePaymentIdExists(); + if (this.paymentStatus == PaymentStatus.CANCELLED) { + return; + } + validateTransitionTo(PaymentStatus.CANCELLED, + EnumSet.of(PaymentStatus.PAID, PaymentStatus.UNKNOWN), + EnumSet.of(ReservationStatus.대기, ReservationStatus.완료)); this.paymentStatus = PaymentStatus.CANCELLED; } @@ -182,4 +194,20 @@ private void validatePaymentIdExists() { throw new GeneralException(GeneralErrorCode.PAYMENT_NOT_READY, "결제 식별자가 없는 예매입니다."); } } + + private void validateTransitionTo(PaymentStatus targetStatus, + EnumSet allowedPaymentStatuses, + EnumSet allowedReservationStatuses) { + validatePaymentIdExists(); + + if (!allowedReservationStatuses.contains(this.status)) { + throw new GeneralException(GeneralErrorCode.PAYMENT_NOT_READY, + "현재 예매 상태에서는 결제 상태를 " + targetStatus + "로 변경할 수 없습니다."); + } + + if (!allowedPaymentStatuses.contains(this.paymentStatus)) { + throw new GeneralException(GeneralErrorCode.PAYMENT_NOT_READY, + "현재 결제 상태에서는 " + targetStatus + "로 변경할 수 없습니다. current=" + this.paymentStatus); + } + } } diff --git a/src/main/java/cgv_23rd/ceos/service/FoodOrderService.java b/src/main/java/cgv_23rd/ceos/service/FoodOrderService.java index 5b11ae41..78ad4aa8 100644 --- a/src/main/java/cgv_23rd/ceos/service/FoodOrderService.java +++ b/src/main/java/cgv_23rd/ceos/service/FoodOrderService.java @@ -23,7 +23,6 @@ @Service @RequiredArgsConstructor -@Transactional public class FoodOrderService { private final FoodRepository foodRepository; private final FoodOrderRepository foodOrderRepository; @@ -32,6 +31,7 @@ public class FoodOrderService { private final UserService userService; // 1. 음식 주문 + @Transactional public Long createFoodOrder(Long userId, FoodOrderRequestDto requestDto) { User user = userService.getUser(userId); Theater theater = getTheater(requestDto.theaterId()); diff --git a/src/main/java/cgv_23rd/ceos/service/PendingFoodOrderExpirationService.java b/src/main/java/cgv_23rd/ceos/service/PendingFoodOrderExpirationService.java new file mode 100644 index 00000000..12a1a017 --- /dev/null +++ b/src/main/java/cgv_23rd/ceos/service/PendingFoodOrderExpirationService.java @@ -0,0 +1,42 @@ +package cgv_23rd.ceos.service; + +import cgv_23rd.ceos.entity.enums.FoodOrderStatus; +import cgv_23rd.ceos.entity.enums.PaymentStatus; +import cgv_23rd.ceos.repository.food.FoodOrderRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; + +@Slf4j +@Service +@RequiredArgsConstructor +public class PendingFoodOrderExpirationService { + + private static final long FOOD_ORDER_PENDING_MINUTES = 5L; + private static final List EXPIRABLE_PAYMENT_STATUSES = List.of( + PaymentStatus.READY, + PaymentStatus.FAILED + ); + + private final FoodOrderRepository foodOrderRepository; + + @Transactional + public int expirePendingFoodOrders() { + LocalDateTime expiredAt = LocalDateTime.now().minusMinutes(FOOD_ORDER_PENDING_MINUTES); + + int expiredFoodOrders = foodOrderRepository.expirePendingFoodOrders( + FoodOrderStatus.대기, + FoodOrderStatus.취소, + EXPIRABLE_PAYMENT_STATUSES, + expiredAt + ); + + log.info("Expired pending food orders. expiredFoodOrders={}", expiredFoodOrders); + + return expiredFoodOrders; + } +} diff --git a/src/main/java/cgv_23rd/ceos/service/PendingOrderExpirationService.java b/src/main/java/cgv_23rd/ceos/service/PendingOrderExpirationService.java index 8aa5e855..2ddea66f 100644 --- a/src/main/java/cgv_23rd/ceos/service/PendingOrderExpirationService.java +++ b/src/main/java/cgv_23rd/ceos/service/PendingOrderExpirationService.java @@ -1,77 +1,27 @@ package cgv_23rd.ceos.service; -import cgv_23rd.ceos.entity.enums.FoodOrderStatus; -import cgv_23rd.ceos.entity.enums.PaymentStatus; -import cgv_23rd.ceos.entity.enums.ReservationStatus; -import cgv_23rd.ceos.repository.food.FoodOrderRepository; -import cgv_23rd.ceos.repository.reservation.ReservationRepository; -import cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.time.LocalDateTime; -import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class PendingOrderExpirationService { - private static final long RESERVATION_PENDING_MINUTES = 5L; - private static final long FOOD_ORDER_PENDING_MINUTES = 5L; - private static final List EXPIRABLE_PAYMENT_STATUSES = List.of( - PaymentStatus.READY, - PaymentStatus.FAILED - ); - - private final ReservationSeatRepository reservationSeatRepository; - private final ReservationRepository reservationRepository; - private final FoodOrderRepository foodOrderRepository; + private final PendingReservationExpirationService pendingReservationExpirationService; + private final PendingFoodOrderExpirationService pendingFoodOrderExpirationService; - @Transactional public void expirePendingReservationsAndFoodOrders() { expirePendingReservations(); expirePendingFoodOrders(); } - @Transactional public int expirePendingReservations() { - LocalDateTime expiredAt = LocalDateTime.now().minusMinutes(RESERVATION_PENDING_MINUTES); - - int deletedSeats = reservationSeatRepository.deleteSeatsByExpiredPendingReservations( - ReservationStatus.대기, - EXPIRABLE_PAYMENT_STATUSES, - expiredAt - ); - - int expiredReservations = reservationRepository.expirePendingReservations( - ReservationStatus.대기, - ReservationStatus.취소, - EXPIRABLE_PAYMENT_STATUSES, - expiredAt - ); - - log.info("Expired pending reservations. deletedSeats={}, expiredReservations={}", - deletedSeats, expiredReservations); - - return expiredReservations; + return pendingReservationExpirationService.expirePendingReservations(); } - @Transactional public int expirePendingFoodOrders() { - LocalDateTime expiredAt = LocalDateTime.now().minusMinutes(FOOD_ORDER_PENDING_MINUTES); - - int expiredFoodOrders = foodOrderRepository.expirePendingFoodOrders( - FoodOrderStatus.대기, - FoodOrderStatus.취소, - EXPIRABLE_PAYMENT_STATUSES, - expiredAt - ); - - log.info("Expired pending food orders. expiredFoodOrders={}", expiredFoodOrders); - - return expiredFoodOrders; + return pendingFoodOrderExpirationService.expirePendingFoodOrders(); } } diff --git a/src/main/java/cgv_23rd/ceos/service/PendingReservationExpirationService.java b/src/main/java/cgv_23rd/ceos/service/PendingReservationExpirationService.java new file mode 100644 index 00000000..23689892 --- /dev/null +++ b/src/main/java/cgv_23rd/ceos/service/PendingReservationExpirationService.java @@ -0,0 +1,51 @@ +package cgv_23rd.ceos.service; + +import cgv_23rd.ceos.entity.enums.PaymentStatus; +import cgv_23rd.ceos.entity.enums.ReservationStatus; +import cgv_23rd.ceos.repository.reservation.ReservationRepository; +import cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; + +@Slf4j +@Service +@RequiredArgsConstructor +public class PendingReservationExpirationService { + + private static final long RESERVATION_PENDING_MINUTES = 5L; + private static final List EXPIRABLE_PAYMENT_STATUSES = List.of( + PaymentStatus.READY, + PaymentStatus.FAILED + ); + + private final ReservationSeatRepository reservationSeatRepository; + private final ReservationRepository reservationRepository; + + @Transactional + public int expirePendingReservations() { + LocalDateTime expiredAt = LocalDateTime.now().minusMinutes(RESERVATION_PENDING_MINUTES); + + int deletedSeats = reservationSeatRepository.deleteSeatsByExpiredPendingReservations( + ReservationStatus.대기, + EXPIRABLE_PAYMENT_STATUSES, + expiredAt + ); + + int expiredReservations = reservationRepository.expirePendingReservations( + ReservationStatus.대기, + ReservationStatus.취소, + EXPIRABLE_PAYMENT_STATUSES, + expiredAt + ); + + log.info("Expired pending reservations. deletedSeats={}, expiredReservations={}", + deletedSeats, expiredReservations); + + return expiredReservations; + } +} diff --git a/src/main/java/cgv_23rd/ceos/service/ReservationService.java b/src/main/java/cgv_23rd/ceos/service/ReservationService.java index 401c00a5..39e77888 100644 --- a/src/main/java/cgv_23rd/ceos/service/ReservationService.java +++ b/src/main/java/cgv_23rd/ceos/service/ReservationService.java @@ -1,8 +1,6 @@ package cgv_23rd.ceos.service; import cgv_23rd.ceos.dto.reservation.request.ReservationRequestDto; -import cgv_23rd.ceos.dto.payment.response.PaymentResponse; -import cgv_23rd.ceos.entity.enums.PaymentStatus; import cgv_23rd.ceos.entity.enums.ReservationStatus; import cgv_23rd.ceos.entity.movie.MovieScreen; import cgv_23rd.ceos.entity.reservation.Reservation; @@ -15,7 +13,6 @@ import cgv_23rd.ceos.repository.reservation.ReservationSeatRepository; import cgv_23rd.ceos.repository.reservation.SeatRepository; import cgv_23rd.ceos.service.lock.ReservationNamedLockManager; -import cgv_23rd.ceos.service.pay.PaymentService; import lombok.RequiredArgsConstructor; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.stereotype.Service; @@ -32,17 +29,16 @@ @Service @RequiredArgsConstructor -@Transactional public class ReservationService { private final ReservationRepository reservationRepository; private final ReservationSeatRepository reservationSeatRepository; private final MovieScreenRepository movieScreenRepository; private final SeatRepository seatRepository; private final ReservationNamedLockManager reservationNamedLockManager; - private final PaymentService paymentService; private final UserService userService; // 1. 영화 예매 + @Transactional public Long createReservation(Long userId, ReservationRequestDto requestDto) { validateSeatRequest(requestDto); User user = userService.getUser(userId); @@ -99,9 +95,7 @@ public void markPaymentUnknown(Long userId, Long reservationId) { @Transactional public void markPaymentCancelled(Long userId, Long reservationId) { - Reservation reservation = reservationRepository.findByIdWithLock(reservationId) - .orElseThrow(() -> new GeneralException(GeneralErrorCode.RESERVATION_NOT_FOUND)); - validateOwner(userId, reservation); + Reservation reservation = getOwnedReservationForUpdate(userId, reservationId); reservation.markPaymentCancelled(); } @@ -114,41 +108,14 @@ public Reservation getOwnedReservation(Long userId, Long reservationId) { } @Transactional - public Reservation getReservationWithLock(Long reservationId) { - return reservationRepository.findByIdWithLock(reservationId) - .orElseThrow(() -> new GeneralException(GeneralErrorCode.RESERVATION_NOT_FOUND)); - } - - @Transactional - public Reservation getOwnedReservationWithLock(Long userId, Long reservationId) { - Reservation reservation = getReservationWithLock(reservationId); - validateOwner(userId, reservation); - return reservation; - } - - // 2. 영화 예매 취소 public void cancelReservation(Long userId, Long reservationId) { - Reservation reservation = getOwnedReservationWithLock(userId, reservationId); + Reservation reservation = getOwnedReservationForUpdate(userId, reservationId); reservation.cancel(LocalDateTime.now()); } - public void cancelPaidReservation(Long userId, Long reservationId, String paymentId) { - PaymentResponse response; - try { - response = paymentService.cancelPayment(paymentId); - } catch (GeneralException e) { - markPaymentUnknown(userId, reservationId); - throw e; - } - - if (response == null - || response.data() == null - || PaymentStatus.from(response.data().paymentStatus()) != PaymentStatus.CANCELLED) { - markPaymentUnknown(userId, reservationId); - throw new GeneralException(GeneralErrorCode.PAYMENT_NOT_CANCELLABLE); - } - - Reservation reservation = getOwnedReservationWithLock(userId, reservationId); + @Transactional + public void cancelPaidReservationAfterPaymentCancellation(Long userId, Long reservationId) { + Reservation reservation = getOwnedReservationForUpdate(userId, reservationId); reservation.markPaymentCancelled(); reservation.cancel(LocalDateTime.now()); } @@ -204,15 +171,18 @@ private List buildSeatLockKeys(Long movieScreenId, List seatIds) { .toList(); } - private void validateUserExists(Long userId) { - userService.getUser(userId); - } - private MovieScreen getMovieScreen(Long id) { return movieScreenRepository.findById(id) .orElseThrow(() -> new GeneralException(GeneralErrorCode.MOVIESCREEN_NOT_FOUND)); } + private Reservation getOwnedReservationForUpdate(Long userId, Long reservationId) { + Reservation reservation = reservationRepository.findByIdWithLock(reservationId) + .orElseThrow(() -> new GeneralException(GeneralErrorCode.RESERVATION_NOT_FOUND)); + validateOwner(userId, reservation); + return reservation; + } + private void validateAllSeatsFound(List seatIds, List seats) { if (seats.size() != seatIds.size()) { throw new GeneralException(GeneralErrorCode.SEAT_NOT_FOUND); diff --git a/src/main/java/cgv_23rd/ceos/service/ReviewService.java b/src/main/java/cgv_23rd/ceos/service/ReviewService.java index 363c2ae5..4e8a2f0c 100644 --- a/src/main/java/cgv_23rd/ceos/service/ReviewService.java +++ b/src/main/java/cgv_23rd/ceos/service/ReviewService.java @@ -17,8 +17,8 @@ import org.springframework.retry.annotation.Retryable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + @Service -@Transactional @RequiredArgsConstructor public class ReviewService { private final ReviewRepository reviewRepository; @@ -30,6 +30,7 @@ public class ReviewService { @CacheEvict(value = "movieReviews", key = "#requestDto.movieId()"), @CacheEvict(value = "movieDetail", key = "#requestDto.movieId()") }) + @Transactional @Retryable( retryFor = ObjectOptimisticLockingFailureException.class, maxAttempts = 3, diff --git a/src/main/java/cgv_23rd/ceos/service/pay/FoodPaymentFacade.java b/src/main/java/cgv_23rd/ceos/service/pay/FoodPaymentFacade.java index ce1a0f1b..6e2e2db1 100644 --- a/src/main/java/cgv_23rd/ceos/service/pay/FoodPaymentFacade.java +++ b/src/main/java/cgv_23rd/ceos/service/pay/FoodPaymentFacade.java @@ -84,7 +84,6 @@ public PaymentResultDto processPayment(Long userId ,Long orderId) { throw e; } } else { - foodOrderService.markPaymentUnknown(userId, orderId); log.warn("food payment returned unexpected response", kv("event", "food_payment_unexpected_response"), kv("userId", userId), diff --git a/src/main/java/cgv_23rd/ceos/service/pay/PaymentCompensationService.java b/src/main/java/cgv_23rd/ceos/service/pay/PaymentCompensationService.java index e18bd5cc..7f26d8a6 100644 --- a/src/main/java/cgv_23rd/ceos/service/pay/PaymentCompensationService.java +++ b/src/main/java/cgv_23rd/ceos/service/pay/PaymentCompensationService.java @@ -31,7 +31,7 @@ public void cancelReservation(Long reservationId) { @Transactional(propagation = Propagation.REQUIRES_NEW) public void cancelFoodOrder(Long orderId) { - FoodOrder foodOrder = foodOrderRepository.findById(orderId) + FoodOrder foodOrder = foodOrderRepository.findByIdWithLock(orderId) .orElseThrow(() -> new GeneralException(GeneralErrorCode.FOOD_ORDER_NOT_FOUND)); foodOrder.markPaymentCancelled(); foodOrder.cancel(); diff --git a/src/main/java/cgv_23rd/ceos/service/pay/ReservationPaymentFacade.java b/src/main/java/cgv_23rd/ceos/service/pay/ReservationPaymentFacade.java index ed4d574a..615f646e 100644 --- a/src/main/java/cgv_23rd/ceos/service/pay/ReservationPaymentFacade.java +++ b/src/main/java/cgv_23rd/ceos/service/pay/ReservationPaymentFacade.java @@ -109,7 +109,22 @@ public void cancelReservation(Long userId, Long reservationId) { throw new GeneralException(GeneralErrorCode.PAYMENT_NOT_READY, "결제 식별자가 없는 완료 예매입니다."); } - reservationService.cancelPaidReservation(userId, reservationId, reservation.getPaymentId()); + PaymentResponse response; + try { + response = paymentService.cancelPayment(reservation.getPaymentId()); + } catch (GeneralException e) { + reservationService.markPaymentUnknown(userId, reservationId); + throw e; + } + + if (response == null + || response.data() == null + || PaymentStatus.from(response.data().paymentStatus()) != PaymentStatus.CANCELLED) { + reservationService.markPaymentUnknown(userId, reservationId); + throw new GeneralException(GeneralErrorCode.PAYMENT_NOT_CANCELLABLE); + } + + reservationService.cancelPaidReservationAfterPaymentCancellation(userId, reservationId); auditLogger.info("reservation payment cancelled", kv("event", "reservation_payment_cancelled"), kv("userId", userId), diff --git a/src/test/java/cgv_23rd/ceos/service/ReservationPaymentFacadeTest.java b/src/test/java/cgv_23rd/ceos/service/ReservationPaymentFacadeTest.java index 19562070..6fcf8260 100644 --- a/src/test/java/cgv_23rd/ceos/service/ReservationPaymentFacadeTest.java +++ b/src/test/java/cgv_23rd/ceos/service/ReservationPaymentFacadeTest.java @@ -83,10 +83,12 @@ void processPayment_fail_marksPaymentFailed() { void cancelReservation_paidReservation_callsExternalCancelFirst() { Reservation reservation = createCompletedReservation(1L, 1L, "RES_1_12345678"); given(reservationService.getOwnedReservation(1L, 1L)).willReturn(reservation); + given(paymentService.cancelPayment("RES_1_12345678")).willReturn(paidResponse("CANCELLED")); reservationPaymentFacade.cancelReservation(1L, 1L); - verify(reservationService).cancelPaidReservation(1L, 1L, "RES_1_12345678"); + verify(paymentService).cancelPayment("RES_1_12345678"); + verify(reservationService).cancelPaidReservationAfterPaymentCancellation(1L, 1L); } @Test @@ -95,11 +97,13 @@ void cancelReservation_cancelPaymentFails_marksPaymentUnknown() { Reservation reservation = createCompletedReservation(1L, 1L, "RES_1_12345678"); given(reservationService.getOwnedReservation(1L, 1L)).willReturn(reservation); willThrow(new GeneralException(GeneralErrorCode.PAYMENT_SERVER_FAILED)) - .given(reservationService).cancelPaidReservation(1L, 1L, "RES_1_12345678"); + .given(paymentService).cancelPayment("RES_1_12345678"); assertThrows(GeneralException.class, () -> reservationPaymentFacade.cancelReservation(1L, 1L)); - verify(reservationService).cancelPaidReservation(1L, 1L, "RES_1_12345678"); + verify(paymentService).cancelPayment("RES_1_12345678"); + verify(reservationService).markPaymentUnknown(1L, 1L); + verify(reservationService, never()).cancelPaidReservationAfterPaymentCancellation(anyLong(), anyLong()); verify(reservationService, never()).cancelReservation(1L, 1L); }