트러블 슈팅2 RestTemplate으로 외부 API 호출 이후 예외 응답시 body가 유실되는 현상에 대해 문제 상황Flex Appliance API에 대해 RestTemplate으로 요청 시 예외 응답의 경우 다음과 같이 Flex API에서 내려주는 포멧이 유실되는 문제가 발생함.특히, 인증관련 API 호출 시 임의로 잘못된 토큰을 토대로 요청했거나 요청 body에 잘못된 값을 기반으로 요청했을 경우 아래 디버깅 화면 처럼 no body로 나타남.다른 케이스에 대해선 해당 문제가 발생하지 않음. (400 에러)원인 분석현재 Flex Appliance 서버의 앞단엔 Nginx가 붙어있는데, 예외 응답의 경우 Nginx에서 gzip 처리로 내려주는 상황에 대해 SimpleClientHttpRequestFactory가 해제하지 못함.또한, 기본 클라이언트의 내부를 살펴보면 java.net.HttpRetryExce.. 2025. 4. 11. Redis 분산락 컴포넌트 리팩토링 적용기 Intro공유 자원에 대해 다수의 쓰레드가 경합 상황 발생 시 동시성 제어를 위해 Redis 기반 분산락을 사용하곤 한다.개인적으론, 어디까지나 DB Lock으로 해결할 수 있다면 Redis 기반 분산락 처리까진 필요 없다 생각이 든다.분산락을 꼭 도입해야 하는 케이스와 아닌 케이스는 보통 아래와 같다.DB 데이터가 아닌 값에 대한 정합성이 필요할 때 분산락이 필요함.로컬 캐시와 글로벌 캐시 동기화에 사용되는 케이스처럼 DB 기반이 아닌 다른 인프라나 저장소를 기반으로 처리해야 하는 경우 동시성 이슈를 막기 위해 분산락이 필요함.비즈니스 로직 상 한 DB테이블의 항목에 대한 write 연산이라면 DB Query의 write lock을 잡고 처리해도 무방함.ex) 게시글 단건에 대한 단순 수정의 경우 (어.. 2025. 1. 4. 이전 1 다음