| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- querydls
- 프로그래머스
- springboot
- EC2
- Github Actions
- elasticsearch
- JWT
- spring boot
- 유효성 검사
- Til
- JPA
- Redis
- 멀티 모듈
- MSA
- trouble shooting
- Intellij
- testcode
- CI/CD
- docker
- Java
- tosspayment api
- DevOps
- aop
- algoritm
- CS
- Kafka
- 테스트 코드
- 객체지향원칙
- rabbitmq
- algorithm
- Today
- Total
목록spring boot (17)
개발노트
문제 상황 및 의문초기에는 공연 리뷰의 변경 감지 로직을 도입하여 불필요한 업데이트를 줄이는 데 집중했었다.이를 통해 성능이 개선되었다고 판단하여 TPS 3배 향상이라는 지표를 도출했었다.하지만 10,000건의 데이터를 처리하는 데 초당 처리량이 고작 10건(9.99 TPS) 내외에 머무르는 것을 보고 의문이 들었다..인메모리 DB인 Redis를 사용하는데 왜 이렇게 느릴까? 라는 생각을 시작으로 근본적인 병목 원인을 알아보기 시작했다.문제 원인단순히 코드 한 줄의 문제가 아니라 측정 방식, DB 접근 패턴, Redis 활용 방식 전반에 걸친 문제가 복합적으로 작용하고 있었다.원인 1 : 측정 지표의 부적절성오류: 백그라운드에서 대량의 데이터를 동기화하는 일괄 처리(Batch) 작업임에도, 실시간 응답성..
문제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..
문제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..
개요모니터링에 대한 강의 통해 학습한 Acturator, Prometheus, Grafana에 대해 어떤 건지 제대로 알고 사용하고 싶어서 글로 정리해 두고 복습해 본다. 세 가지 도구의 관계Spring Boot Acturator , Prometheus, Grafana는 서버 및 애플리케이션 모니터링을 구축하는 핵심 기술 스택이다.서로 협력하여 데이터 수집 -> 저장 -> 시각화의 과정을 수행할 수 있게 해 준다. Spring Boot Actuator애플리케이션의 상태 및 성능 지표(메트릭)를 제공하는 역할예: CPU 사용량, 메모리 사용량, DB 연결 수, HTTP 요청 수 등PrometheusActuator에서 제공하는 메트릭 데이터를 주기적으로 수집하여 저장시계열(time-series) 데이터베이..
