일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- select
- Docker Compose
- Java
- feignClient
- docker 컨테이너로 띄우기
- 정규식
- 자바스크립트
- 제이쿼리
- 특수문자 치환
- Entity Code 치환
- jQuery
- aws elasticache 활용
- Tomcat
- 리눅스
- 만들면서 배우는 클린 아키텍처
- springboot+redis
- redis + spring boot 함께
- Linux
- mysql
- architecture
- insert
- catalina.out
- sftp
- for문
- 엔티티 코드 치환
- 톰캣
- 초단위
- js
- 자바
- javascript
- Today
- Total
목록Spring (4)
꾸준하게, 차근차근
(@DynamicUpdate, @Converter, dirty checking, equals/hashCode, Hibernate deep copy 내부 동작까지) 바쁜 주말을 보내고, 피로와 싸우며 출근을 짠! 했는데 출근과 동시에 이슈가 발생했다. 😱덕분에 피로고 나발이고 활기찬 오전을 보냈다... 1. 문제 상황: "조회만 했는데 update 쿼리가 나온다?"금요일 운영에 반영한 Search API가 update 쿼리를 대량으로 쏟아내는 현상이 발생했다... 🤯단순히 JPA로 엔티티를 여러 번 조회했을 뿐인데, 데이터베이스에 update 쿼리가 조회 횟수만큼 쏟아졌다.코드 상황은 이랬다:엔티티 클래스에 @DynamicUpdate 어노테이션이 선언되어 있었다.필드 중 하나는 @Converter를 적..

드디어 입사하고 첫 서비스가 운영에 배포되는 날이었다.출근하자마자 각 서버의 인스턴스들을 모니터링하고, 모든 서비스가 배포된 후 운영 테스트가 진행되었다. 🫣 1. 문제 상황한참 운영 테스트가 진행되고 있는 와중에 서비스에서 예외가 발생했다. 😱확인 결과, 데이터 취득을 위해 타 서비스로 API를 요청하는데 이 과정에서 400(Bad Request) 응답 코드를 받게 된 것이었다. 🤯 결론적으로 요청을 받는 서비스 측의 문제로 문제가 해결되기를 기다릴 수밖에 없었지만, 문득 의아한 생각이 들었다. 정책상 위 과정에서 예외가 발생할 경우 2회 재시도가 발생했어야 하는데? 로그상으로는 1회 요청으로 끝난 것이다. 😳그래서 어김 없이 오늘도 원인을 파악하기 위해 삽질이 시작되었다. 2. Feign의 기..
최근 도메인 서비스를 개발하면서 데이터 처리, 재처리 등을 위한 스케줄러를 구현하게 되었다.스케줄러는 이전 직장에서도 자주 구현해왔던지라 익숙했지만, 다중 인스턴스 환경에서의 구현은 처음이고 ThreadPoolTaskScheduler, ShedLock 활용도 처음이라 의도한대로 동작하는지 출근하면 로그를 모니터링하는 습관이 생길 정도였다. 하지만 왜 슬픈 예감은 틀린 적이 없는지... 🥲특정 주기의 스케줄러 로그가 누락되는 현상을 두 눈으로 확인한 후에 내 머릿속은 바빠지기 시작했다.왜 1개의 로그가 안찍혔지? 왜 2개만 로그가 찍힌거지? 내가 잘못 본건가? 😳😳 1. 시스템 구성 및 문제 상황먼저 시스템의 구성을 간단히 소개하자면,ThreadPoolTaskScheduler를 활용해 스케줄러를 관리..

Querydsl 학습하면서 부딪혔던 이슈에 대해 정리한다. 1. 이슈의 원인 IntelliJ가 버전업하거나 Querydsl의 Gradle 설정이 버전업하면서 적용 방법이 달라지기도 하며, 각자의 환경 설정에 따라 정상적으로 동작하지 않을 수 있다. 현재 나의 SpringBoot 버전은 3.2로 3.0 이하의 설정으로는 Querydsl이 정상적으로 동작하지 않아 버전에 맞게 설정을 해줘야 했다. Querydsl 설정은 공식 매뉴얼에 소개되어 있지 않아 본인 환경에 맞는 대안을 찾아 설정해야 한다. 2. 원인 해결 프레임워크 설정 추가 build.gradle 파일의 dependencise 영역에 프레임워크 설정을 추가한다. // Querydsl 설정 추가 implementation 'com.querydsl:..