일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- MSA
- 아키텍처
- EC2
- spring boot
- springboot
- Redis
- 유효성 검사
- testcode
- Github Actions
- Til
- JWT
- Intellij
- docker
- Java
- CI/CD
- Kafka
- trouble shooting
- AWS
- DevOps
- querydls
- 프로그래머스
- 멀티 모듈
- 객체지향원칙
- JPA
- algorithm
- aop
- 어노테이션
- 테스트 코드
- swagger
- rabbitmq
- Today
- Total
목록trouble shooting (5)
개발노트
문제JPA 쿼리에서 UUID 타입이나 Double 타입의 컬럼을 가져올 때, 값이 자동으로 업캐스팅되어 제대로 처리되던 방식이 갑자기 작동하지 않는 문제가 생겼다.nativeQuery를 사용하여 SQL 쿼리를 실행한 후, UUID나 Double로 변환되지 않는 문제다. @Query(value = "SELECT r.performance_id AS performanceId, AVG(r.rating) AS avgRating, COUNT(r.id) AS reviewCount " + "FROM p_review r " + "WHERE r.deleted_at IS NULL " + "GROUP BY r.performance_id", nativeQuery = true) List> fetchPerforma..

문제 : 결제 서비스가 모든 걸 다 처리한다.현제 payment 서비스는 결제 요청을 받으면 이런 작업을 과정을 수행하고있다. 마일리지 쿠폰, 사용 여부 판단사용 요청 이벤트 발행결제 엔티티 생성 및 저장차감 결과에 따라 결제 성공/ 실패 처리처음에 이게 맞나? 싶었는데 시간이 지나면서 문제들을 느끼게되었다. 도메인 책임이 어긋나 있다결제 해택 차감까지 담당한다.결제 도메인이 쿠폰과 마일리지를 검증하고, 실패 여부에 따라 결제 자체를 실패 처리하고 있었다. 이는 단일 책임 원칙(SRP)을 심각하게 위반한 구조라고 생각이 들었다. 이벤트 흐름이 꼬인다.원래라면 혜택을 차감하고 결제 요청을 보내는 게 자연스러운 순서다. 그런데 실제로는 결제 요청 → 혜택 차감 요청 순으로 처리되면서, 차감이 실패하면 결제를..

문제Redis 명령어 CLI에서 다음과 같이 입력하면 예상대로 잘 작동한다.그래서 Java 코드에서도 아래와 같이 패턴을 넣으면 잘 작동할 줄 알았다.하지만 내 예상과는 다르게 아무것도 조회가 되지않았다. // Redis에서 모든 리뷰의 좋아요 수를 가져와 HashMap으로 반환 public Map getAllReviewIdsWithLikes() { hashOps = likeCountRedisTemplate.opsForHash(); // 예시: 모든 리뷰의 Redis 키 패턴을 가져오고 해당하는 값들을 조회 Set reviewIds = hashOps.keys("review:like:*"); // "review:like:"로 시작하는 모든 키들 Map reviewLikesMap = new Ha..

문제com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling (through reference chain: com.taken_seat.payment_service.application.dto.response.PaymentRegisterResDto["approvedAt"]) Radis Cacging에서 DTO를 직렬화 / 역직렬화 하는 과정에서 오류가 발생했다.해당 D..
개요MSA 환경에서 재고 감소 로직을 RabbitMQ와 함께 구현할 때, 메시지 처리 순서가 보장되지 않은 문제가 발생할 수 있다.RabbitMQ는 비동기로 메시지를 처리하며, 소비자(Consumer)가 여러 개일 경우 메시지가 동시에 여러 스레드에서 처리될 수 있다. 문제 1: 메시지 처리 속도 차이로 인한 순서 불일치@RabbitListener(queues = "${stockMessage.queue.stock.request}")public void handleStockDecrementRequest(StockDecrementMessage stockDecrementMessage) { productEventService.decreaseStock(stockDecrementMessage);}handleS..